Кто такой разработчик игр Unity Game Developer

Кто такой разработчик игр Unity/Game Developer

Индустрия игр по размерам сопоставима с киноиндустрией, а по темпам роста в последние годы значительно опережает ее. Игровой движок Unity является самым популярным инструментом для разработки игр всех типов. Сообщество разработчиков Unity чрезвычайно велико: активно занимаются разработкой на Unity3D более 1.5 млн человек. Unity позволяет создавать игры всех возможных типов:

  • мобильные, десктопные и для консолей;
  • 2D- и 3D-игры;
  • классические, адаптированные для виртуальной и дополненной реальности.

Поддерживаются операционные системы как для ПК, так и мобильных устройств.

Unity-разработчики участвуют во всех этапах жизненного цикла производства игр: создании, тестировании, доработке, поддержке, обновлении и модификации. Работа не останавливается на релизе игры – нужно постоянно тестировать продукт на корректность работы с новыми версиями операционных систем и новым оборудованием, следить за жалобами пользователей и оперативно исправлять ошибки, выпускать дополнения и модификации игры.

Как стать разработчиком игр: где и чему учиться

Где учиться – на курсах по созданию игр, по книгам или видеоурокам на YouTube – сугубо личный выбор. Мы рекомендуем обучение разработке игр на систематических курсах, которые дают представление о геймдеве в целом и разработке игр на Unity в частности.

Язык программирования C#

В Unity используется производительный язык программирования C#. Благодаря C# и Mono – кроссплатформенной реализации .NET, – Unity-проекты могут собираться и работать одинаково стабильно на разных операционных системах.

В дальнейшем понадобится изучить язык в полном объеме, но для начала сгодится следующий набор тем:

  • базовые конструкции;
  • объекты, типы и ссылки;
  • перечисления и коллекции;
  • объектно-ориентированное программирование;
  • обработка исключений.

Если вы планируете создавать сетевые игры, то крайне желательно знать ASP MVC – фреймворк для создания веб-приложений, который упрощает сетевое взаимодействие и работу с базами данных.

Общее для всех программистов требование – знание алгоритмов и структур данных. Эти знания не устареют, какой бы язык программирования вы не использовали и для какой бы операционной системы не вели разработку.

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

Большинство обучающих и справочных материалов написаны на английском языке, а потому мы советуем овладеть языком, как минимум на уровне Intermediate. Знание английского языка – не специфическое для Unity-программистов, а стандартное для IT требование.

Редактор Unity3D

Большую часть времени Unity-разработчики проводят в редакторе, так что его нужно изучить досконально. Кроме того, программные библиотеки Unity требуют дополнительного изучения – Unity-проект существенно отличается от обычного C#-приложения. Чтобы стать профессиональным Unity-разработчиком, нужно изучить следующее:

  • базовые манипуляции со сценой, объектами, assets и prefabs;
  • векторы, проекции и математика для 3D графики;
  • создание пользовательского интерфейса в игре;
  • работа с материалами;
  • модули физики для 2D и 3D;
  • система анимации Mecanim;
  • системы частиц;
  • работа с аудио;
  • свет и постобработка;
  • работа с разными графическими пайплайнами;
  • работа с искусственным интеллектом.

Инструменты командной работы

Игра редко делается в одиночку. Для эффективной работы нужно уметь пользоваться инструментами для командной работы. Прежде всего, это системы контроля версий. Официально поддерживаемые и рекомендуемые для Unity системы – Perforce и Plastic SCM. Можно встретить компании, которые используют более распространенный и бесплатный Git, однако, это требует дополнительных усилий по настройке Unity.

Нужно иметь представление о следующих инструментах:

  • cистемы управления задачами (Asana, Basecamp, JIRA, Redmine);
  • баг-трекеры (JIRA, Redmine, Bontq, YouTrack).

Профессиональный Unity-разработчик должен разбираться в том, какие специалисты работают над проектом и каковы их обязанности. Прежде всего это гейм-дизайнеры, обычные и 3D-художники. Надо помнить, что чем крупнее компания, тем более узкой становится специализация конкретного специалиста. Например, программист может заниматься исключительно системой искусственного интеллекта, 3D-художник – только моделированием, над текстурированием и анимацией будут работать другие люди.

