Разработка игр на Unity: с нуля до профессионала

0
939
views

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

Кто такой разработчик игр 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/мес.

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here