Двадцать пятый выпуск - мы говорим о профессии Разработчик игр на Unity. Каковы особенности этой профессии? Каковы обязанности Разработчика игр на Unity? Что нужно, чтобы устроиться на такую работу? Об этом и не только вы узнаете в 25-м выпуске!
Гости подкаста: Антон Керп, Frostgate Studio, Middle Unity Developer и Евгений Дубовик Lead Developer (Kefir studio).
Ведущие выпуска
Вячеслав Уточкин Константин Сахнов
Путь экспертов
Евгений: Я один из тех, кого называют свитчерами. У меня нет специального образования, до 2017 года я не занимался коммерческой разработкой. В 2017 году я пришел в Azur Games, где я завалил собеседования более чем полностью. Но я пришел со своим проектом платформером, он выглядел достаточно интересно и это я думаю и сыграло роль при трудоустройстве. Поэтому если хотите пойти джуном, то имеет смысл создать свой проект небольшой.
Антон: Я попал в индустрию случайно. Я вообще не собирался становиться программистом или связывать жизнь с игровой индустрией. Я собирался стать инженером, и жизнь к этому успешно шла. Но в какой-то момент в институте начались предметы, связанные с программированием, компьютерной графикой и я очень сильно втянулся в это дело и начал делать маленькие игры. К концу обучения у меня начала падать стипендия и я начал искать работу. Получилось так, что в моем городе открылась вакансия программиста Unity в компании Dekovir и они лично меня позвали на собеседование. Я успешно выполнил тестовое и начал у них работать. Проработал там 3 года, два из которых в качестве Team Lead’а. После релиза проекта покинул компанию и отправился в самостоятельное плавание. Делал свои проекты, занимался стартапами, из-за пандемии с ними пришлось притормозить. На фоне всего этого я решил, что надо найти студию и нашел FrostGate, где работаю над их проектом DeadState и пробую себя также во фрилансе.
Чем занимается Unity-разработчик
Все зависит от студии. Чем меньше студия, тем больше обязанностей. В крупных студиях есть четкое разделение по позиции. Если рассматривать джуна, то ему дадут какие-то мелкие задачи: несложные баги, визуальные огрехи, добавить визуальные фичи и другие задания, не сильно загружающие проект. Хотя конечно это еще и от лида, за которым закреплен джун, зависит. Если лид заинтересован в развитии джуна, то ему дадут более сложные задачи. Либо могут дать всю черновую работу на одного джуна.
Более опытный программист будет уже изучать всю архитектуру проекта, разбираться в программах, подключенных к проекту, общаться с коллегами и пр. Хотя чаще программисты люди необщительные и им лучше все самим почитать по ссылкам, изучить и выдать результат.
Собеседование, тестовые задания и зарплаты
Под подкастом в рамках ознакомления будет ссылка с вопросами для собеседования. Это очень хороший способ и ознакомиться и самому ответить и подготовиться к вопросам.
Тестовое задание зависит от того, на какую должность кандидат претендует и какой у него есть опыт. Джуна обычно проверяют на желание учиться и способность усердно работать. И конечно же тестовое составляется под определенные задачи, которые будет выполнять кандидат: какие архитектурные приемы приметит, какие структуры и т.д.
В среднем зарплата джуна находится в районе 40-60 тыс. руб. Очень многие программисты работают на фрилансе, беря заказы и зарабатывая на них.
Unity или Unreal?
Для начала о разнице в используемых языках: Unity использует язык программирования C#, в Unreal С++. Для новичка легче будет начать изучать С#. В нем вероятность наделать ошибок меня. С++ больше на память уже рассчитан. Но касательно крупных проектов нужно понимание всего.
Unreal это отличное решение для ААА-проектов, в нем есть практически все решения для этого. Конечно нужно будет разбираться и изучать все. Поэтому для старта нужно больше знаний. Хотя blueprint’ы дают возможность облегчить старт, но затем все равно нужно получать большое количество навыков.
В Unity есть также готовые решения, плюс язык легче, поэтому порог входа легче для начинающих разработчиков.
Необходимые навыки и качества
Необходимо любить игры, понимать какие механики существуют, какие можно реализовать сейчас, а какие, например, через год, когда навыки прокачаю. Если человек хочет просто быть программистом, то не надо это уметь, но если он хочет делать игры, то в этом надо разбираться. Игровой программист более творческий специалист, нежели любой другой программист. Конечно же нужно знать С#. А чтобы его изучать нужно открыть Unity, открыть книгу по C# и сидеть разбираться.
Для работы в студии необходимо знание Git’а. Хотя бы базово. Необходимо знать английский язык как минимум, чтобы читать документацию. Для работы в студии очень полезно понимать ООП (объектно-ориентированное программирование). Это фундамент, который позволяет сделать все, что хочется. Это стандарт, которым лучше владеть.
Главные качества: не бояться ошибаться, не бояться задавать вопросы, активнее интересоваться проектом.
Советы специалистов
Самое важное делать свои проекты. Ничего так не помогает как практика. Очень полезно читать книги, подходящие под интересное направление. Например, “Чистый код” Роберта Мартина, книги про Git, Роберт Найстром “Шаблоны игрового программирования” а еще книги Майка Кона про Agile. Для людей поопытнее книга Джеффри Рихтер “CLR VIA C#”. Советуем посмотреть сайт Мартина Фаулера про паттерны и книгу его Refactoring. Читать форумы, смотреть Youtube, участвовать в Game Jem’ах.
Полезные ссылки:
Как проходить собеседования на Unity разработчика: https://habr.com/ru/post/553548/
Средние показатели игр по жанрам: https://hsbi.hse.ru/programs/vocational_retraining/menedzhme...
Список игровых компаний: https://hsbi.hse.ru/programs/vocational_retraining/menedzhme...
Личная страничка Олега Доброштана, куда можно написать вопросы для следующих выпусков: https://www.facebook.com/oleg.dobroshtan
Сайт подкаста, где можно послушать все выпуски: http://podcast.hsbi.ru/
Группа ВКонтакте, где публикуются новые выпуски: https://vk.com/hsbi_games
Контакт Вячеслава Уточкина в телеграмм: @viacheslavnu
Вакансии 101XP: https://corp.101xp.com/vacancies/
Полезные ресурсы для разработчиков игр: https://hsbi.hse.ru/programs/vocational_retraining/menedzhme...
Программа профессиональной переподготовки «Менеджмент игровых проектов»: http://game.hsbi.ru/
Дистанционная программа «Основы создания игр»: http://egame.hsbi.ru/
Книга "Хочу в геймдев! Основы игровой разработки для начинающих": https://book24.ru/product/khochu-v-geymdev-osnovy-igrovoy-ra...
Настольная игра Game Dev Sim (симулятор игровой индустрии): https://gamedevsim.edinorog.org/