Обучающие материалы, курсы по созданию игр

Без качественного и всестороннего обучения стать востребованным Unity-разработчиком невозможно.

Программирование

Книги. Не будем пугать вас списками, у нас уже есть подборка актуальных книг по C#.

Unity

  • Unity в действии. Мультиплатформенная разработка на C#. Хокинг Джозеф.
  • Unity и C#. Геймдев от идеи до реализации. Джереми Гибсон Бонд.
  • Разработка игр на Unity 2018 за 24 часа. Гейг Майк.
  • Геймдизайн. Как создать игру, в которую будут играть все. Шелл Джесси.

Обучение разработке игр, погружение в профессию и карьерные перспективы

Чтобы начать карьеру Unity-разработчика, нужно не только освоить язык и систему, но и иметь практические навыки.

Начинайте с несложных 2D-игр вроде тетриса или flappy bird. Простые игры легче реализовать в одиночку, но они дают навыки работы с базовыми функциями: загрузка сцен, создание интерфейса пользователя, работа с ресурсами. Далее можно переходить к 3D-играм. Здесь тоже лучше начинать с простого, постепенно внедряя новые функции и меняя архитектуру игры. Так вы составите портфолио, с которым в дальнейшем пойдете на собеседование.

По квалификации разработчики делятся на три условных уровня: Junior/Middle/Senior.

Junior – начинающий разработчик, работающий в команде под управлением более опытных коллег. Джуниору чаще всего поручают простые, некритичные задачи. На этом уровне работник обычно держится 1-1.5 года, после чего повышается до Middle. Junior Game Developer должен иметь следующие компетенции:

  • иметь хорошее знание C#;
  • иметь опыт разработки в Unity, портфолио не должно быть пустым;
  • базовые знания в линейной алгебре (пример);
  • базовые знания в 3D-моделировании.

Middle – опытный специалист, способный выполнить всю порученную работу. Решает как критически важные, так и рутинные задачи. Имеет достаточную квалификацию, чтобы управлять джуниорами. Все основные инструменты и технологии Unity должны быть известны middle-разработчику. Многие работают на уровне middle годами и десятилетиями. Чтобы стать сеньором, нужны большие и целенаправленные усилия.

Senior – программист с высочайшей квалификацией. Может выполнить любую задачу в рамках своего набора технологий. У сеньоров огромный опыт, широкий кругозор, часто – отличные управленческие навыки. Чтобы вырасти от джуниора до сеньора нужно от 6 до 8 лет.

Team Lead Unity Developer – программист уровня middle, который занимается преимущественно управленческой деятельностью. Именно тимлиды создают условия для продуктивной работы команды. Им платят не за написанный код, а за соблюдение сроков и качество проекта в целом.

Также выделяют Unity VR Developer – специалиста, работающего в сфере виртуальной реальности. Такой программист должен иметь специальные знания, связанные со специфическим оборудованием – очками и шлемом виртуальной реальности. Unity AR Developer – похожая специализация, но связана не с виртуальной, а дополненной реальностью.

Востребованность Unity-разработчиков растет, как и количество вакансий. С уверенностью можно говорить, что и через 3-5 лет профессия разработчика игр на этом движке будет перспективна.

Unity-разработчик в среднем получает 65 тыс. руб. в месяц. Минимальная зарплата – 40 тыс. руб. в месяц, максимальная – 135 тыс. руб. в месяц.

В мире ситуация следующая: без учета налогов минимальная зарплата – $6 750/мес., средняя – $11 000/мес., максимальная – $22 500/мес.

Где учиться на разработчика игр

Если вы только начинаете изучать разработку игр, мы рекомендуем обратить внимание на курс Факультета Разработки игр онлайн-университета Geekbrains. В этом курсе систематизирована вся основная информация, необходимая для того, чтобы стать профессиональным Unity-разработчиком.

В курсе уделено большое внимание практике – по окончании обучения у вас в портфолио будет 4 реальных проекта, с которыми можно идти на собеседование. Кроме того, у каждого ученика есть личный наставник-куратор, с которым всегда можно прояснить непонятные места.

Источник

17 вопросов джуну: что должен знать Junior-разработчик

Что должен знать Junior-разработчик, чтобы получить должность или удержаться на уже «завоёванной» позиции?

