Разработчики игр – одни из самых востребованных IT-специалистов. В этой статье расскажем, какие навыки нужно иметь и какие технологии изучить, чтобы стать профессиональным 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-разработчиком невозможно.
Официальный портал по изучению 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-разработчик в среднем получает 85 тыс. руб. в месяц. Минимальная зарплата – 60 тыс. руб. в месяц, максимальная – 155 тыс. руб. в месяц.
В мире ситуация следующая: без учета налогов минимальная зарплата – $6 750/мес., средняя – $11 000/мес., максимальная – $22 500/мес.
Информация получена спасибо
Thanks for thr great article!
Thanks for thr great article!
Thank you so much!
Посмотрим, что будет дальше.
Большое спасибо вам за информацию.
It is very comforting to see that others are suffering from the same problem as you, wow!
Thanks for thr great article!
Thank you so much!
Thanks for thr great article!
It is very comforting to see that others are suffering from the same problem as you, wow!
Thank you so much!
In Etsy, Amazon, eBay, Shopify Pinterest+SEO + artificial intelligence give high sales results
Thanks for thr great article!
Thank you so much!