Вопросы на интервью программиста unity3d

Общие вопросы о Unity3D

Re: Вопросы на интервью программиста unity3d

Сообщение snezhok_13 17 фев 2017, 12:54

*поформатирую цитаты чтобы проще был контекст

getAlex писал(а):
ВОПРОСЫ
•Рассказать о yield return, yield break и Coroutine в Unity
•В каком порядке вызываются события MonoBehaviour в процессе рендеринга кадра? Зачем нужны отдельные Update и FixedUpdate?


Одна и та же опера. На реальном собеседовании спрашивают про потоки и асинхронные операции, могут начать очень издалека типа "чем отличается управляемый код от неуправляемого", и туда входят короутины, апдейты, потоки, инвоки и прочие вещи. Нужно рассказать что и как работает. Вопрос чисто джуновский. А вот рендеринг вы туда зря впихнули. Такой вопрос может сильно запутать т.к. "процесс рендера" с апдейтом связан только посредством фпс, но вот люди которые раньше кодили на directX SDK, или которые работают с рендер комманд буфером на низком уровне, или просто любят заморочки в шейдерах - они 100% не так поймут вопрос и ответят тебе про этапы самого рендеринга т.е. всякие буферизации, отсечения поверхностей и тому подобное. Поэтому этот вопрос чем-то напоминает iq тесты, где только у среднячка есть шансы ответить на него так, как это подразумевал спрашивающий.


Очень сложно прокомментировать эту кашу. И мне кажется она у Вас и в голове, извините. Вопросы подразумевают: 1. что кандидат расскажет о том как работают конструкции yield, и Coroutines в Unity. Поправил формулировки на сайте. 2. Update, FixedUpdate непосредственно связаны с рендером и физикой, про это и нужно рассказать.
Никто здравомыслящий не станет мне рассказывать про пайплайн, буферизацию и тп в ответ на вопрос: Зачем Update и FixedUpdate.

getAlex писал(а):ВОПРОС
•Назовите функции преобразования из локальных координат в мировые и обратно (для точки и для направления). Как работают эти функции? Связано ли их время работы с расположением/вложенностью объекта в иерархии? Реализуйте собственные extension-методы для Transform, которые будут давать такой же результат, как и настоящие.

Опять же. Если спрашивают про линейную алгебру - то это будут вопросы о скалярном произведении, углах обзора, вектора вращения, смысла дот-а, правило правой руки и т.д. Никому не интересно услышать название стандартной функции. Вопрос про время работы вообще не понятно для чего задан.

Возникает вопрос: Какие Вы вообще игры программировали, раз вы преобразования координат никогда не использовали.
Спрашивают не про линейную алгебру, а про базовые вещи инструмента с которым вы работаете. Мне интересно услышать точное название стандартной функции. Это показывает что кандидат, что-то разрабатывал сложнее крестиков-ноликов.
Вопрос про время задан, потому что время работы функций важно. Мне кажется Вы не слыхали о крутом парне, которого зовут Большой "О", не так ли?

getAlex писал(а):ВОПРОС
•Необходимо интерполировать вектор из A в B за определенный промежуток времени. Каким образом реализовать?

Слишком изи. Не понятна вообще логика подбора вопросов. Вместо "расскажите про собак, кошек, крыс", вопросы звучат как "расскажите про собак, шерсть кошек в период весны, предателей и разносчиках чумы"

Напишите код.

getAlex писал(а):ВОПРОС•Что такое drawcall, batching? Какие возможности предоставляет Unity?
Дравколы, батчиннг - стандартный, простой джуновский вопрос. А вот "Какие возможности предоставляет Unity?" - слишком абстрактный вопрос ни о чём.

Дратути. Стандартный-джуновский. Какие возможности батчинга предоставляет Unity?
Вы отвечайте на вопросы раз взялись вообще. Что такое draw-call? Что такое batching?
Мы начали с того, что вы только и говорили "говняные", "для джунов". Теперь вы скопировали вопросы и под каждым написали то же самое.

getAlex писал(а):ВОПРОС•Напишите unit-test
В геймдеве не принято делать юнит тесты. Только в очень редких случаях.