Джун — это уже пусть и младший, но специалист. Подразумевается, что он самостоятельно умеет писать код, может справиться с простыми задачами сам, а со средними по сложности задачами — под присмотром ментора.

Кто-то говорит, что требования завышены, и в 2020 году младший программист должен знать то, что знал Middle в нулевых. Кто-то парирует аргументами о росте конкуренции, сложности задач и, соответственно, требований.

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

Например, теперь на позицию начинающего front-end разработчика недостаточно просто знать JavaScript, HTML5/CSS3: нужны базовые знания одного из популярных фреймворков (React, Vue, Angular). Кажется, что со временем требования будут расти ещё сильнее.

Мы разобрались, что должен знать Junior-программист в 2020 году, и собрали общие вопросы с собеседований, по которым работодатели определяют, дотягивает кандидат до нужной планки или нет.

Читайте также:  Тексты для проверки во втором полугодии 1 класса

Hard skills

Почему вы выбрали этот язык программирования?

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

Где проходили обучение, участвовали ли в реальных проектах?

  • опыт некоммерческих проектов, в основном небольших проектов, реализованных в рамках обучения;
  • Pet-проекты, база работ на GitHub (само наличие проектов + качество кода);
  • участие в хакатонах и конкурсах (особенно победы);
  • посещение профильных мероприятий: митапов, конференций, лекций;
  • сертификаты об окончании курсов или изучения технологий и пр.

Назовите принципы ООП

Старо как мир, но всё так же актуально. Держите шпаргалку по принципам ООП: там всё разложено по полочкам. Если вы хорошо разбираетесь в ООП, можете рассказать о своём опыте их применения на практике. Идеально, если вы также расскажете, почему те или иные принципы не стоит применять в некоторых ситуациях.

Какие алгоритмы сортировки вы знаете? Напишите код с использованием быстрой сортировки.

Ох уж эти алгоритмы сортировки — понять бы, где они пригодятся в реальной жизни. А зачем вообще Junior-разработчику это знать? Тут всё просто: понимание принципов и гибкость мышления. Опять же, с помощью небольшого примера вы покажете, что владеете синтаксисом языка и умеете объяснять, что происходит в вашем коде.

Какие технологии вы знаете?

Для работы на реальном проекте мало знать сам язык программирования. Младшему разработчику необходим большой багаж знаний. Если мы рассматриваем разработчика на Java, кроме самого языка, необходимо иметь хотя бы начальные знания о Spring, базах данных, SQL, системах контроля версий. Это не означает глубокое изучение всех аспектов, но представление о работе с этими технологиями быть должно, даже если нет реальной практики. Зачастую разница между Middle- и Junior-разработчиком — это реальный опыт.

Если говорить о знании конкретных технологий, от начинающего разработчика требуется опыт разработки на каком-то классическом языке программирования со строгой типизацией — подойдёт Java, C++, C#. При этом не так важно, на каком языке программирования придётся писать в будущем: синтаксис языка выучить легко, а вот понимание, что «можно» делать, а чего «нельзя» — нет.

Расскажите, с какими IDE вы работали

Достаточно назвать одну, но хорошо в ней разбираться: какие редакции есть, как подключить библиотеку к проекту, чем выбранная среда разработки лучше других, какие плагины вы использовали, etc. Это то, что должен знать Junior-разработчик.

Есть ли опыт работы с базами данных? Сколько нормальных форм вы знаете и чем они отличаются?

Знать, как обращаться к БД, нужно, а вот что касается нормальных форм — это, скорее, плюс, чем необходимость. Будет хорошо, если вы назовёте СУБД, с которыми работали, обозначите их ключевые особенности.

Также к навыкам стоит добавить SQL. Да, на SQL сейчас никто не пишет, но без SQL невозможно понимание логики работы СУБД.

У вас был свой проект? В чём заключалась задача и как вы её решали?

Чтобы стать Junior-разработчиком, нужно знать теорию и применять её на практике. Разумеется, вы как джун уже должны были что-то писать, будь то на курсах или для себя. Перед собеседованием стоит разобрать один из самых сложных проектов, вспомнить, какие проблемы возникали в процессе работы над ним, и как вы их решали.

Какие методологии создания продукта вы знаете? Назовите несколько принципов Agile

