Unity – это специальный движок (программная среда) для создания компьютерных игр различной сложности. В 2021 году примерно 49% всех платных игр
было написано на его основе, так что профессия разработчика игр на Unity выглядит как никогда привлекательной.
Тем не менее, в России геймдев развит не слишком сильно, поэтому всегда возникают вопросы: а в чем суть работы разработчика игр и где на него выучиться? Сразу скажем: вузы таких специалистов не готовят, потому готовьтесь всё (ну или почти всё) постигать на собственном опыте.
Designed by DCStudio/freepik
Начнем с того, что game development – чрезвычайно разветвленная индустрия, потому в ней, как в кинопроизводстве, есть масса специальностей. Да, есть независимые студии с маленьким штатом, где трудится не более 5–10 человек, которые совмещают несколько функций.
Говоря о разработчике игр на Unity, мы подразумеваем именно технического специалиста, то есть программиста, но на практике часто ищут более-менее универсального сотрудника, знакомого ещё и с 3D-моделированием. Чем конкретно он занимается:
Получает задание от руководителя проекта (геймдизайнера);
Обсуждает задание с коллегами и формулирует проект;
Разбивает проект на блоки;
Пишет код по каждому блоку;
Кооперируется с коллегами, ищет недочеты и ошибки;
Проверяет и оптимизирует написанный код (code review).
С приходом универсальных движков, вроде Unity, процесс стал значительно проще, поскольку многое в программном коде можно разворачивать автоматически. Однако нередко перед программистами стоит задача кастомизации среды, создания библиотек и надстроек над Unity.
Визуальные движки, подобные Unity, не только про компьютерные игры. Специалист, освоивший его, найдет себе занятие везде, где требуются 3D-анимация и графика.
К примеру, в последние годы очень большую роль играют иммерсивные технологии – то есть технологии погружения в виртуальную реальность с использованием VR-шлемов. Их широко используют в образовании, промышленности, медицине и т.д. Типичный пример – тренажеры для подготовки летчиков.
Движок Unity не случайно так популярен – он очень дружелюбен к разработчикам. Можно даже не уметь писать программный код, чтобы им пользоваться. Для этого у среды есть система визуального программирования Bolt – с её помощью и создается внутренняя логика игры.
Однако это вовсе не означает, будто разработчик будет собирать нужные ему элементы как в готовом конструкторе. Нужно понимать базовые принципы логики программирования. Unity поддерживает несколько языков – как популярных, так и весьма экзотических:
Лучше всего изучить C# (си шарп). Именно на нем написаны все библиотеки и основной фреймворк Unity;
Ещё один базовый язык Unity – JavaScript, точнее его специальная версия UnityScript. Хотя в последние годы команда разработки активно избавляется от него, переводя скрипты в C#. Учить не стоит, но, если знаете JavaScript, это будет хорошим подспорьем при трудоустройстве;
Третий и весьма важный язык – C++. Его в Unity можно использовать для написания специальных плагинов, поскольку повсеместно используется для оптимизации программ. Стоит изучить наравне с C#;
Rust. Не самый популярный пока язык, но, как говорят знающие люди, весьма перспективный. Его используют в технологии блокчейн, разработке браузеров и нейросетей. В движке Unity поддерживается частично.
Designed by DCStudio/freepik
Как показывает практика, в геймдев не приходят случайные люди с улицы. Они либо долго и упорно занимались самообразованием, набивая руку на самостоятельных проектах, либо трудились в смежных IT-областях.
Это в полной мере касается разработчиков, которые отвечают за техническую часть. Тем не менее, даже если вы имеете опыт в этой сфере, но никогда не сталкивались с разработкой игр, мы рекомендуем сначала расширить свои компетенции.
Для этого существует и справочная литература, и онлайн-курсы для разработчиков игр на Unity.
Что на них изучают:
Устройство непосредственно движка и его инструментов;
Язык C# (пригодится, если вы никогда до этого с ним не работали, либо вообще не умеете программировать);
Создание трехмерных моделей в Unity3D. Это больше нужно художникам, однако, и программист должен знать, как они работают;
Создание шейдеров и динамических элементов;
Ведение специальной документации;
Оптимизация конечного продукта (игры) и своего рабочего времени;
Принципы Agile-разработки.
Мы проанализировали предложения для Unity-разработчиков на Хабре и HeadHunter и сделали несколько выводов. Если хотите найти работу в области разработки видеоигр, то у нас для вас несколько фактов: часть плохая, часть получше. Начнем с хороших:
Работа для Unity-разработчиков в России есть, хотя позиций не так много, как в других IT-отраслях;
Зарплата, как правило, достойная и нередко в иностранной валюте (чаще всего долларах);
Много вакансий с официальным трудоустройством по ТК;
Есть возможность удаленной работы.
Ну а теперь новости не очень:
Большая часть проектов – детские и казуальные игры под iOS и Android. Если мечтали сходу влиться в какой-нибудь AAA-проект, забудьте – так не бывает;
Работодатели нередко ищут универсалов, у которых есть познания в UI, программировании, оптимизации, 3D-моделлинге, анимировании объектов и т.д.;
Повсеместно требуется опыт разработки на Unity от 3 лет и выше. Позиции в основном для крепких Middle и Senior, а то и Lead-разработчиков. Предложения для Junior встречаются значительно реже. При этом нередко требуется опыт участия в коммерческих проектах.
Junior – до 40 тысяч рублей, либо по итогам собеседования;
Middle – от 90 тысяч рублей, либо по итогам собеседования;
Senior (Lead) – до 300 тысяч рублей.
Из всех разработчиков однозначно будут в плюсе те, кто найдет удаленную работу в заграничной компании. Здесь предложения по зарплатам доходят до 5000 USD.
Знание Unity3D;
Знание C# и принципов объектно-ориентированного программирования;
Опыт работы с системой версий Git;
Наличие опыта от 1 года и портфолио;
Умение работать с технической документацией;
Знание английского на уровне Intermediate (при работе на зарубежную компанию Upper Intermediate).
Плюсы:
Интересная творческая работа;
Достойная заработная плата;
Возможность работать удаленно на зарубежную компанию;
Универсальность движка Unity (мобильные игры, казуальные, онлайн-игры) и больше возможностей для трудоустройства.
Минусы:
Требуется опыт при трудоустройстве;
Неразвитость индустрии разработки игр в России;
Часто требуются универсальные разработчики (дизайн, моделирование, техническая сторона).