(popcorn) после этого я совсем понял с кем имею дело.
Как по вашему зачем Unity добавил Editor Test Runner и поддержку NUnit из коробки? Провела серию обучающих уроков по тому как тесты писать и пользоваться ими.

И больше ничего комментировать не хочу.
Разработка игр, немножко игровая журналистика, сейчас делаем Календарь: даты выхода игр
Аватара пользователя
snezhok_13
UNIверсал
 
Сообщения: 450
Зарегистрирован: 09 сен 2013, 11:12
Skype: s.coremission
  • Сайт

Re: Вопросы на интервью программиста unity3d

Сообщение Woolf 17 фев 2017, 12:59

Я предлагаю для начала хотя бы покинуть мир иллюзий и осознать реальность во всей ее красе. :)


Годы занятия бизнесом и срок депутатом местного созыва, убедили меня, что все эти сентенции "человек-человеку волк", "мы - общество", "все люди братья", "мир гораздо сложнее, чем ты думаешь", "все чиновники ворьё" и прочие лозунги для хомячков - всего лишь, лозунги. Мир прост. Очень прост, на самом деле. И в чиновниках, до самого верха, включая президента, сидят точно такие же люди, как и вы. И не все из них ворьё, наоборот, среди них ворья намного меньше, чем из ваших соседей. И никаких нет заговоров и тайных приказов. Весь социум вокруг себя, создаёте вы сами. Кто-то кому-то волк, но, в то же время, он ласковый зайка для других. Люди разные и взаимоотношения у всех разные. Вот и вся суровая проза жизни. А вы всё витаете в иллюзиях.


Это не капитализм - это классический беспредел. :ymsmug:

Простите, а вы считаете, что капитализм это образец порядка? Капитализм - это и есть беспредел, прав тот, у кого больше денег или силы (или того и другого вместе). Где-то в мире нонче происходит иначе?
Последний раз редактировалось Woolf 17 фев 2017, 13:03, всего редактировалось 1 раз.
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Вопросы на интервью программиста unity3d

Сообщение snezhok_13 17 фев 2017, 13:02

Woolf, Левш@, я потерял нить. О чем мы вообще спорим?

Преобразования координат упрощают жизнь. Во многих играх все считать в мировых координатах - это выстрел себе в ногу.
Реализация mini-map, например, преобразованием координат изящно решается.

Мы делаем игры, работаем с движком каждый день почти, и я думаю нужно знать что под капотом (использую близкую Вам метафору). Руль крутить - крути, а если колесо спустило - аварийку вызовем. Зачем мне знать, что у меня домкрат есть и докатка.
Разработка игр, немножко игровая журналистика, сейчас делаем Календарь: даты выхода игр
Аватара пользователя
snezhok_13
UNIверсал
 
Сообщения: 450
Зарегистрирован: 09 сен 2013, 11:12
Skype: s.coremission
  • Сайт

Re: Вопросы на интервью программиста unity3d

Сообщение Woolf 17 фев 2017, 13:17

а если колесо спустило - аварийку вызовем. Зачем мне знать, что у меня домкрат есть и докатка.

Вот именно, зачем? 90% всех водителей мира, даже и не подозревает, что есть такая штука, как домкрат и зачем она нужна. Это не их дело. И только 10% наших водителей вам не только колесо поменяют, но и карбюратор отрегулируют, клапана подожмут и еще много чего сделают такого, от чего профессиональный автослесарь, увидав, на неделю уйдет в запой от ужаса. 15 лет назад я работал в автопарке, и, если бы знали, каких трудов стоит дирекции отучать наших водителей лазить в автобус со своими кривыми ручонками. Вплоть до штрафования за самостоятельный "ремонт". В прочем, аналогия ушла от темы )

Суть в том, что если программист знает, как оно там все работает, это хорошо. Но незнание не является причиной отказать, поскольку эта информация совершенно не важна ни для него, ни для вас, ни для вашей работы, как не нужно знать водителю устройство современного двигателя и допуски по клапанам. А раз информация эта избыточна, к чему тогда этот вопрос?
Последний раз редактировалось Woolf 17 фев 2017, 13:25, всего редактировалось 1 раз.
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Вопросы на интервью программиста unity3d