Да, вам стоит почитать об Agile. Даже если вы твёрдо уверены, что никогда не столкнётесь с командной разработкой, поверьте — столкнётесь. Это не то, что обязательно знать Junior-разработчику, но будет плюсом, если вы разбираетесь.

Есть ли опыт работы с Git? Какой веб-сервис для хостинга проектов вы используете?

Неважно, GitHub это, GitLab или BitBucket. Интервьюера интересует главное — разбираетесь ли вы в системе контроля версий.

Также вас могут попросить решить несколько несложных задач

Минимальный испытательный набор состоит из трёх тестов.

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

Во-вторых, смотрят, как кандидат усваивает информацию, как работает его внимание и память. Обычно перед разработчиком ставится задача из 5–6 вводных пунктов, после чего идёт обсуждение её решения. Кандидат должен резюмировать задачу, описать своё решение, а затем сделать выводы.

В-третьих, по косвенным признакам, оценивается коммуникабельность кандидата — развитие его речевых навыков и способность работать в команде. Часто от соискателей на Junior-позицию требуется проактивность (её оценят, предложив несколько «поведенческих» задач) и скорость мышления.

Soft skills

Вы командный игрок?

Коммуникативные навыки — одни из важнейших, и даже если вы разработчик-одиночка, акцентируйте внимание на том, что вы с удовольствием приобщитесь к командной работе.

Даже опытные разработчики могут ошибиться с оценкой сроков, но они знают, как с этим быть — сразу сообщают менеджеру, обращаются за помощью к коллегам. Джуниор с неразвитыми soft skills промолчит и будет пытаться решить вопрос самостоятельно, в результате ничего толком не сделает и только потратит время.

В удалённой работе гораздо большую роль начинают играть soft skills. Гибкие навыки — это не только умение общаться с коллегами, но и банальное уважение к коллегам, к примеру, в чатах — когда ты отмечаешь коллегу, дублируешь сообщение, которое могло потеряться, и закрепляешь важные ссылки на самом верху.

IT-сфера изменчива, постоянно появляются новые технологии. Готовы ли вы всё время учиться?

Все понимают, что у младшего разработчика нет большого опыта и, скорее всего, нет глубоких знаний фреймворков. Поэтому на собеседовании больше внимания уделяется его soft skills: насколько разработчик мотивирован, готов ли он обучаться.

Каков ваш уровень английского языка?

Для нас, в EPAM, важным фактором является также уровень английского языка — не ниже Intermediate, поскольку после обучения можно попасть на проект с распределённой командой, с разработчиками из других стран.

Кроме того, аутсорсинговые компании зачастую работают с иностранными заказчиками, организовывают с ними встречи и созвоны. И вообще, читать и писать документацию стоит на английском, да и на Stack Overflow лежит всё, что нужно знать Junior-разработчику. Поэтому перед собеседованием обязательно подтяните английский язык.

Умеете ли вы справляться со стрессом?

Часто младший разработчик сталкивается с трудностями, на которые он тратит много сил и времени из-за отсутствия опыта. Поэтому просто необходимо уметь понижать свой уровень стресса, когда это требуется, иначе обучение затянется.

Если возникла проблема, как вы будете её решать?

Это больше вопрос на самостоятельность, нежели на способы решения.

Хочется поделиться советом: прежде чем идти к более опытным коллегам с вопросом, постарайтесь сами разобраться в проблеме. Во всех командах очень ценится, когда человек подходит не просто с вопросом «А как это сделать?», а уже обладает какой-то информацией, прикинул варианты решения и обращается за советом, как решить проблему правильнее.

Можете ли вы оценить время выполнения задачи?

Да, это то, что должен уметь Junior-разработчик уже с кое-каким опытом, но на стадии обучения вы должны были получить хотя бы базовый навык оценки сроков.

У нас сотрудники работают удалённо. Поэтому важно грамотно распределять время для решения задач, уметь сосредотачиваться, оценивать сроки и соблюдать их.

Что должен знать Junior-разработчик? Отвечают эксперты

Олег Власенко

заместитель генерального директора SimbirSoft

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

Стажёр — человек, который только учится, часто он не имеет опыта разработки. Со стажёрами мы в компании чаще всего имеем дело на наших стажировках, которые мы в разных форматах организовываем с 2012 года. Как правило, значительная часть их аудитории — это студенты без опыта работы. Конечно, если стажёр хорошо себя показывает, мы можем пригласить его на собеседование, а по итогам собеседования даже взять его в компанию, если есть надежда, что он за пару месяцев выйдет на уровень джуна. Но далеко не все стажёры так быстро дорастают до этого.

2 августа в 19:00, Онлайн, Беcплатно

Тем временем джун — это уже пусть и младший, но специалист. Подразумевается, что он самостоятельно умеет писать код, может справиться с простыми задачами сам, а со средними по сложности задачами — под присмотром ментора. Соответственно, такой специалист обязан обладать уверенными знаниями как минимум одного языка и фреймворка. Да, его знания, скорее всего, не будут глубокими, но он должен знать основы. Значительная часть сил джуна уходит на освоение нового. Ведь чтобы стать мидлом и выйти на новый уровень оплаты своего труда, джуну придётся освоить несколько фреймворков пусть и поверхностно, глубоко изучить как минимум один фреймворк, возможно, подготовиться и сдать экзамен по сертификации, получить опыт в разных проектах. Соответственно, важнейшими soft skills для джуна (да и для любого ИТ-специалиста вообще) будут навыки самообучения, навыки и опыт решения любых проблем, самодисциплина и мотивация к обучению.

Если рассматривать hard skills, то, наверное, нужно упомянуть такие профессиональные навыки, как умение искать информацию в поисковых системах, знание средств коллективной разработки (Git и другие), знание IDE, языка и фреймворка.

Завышены ли требования к джунам? Уверен, нет. Всё проясняется, если разделить понятия стажёр и джун и рассматривать джунов, как младших специалистов, а не просто тех, кто начал учиться.

руководитель программ «Python-разработчик» и «Алгоритмы для разработчиков» в Яндекс.Практикуме

Junior-разработчику, как в принципе и любому специалисту в сфере ИТ, важны такие качества, как ответственность, стремление к профессиональному росту, умение управлять рабочим временем и работать в команде. Кроме того, от начинающих разработчиков дополнительно ждут умения быстро осваивать новый материал и вникать в суть задач.

Требования к hard skills будут зависеть от направления. Например, мы уже подробно рассказывали, что работодатели ждут от Junior-Python-разработчика. Для таких специалистов это чаще всего знание языка программирования Python, алгоритмов и структур данных, опыт работы с базами данных и фреймворками.

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

В технических навыках обычно требуется наличие какого-то (хотя бы учебного) опыта программирования, знакомство с основными инструментами, умение решать типовые задачи. Для получения даже этих навыков придётся постараться. Разработка имеет относительно высокий порог входа по сравнению с другими ИТ-профессиями, но планка по найму в последние годы, скорее, снижалась, чем наоборот.

Александр Махновский

руководитель отдела разработки Аванпост

По нашему опыту в последние годы требования к Junior-разработчикам у нетоповых компаний снизились. Связано это с кадровым голодом, вызванным, с одной стороны, ростом рынка, с другой, демографическим провалом девяностых–начала 2000-х.

В целом для джуна, планирующего работать в прикладной разработке, требования можно определить следующим образом:

Основные хард-скиллы:

  • Знать синтаксис языка, на котором предстоит работать.
  • Знать основу стандартной библиотеки языка и представлять её структуру в целом.
  • Понимать принципы работы технологической платформы и среды исполнения (например jvm).

Дополнительные хард-скиллы:

  • Понимать принципы работы реляционных СУБД, иметь навыки работы с ними.
  • Знать основы веб-разработки.
  • Понимать, как в целом устроен мир: как работает сетевое взаимодействие, какая инфраструктура существует в интернет- и корпоративных сетях, понимать отличия парадигм программирования, скриптовых языков от компилируемых и т. д.

Практические навыки:

  • Уметь решать простые прикладные задачи, т. е. применять знания, перечисленные выше, с пользой.

Софт-скиллы:

  • Умение слушать, воспринимать постановку задач и пояснения, не упускать детали, но и не зацикливаться на них.
  • Способность и желание обучаться в процессе работы.
  • Умение задавать вопросы и в целом формулировать мысли.
  • Любознательность и стремление к развитию.
  • Ответственность.