Сообщение snezhok_13 17 фев 2017, 13:25

Woolf писал(а):
а если колесо спустило - аварийку вызовем. Зачем мне знать, что у меня домкрат есть и докатка.


Вот именно, зачем? 90% всех водителей мира, даже и не подозревает, что есть такая штука, как домкрат и зачем она нужна. Это не их дело. И только 10% наших водителей вам не только колесо поменяют, но и карбюратор отрегулируют, клапана подожмут и еще много чего сделают такого, от чего профессиональный автослесарь, увидав, на неделю уйдет в запой от ужаса.

Так ведь разве Вы, как бизнес-мен и работодатель не хотите работника из этих 10%? Программист, который в непонятной ситуации ничего поделать не может? Даже в гугл пойти не может, потому что какой-никакой опыт чтобы задать вопрос нужен? Надо ведь спросить "как преобразовать координаты", а человек который никогда этого не делал, будет писать на форуме: Как сделать так, чтобы мне переместить элемент UI в другой канвас, но переместить как будто он в старом?

Я думаю Мы с Вами не сходимся в том, чтобы нанимать опытного, уверенного работника.
Разработка игр, немножко игровая журналистика, сейчас делаем Календарь: даты выхода игр
Аватара пользователя
snezhok_13
UNIверсал
 
Сообщения: 450
Зарегистрирован: 09 сен 2013, 11:12
Skype: s.coremission
  • Сайт

Re: Вопросы на интервью программиста unity3d

Сообщение Woolf 17 фев 2017, 13:27

Как сделать так, чтобы мне переместить элемент UI в другой канвас, но переместить как будто он в старом

Поменять родителя, не? И юнити само преобразует локальные координаты. Зачем это знать программисту юнити, как именно она преобразует? Ему достаточно знать, что такое преобразование будет иметь место, и всё, этого достаточно. А механика процесса не должна быть никому интересна, кроме разработчиков движка.

Так ведь разве Вы, как бизнес-мен и работодатель не хотите работника из этих 10%?

Совершенно не хочу. Как правило, такой работник будет большую часть времени заниматься чем угодно, но только не проектом. Будет делать какие-то бесконечные оптимизации, апдейтить фреймворки и заниматься прочей хренью. Мне, как работодателю, не нужно, чтобы работало идеально. Мне нужно, чтобы оно хоть как-то работало и как можно быстрее, желательно, еще вчера.
Последний раз редактировалось Woolf 17 фев 2017, 13:40, всего редактировалось 2 раз(а).
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Вопросы на интервью программиста unity3d

Сообщение snezhok_13 17 фев 2017, 13:29

Woolf писал(а):
Как сделать так, чтобы мне переместить элемент UI в другой канвас, но переместить как будто он в старом

Поменять родителя, не? И юнити само преобразует локальные координаты. Зачем это знать программисту юнити, как именно она преобразует? Ему достаточно знать, что такое преобразование будет иметь место, и всё, этого достаточно.


Вы опустили часть: но переместить, как будто он в старом.
Разработка игр, немножко игровая журналистика, сейчас делаем Календарь: даты выхода игр
Аватара пользователя
snezhok_13
UNIверсал
 
Сообщения: 450
Зарегистрирован: 09 сен 2013, 11:12
Skype: s.coremission
  • Сайт

Re: Вопросы на интервью программиста unity3d

Сообщение Woolf 17 фев 2017, 13:33

Вы опустили часть: но переместить, как будто он в старом.

Ну вот видите, вы сами запутались в терминологии, пытаясь влезть в дебри реализации. Что в вашем понимании должно означать "как будто он в старом"? В юнити нет такого понятия. В ней есть понятие локальных и глобальных координат. Если вам надо сохранить смещение от чего-то, вы просто работаете с локальными координатами. Если вам надо просто поставить объект на конкретное место, вы работаете с глобальными координатами. И вам не нужно думать, как это все преобразовать для десятка уровня вложений родителей.
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Вопросы на интервью программиста unity3d

Сообщение snezhok_13 17 фев 2017, 13:42