Как правило, у всех ребят, приходящих к нам на собеседование, всё в порядке с основными хард-скиллами, учитывая, что они предварительно проверяются простейшим тестовым заданием.

Большинство же отклонений по результатам собеседования происходит по причине отсутствия практических навыков или критичных софт-скиллов, таких, как умение слушать.

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

Выводы

Мнения насчёт того, завышены требования к джунам или нет, очень разнятся. Но практически все эксперты сходятся в том, что Junior-разработчик должен знать о преимуществах и сферах применения выбранного языка или технологии, уметь работать с Git, знать основные алгоритмы, библиотеки и фреймворки в своей сфере, быть в курсе возможностей хотя бы одной IDE, знать английский не ниже уровня Intermediate и уметь работать в команде.

Источник

Вопросы по подготовке к собесу Unity3D Junior Developer

Вот допустим это — http://doctrina-kharkov.blogspot.com/2016/08/Test.html, тут вообще никаких сложностей нет

Но вот тут — https://coremission.net/gamedev/voprosy-dlya-sobesedovaniya-unity3d-programmista/ , НАМНОГО сложнее, особенно раздел графики

Так же нашёл список тем по .NET + С# ,https://docs.google.com/spreadsheets/d/1Jny9yIZydos19Yx0cFaHE-_3adGIYzq-cnyAhofAHiY/edit#gid=0, вроде как нормальный список

Так вот, что конкретно спрашивают на собеседованиях Unity3D Junior Developer?

Список вопросов ближе к первому списку, или ко второму?

Есть так же другие вопросы:

  • Насколько глубоко надо знать про кватернионы?
  • Могут ли попросить реализовать A*?
  • Спрашивают ли про unsafe часть С#?

10 Apr 2020 в 00:11 #2

спрашивают в основном попу мыл?

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

10 Apr 2020 в 00:18 #3

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

не понимаю зачем нужно глубокое знание графики, я ведь не движки собрался писать

10 Apr 2020 в 00:37 #4

не понимаю зачем нужно глубокое знание графики, я ведь не движки собрался писать

По идее изичные вопросы. Там несколько разделов

1. Общие вопросы. Ну тут чисто проверка на дауна, чтобы отсеять самых отбитых)

2. Алгоритмы и структуры данных. Тут школярные вопросы Информатика 6 класс

3. Графика/3D математика/Rendering pipeline. Тут уже знание технологий, я не шарю за эту сферу. Но даже тут половина вопросов, на которые ответ знает каждый первокурсник, линейная алгебра 1 курс

Вот это все вопросы 1 курс тех.универа , прверка на базовое знание векторов и 2 вопроса на алгоритм Грама ― Шмидта.

Какие способы представления ориентации объекта в пространстве вы знаете? Чем хороши кватернионы?

Для чего нужны нормали? Как нормали преобразуются из одной системы координат в другую (например из локальных координат в мировые, координаты камеры)? Почему таким образом?

Есть два вектора — a, b (не ортогональные). Необходимо получить вектор ортогональный плоскости образованной векторами a и b

Есть два вектора — a, b (не ортогональные). Необходимо получить вектор ортогональный a или b в плоскости образованной этими векторами

Каким образом по вектору нормали и вектору света определить вектор отраженного света?

Напишите матрицу поворота вокруг любой из оси
] Чисто вопросы для первокурсника

4 раздел C#/.Net и Unity3d. Тут я тоже хз, не шарю за технологии, но судя по вопросам это базовые вещи из документации

Если ты уже шаришь за технологии, типо вопросы: ‘А вот как можно вызвать функцию?)’ и тебе лень читать учебник Линейной алгебры, можешь посмотреть научпоп типо https://www.youtube.com/watch?v=RNTRYicPvWQ под чаек.
У этого чела хоть и писец какой противный голос, но то, что он пишет прям восхищает https://www.youtube.com/watch?v=oPPB3GM-3gY , тут про ортогонализацию

Ну под чаек можешь посмотреть эти видосы про отрогонализацию и научпоп, а технологии уже придется зашарить самому

10 Apr 2020 в 00:42 #5

Ну за технологии в вопросах я не шарю, но почитал парочку вопросов из https://coremission.net/gamedev/voprosy-dlya-sobesedovaniya-unity3d-programmista/

По идее изичные вопросы. Там несколько разделов

1. Общие вопросы. Ну тут чисто проверка на дауна, чтобы отсеять самых отбитых)

2. Алгоритмы и структуры данных. Тут школярные вопросы Информатика 6 класс

3. Графика/3D математика/Rendering pipeline. Тут уже знание технологий, я не шарю за эту сферу. Но даже тут половина вопросов, на которые ответ знает каждый первокурсник, линейная алгебра 1 курс

Вот это все вопросы 1 курс тех.универа , прверка на базовое знание векторов и 2 вопроса на алгоритм Грама ― Шмидта.

<

Какие способы представления ориентации объекта в пространстве вы знаете? Чем хороши кватернионы?

Для чего нужны нормали? Как нормали преобразуются из одной системы координат в другую (например из локальных координат в мировые, координаты камеры)? Почему таким образом?

Есть два вектора — a, b (не ортогональные). Необходимо получить вектор ортогональный плоскости образованной векторами a и b

Есть два вектора — a, b (не ортогональные). Необходимо получить вектор ортогональный a или b в плоскости образованной этими векторами

Каким образом по вектору нормали и вектору света определить вектор отраженного света?

Напишите матрицу поворота вокруг любой из оси
] Чисто вопросы для первокурсника

Окей дальше

4 раздел C#/.Net и Unity3d. Тут я тоже хз, не шарю за технологии, но судя по вопросам это базовые вещи из документации

не сильно понимаю на какой именно ты сейчас вопрос ответил, потому что я уже прочитал этот список вопросов

Источник



Русские Блоги

Вопросы на собеседовании Unity, которые вы должны задать на собеседовании

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


① Ответьте на следующие вопросы о темах. Поясните свой ответ:

1. Можно ли использовать потоки для изменения текстур во время выполнения?

ответ: Пронумерованные текстуры и сетки являются примерами элементов, хранящихся в памяти графического процессора.В дополнение к основному телу Unity не позволяет другим потокам изменять эти типы данных.

2. Могу ли я использовать потоки для перемещения GameObject по сцене?

ответ: нет. В Unity получение ссылки на преобразование не является потокобезопасным.

3. Рассмотрим следующий фрагмент кода:

Используйте потоки для улучшения этого кода, поэтому генерация 1000000 случайных чисел не повлияет на производительность при запуске.

ответ: использовать При многопоточности мы должны избегать использования локальных структур Unity, таких как Mathf с участием Random класс:

② Объясните, что такое вершинный шейдер и что такое пиксельный шейдер?

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

Пиксельный шейдер — это сценарий, который запускается для каждого фрагмента (кандидата в пиксели для визуализации) после обработки трех вершин в треугольниках сетки. Разработчики могут использовать UV / TextureCoords И образец текстуры Ждите информации Для управления окончательным цветом, который появится на экране.

③ Объясните, почему отложенное освещение оптимизирует сцену с большим количеством источников света и элементов?

В процессе рендеринга вычисляется, должен ли каждый пиксель освещаться и подвергаться воздействию молнии, и это повторяется для каждого источника света. После примерно восьми повторных вычислений для разных источников света в сцене накладные расходы становятся значительными.

Для больших сцен количество отображаемых пикселей обычно больше, чем количество пикселей на самом экране.

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

④ Каковы преимущества режима визуализации с оптимизацией рендеринга? Как показано ниже:

Режим «овердрафта» помогает пользователям анализировать количество пикселей, отображаемых в одной и той же «области». Области от желтого к белому — это «горячие» области со слишком большим количеством отображаемых пикселей.

Разработчики могут использовать эту информацию для корректировки материалов и более эффективного использования Z-Test И оптимизированный рендеринг.

⑤ Объясните, почему следует использовать Time.deltaTime, чтобы вещи, зависящие от времени, работали правильно?

Приложения реального времени (например, игры) имеют переменный FPS. Иногда они будут работать со скоростью 60 кадров в секунду или, когда скорость замедлится, они будут работать со скоростью 40 кадров в секунду или ниже.

Если вы хотите изменить значение с A к B 1.0 секунды не может просто увеличить A из B-A Из-за того, насколько быстро или медленно кадр может перемещаться между двумя кадрами, кадр может иметь разную продолжительность.