Woolf писал(а):
Вы опустили часть: но переместить, как будто он в старом.

Ну вот видите, вы сами запутались в терминологии, пытаясь влезть в дебри реализации. Что в вашем понимании должно означать "как будто он в старом"?

Я не запутался :) Я привел пример вопроса на форуме, от человека, который не знает методов преобразования координат.
Нужны примеры, когда без них никак. Я подумаю над хорошим примером, чтобы был частым во многих играх.
Координаты мыши часто преобразуются. Но вы просто сейчас ответите: ну так можно код из интернета содрать и все. И в этом ключе я не вижу смысла спор продолжать.
Я никогда бы не нанял бездумного копипастера, а Вы бы наняли. Вкусовщина...
Разработка игр, немножко игровая журналистика, сейчас делаем Календарь: даты выхода игр
Аватара пользователя
snezhok_13
UNIверсал
 
Сообщения: 450
Зарегистрирован: 09 сен 2013, 11:12
Skype: s.coremission
  • Сайт

Re: Вопросы на интервью программиста unity3d

Сообщение Woolf 17 фев 2017, 13:49

ну так можно код из интернета содрать и все

Ну.. Вас не смущает тот факт, что, собственно, вы пишите на сишарпе, используя юнити, а это и есть тот самый "код из интернета", только в немного неявном виде? Все библиотеки, функции, методы - это все черный ящик для вас, и вам совершенно не нужно знать ассемблерный код этих функций и методов. Вам достаточно знать, что именно он делает, вот и всё. Это называется "прогресс".

Я когда-то тоже писал игры на ассемблере http://viva-games.ru/publisher/rage-technologies
Писал всё, включая вывод и рендер шрифтов, спрайтов, управления и прочего. Это адов труд. Теперь же этого ничего не нужно.
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Вопросы на интервью программиста unity3d

Сообщение seaman 17 фев 2017, 14:23

И работает все наоборот. Чем большую иерархию вы трансформируете (двигаете, вращаете, масштабируете) тем дороже это обходится. Потому что матрицы пересчитываются.

А я что написал?
Получается чем глубже в иерархии объект, тем больше операций, чтобы получить результат.

С чего вдруг "наоборот"?
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Вопросы на интервью программиста unity3d

Сообщение snezhok_13 17 фев 2017, 14:47

seaman писал(а):Не знаю как внутри движка сделаны TransformDirection и подобные функции, но имхо трансформы все же не хранят результирующую матрицу.

Хранят.

seaman писал(а):Следовательно чтобы ее получить нужно последовательно поднимаясь по иерархии до рута умножить матрицы преобразования. Получается чем глубже в иерархии объект, тем больше операций, чтобы получить результат.

Она перерасчитывается во время трансформации.
Разработка игр, немножко игровая журналистика, сейчас делаем Календарь: даты выхода игр
Аватара пользователя
snezhok_13
UNIверсал
 
Сообщения: 450
Зарегистрирован: 09 сен 2013, 11:12
Skype: s.coremission
  • Сайт

Re: Вопросы на интервью программиста unity3d

Сообщение Левш@ 17 фев 2017, 15:19

Woolf писал(а):А вы всё витаете в иллюзиях. прав тот, у кого больше денег или силы

Ок, я самоУдаляюсь из дискуссии, дальше обсуждение теряет смысл. :)
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Вопросы на интервью программиста unity3d

Сообщение llka 17 фев 2017, 19:18

:-s
прочитал последнюю страницу темы - интересно так о чем были остальные 5 страниц.
Последний раз редактировалось llka 17 фев 2017, 19:22, всего редактировалось 1 раз.
llka
UNIверсал
 
Сообщения: 359
Зарегистрирован: 08 янв 2014, 05:00

Re: Вопросы на интервью программиста unity3d

Сообщение Paul Siberdt 17 фев 2017, 19:22

Ну, если Вульф рвёт и мечет, значит кто-то попытался основать очередную секту "Мы научим тебя жить!" :)
Сенежок, это не наезд, ваше дело похвальное, хотя бы одним тем, что показало, как же повезло художникам в выборе их рода деятельности.
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Пред.След.

Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5