Способ исправить эту ситуацию — измерить ведомый фрейм X к X+1 Инкремент Время потрачено , и При выполнении A Чтобы воспользоваться этим изменением и продолжительностью кадра 。 deltaTime A += (B-A) * DeltaTime

При накоплении DeltaTime Когда он достигает 1,0 секунды, A Будут предположения B стоимость.

⑥ Объясните, почему векторы должны быть стандартизированы при использовании для перемещения объектов?

Нормализация делает вектор единичной длины. Это означает, например, что если вы хотите двигаться со скоростью 20,0, умножьте speed * vector Каждый шаг будет производить точные 20,0 единицы. Если вектор имеет случайную длину, этот шаг будет отличаться от 20.0 единиц.

⑦ Рассмотрите следующий фрагмент кода:

Завершите этот код, чтобы Gameobject содержал этот сценарий для перемещения цели с постоянной скоростью и прекращения движения, когда расстояние достигнет 1,0 или меньше.

⑧ Может быть два GameObject, каждый с одним SphereCollider, оба могут быть установлены как триггер и запускать событие OnTrigger? Поясните свой ответ.

Невозможно. Событие столкновения между двумя объектами происходит только в одном из объектов. RigidBody Прикреплен к нему Только тогда, когда 。 Это частая ошибка при реализации приложений, использующих «физику».

⑨ Какой из следующих примеров работает быстрее? Поясните свой ответ.

1. 1000GameObject, каждый MonoBehavior выполняет обратный вызов Update.

2. Массив из 1000 классов с MonoBehavior для GameObject, каждый класс реализует собственный обратный вызов Update ().

Правильный ответ — 2.

В Update Обратный вызов использует отражение C #, что значительно медленнее, чем прямой вызов функции. В нашем примере GameObjects каждый 1000 Есть MonoBehaviour Это означает 1000 вызовов отражения на кадр.

Благодаря методу прямого доступа , Создайте MonoBehaviour Один Update И используйте этот единственный обратный вызов, чтобы Update Для заданного количества элементов это намного быстрее.

⑩ В нескольких предложениях объясните функции инспекторов, проектов и панелей иерархии в редакторе Unity. Кто отвечает за цитирование того, что будет включено в процесс сборки?

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

Панель проекта содержит файлы в файловой системе папки ресурсов в корневой папке проекта. Он показывает все доступные скрипты, текстуры, материалы и шейдеры, доступные в проекте.

Панель иерархии отображает текущую структуру сцены, ее GameObjects и ее дочерние элементы. Он также может помочь пользователям организовать GameObjects по имени и порядку, относящимся к их братьям и сестрам. Функции, зависящие от заказов (например, пользовательский интерфейс), используют эту классификацию.

Панель, отвечающая за ссылки на контент во время процесса сборки, является иерархической панелью. Эта панель содержит ссылки на объекты, которые существуют или будут существовать при запуске приложения. При сборке проекта Unity будет искать их на панели проекта и добавлять в пакет.

⑩① Когда приложение закрыто, расположите перечисленные ниже функции событий в том порядке, в котором они будут вызываться:

Эти события действуют при закрытии приложения. из Правильный порядок исполнения Следующим образом:

Примечание: вы можете не согласиться OnApplicationQuit() В приведенном выше списке позиция , Но вы можете проверить его правильность, записав последовательность вызовов, которые происходят при закрытии приложения.

⑩② Используйте следующий код, чтобы объяснить проблему и предоставить альтернативную реализацию, которая может решить проблему.

Проблема в том Вы не можете изменить положение непосредственно из преобразования 。 Это потому, что позиция на самом деле свойство (Вместо поля). Следовательно, когда вызывается геттер, он вызывает метод для возврата Положите в стек из Vector3 Копировать 。

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

Вместо этого правильное решение — заменить все имущество; Например:

* Интервью сложнее технических вопросов, поэтому это всего лишь рекомендации. Не каждый достойный кандидат «пятерки» может ответить на все вопросы, и при этом все они не гарантируют наличие «пятерки». В конце дня, Подбор персонала по-прежнему остается искусством, наукой — еще много рабочих мест 。

Источник

Adblock
detector