Unreal Engine – это второй по популярности графический движок и программная среда для разработки компьютерных игр и трехмерной анимации. В данный момент сконструирована уже 5 версия движка. Если видите перед собой популярный шутер, вроде Borderlands 3 или Fortnite, знайте: с 80% вероятностью его делали на UE.
Отсюда и такой интерес к профессии разработчика игр на Unreal Engine: где на него выучиться, есть ли какие-то курсы по разработке и, самое главное, сколько зарабатывает такой специалист.
Designed by DCStudio/freepik
Говоря о разработчиках игр, обычно имеют в виду технических специалистов – то есть программистов, которые пишут и оптимизируют код.
Само собой, в готовой среде, вроде Unreal Engine или Unity, этот процесс сильно упрощен, причем до такой степени, что даже неспециалист (например, графический дизайнер) может в ней работать. Для этого в UE разработан собственный визуальный язык программирования Blueprints, не требующий долгого освоения.
Но это вовсе не значит, будто слепить готовую игру можно без навыков программирования. Простенькую и неказистую – возможно. Многоплановую, большую, с кучей сложных механик и передовой графикой – никогда в жизни.
Собственно, поэтому суть работы разработчика игр на Unreal Engine заключается в нескольких важных пунктах:
Проработка техзадания с геймдизайнером;
Разбиение задания на технические блоки и распределение задач между другими программистами;
Написание кода по каждому блоку;
Отлавливание ошибок и багов вместе с тестировщиками;
Оптимизация кода (code review).
Иными словами, UE-разработчик полностью и целиком отвечает за техническую сторону игры: чтобы она стабильно работала, грузилась, не вылетала и не имела критических багов. Нередко ему приходится ставить «заплатки» (патчи), то есть дорабатывать и улучшать игру уже после релиза.
В процессе разработчик игр на Unreal Engine плотно контактирует с другими членами команды: техническими геймдизайнерами и левел-дизайнерами. Если проект большой, зоны ответственности делятся между несколькими программистами – это тоже требует регулярной координации действий.
Несмотря на то, что проектировать игру можно при помощи Blueprint, некоторые участки кода приходится править вручную. И для этого UE-разработчик должен хорошо знать C++. На этом языке построена вся внутренняя логика движка, он отлично подходит, чтобы повысить качество и производительность игры.
Какие знания и умения необходимы для работы с Unreal Engine:
Программирование на C++, библиотеки STL;
Blueprints и его инструменты;
Профайлинг проекта;
Как создавать плагины и ассеты в UE Editor;
Методы многопоточной разработки
Система управления версиями Git;
Алгоритмы и структуры данных;
Документирование кода при помощи Doxygen;
Объектно-ориентированное программирование и паттерны проектирования, как общие, так и специфичные для геймдева;
Понимание устройства игровых механик.
По-хорошему все hard skills разработчика видеоигр должны своиться именно к знанию кода, инструментов программирования и оптимизации.
Однако на практике, особенно если студия маленькая, обязанности размываются: геймдизайнеры должны отлично разбираться в коде, а разработчики – иметь навыки создания 3D-моделей, анимации объектов, создания шейдеров и т.д. В этом основная головная боль всех, кто решил стать разработчиком игр на Unreal Engine и прочих движках.
Есть ещё как минимум два направления, где востребованы услуги таких специалистов:
Иммерсивные технологии, или технологии дополненной реальности с VR-очками. Здесь вариантов великое множество – от детских образовательных проектов до создания 3D-тренажеров по устройству двигателей и узлов автомобилей;
Создание CGI-роликов (от английского computer-generated imagery, или «изображения, сгенерированные компьютером»). Это статичные или динамичные трехмерные ролики, которые также используют в образовательных проектах, мультипликации, создании спецэффектов и т.д.
Designed by Sergey Galyonkin/flickr
Начнем с того, что российские вузы не готовят специалистов для игровой индустрии. Вообще. Нет ни одной специальной образовательной программы и тем более факультета геймдизайнеров, девелоперов и т.д. Максимум, что можно найти – это какой-нибудь спецкурс по 3D-моделированию в математических вузах.
И уж конечно никто отдельно не изучает особенности игровых движков и принципы создания компьютерных игр. Поэтому выход тут только один: либо заняться самообразованием, либо пойти на курсы UE-разработчиков. Вариант с поступлением в вуз можно рассмотреть, если нет никакого профессионального образования, но хочется развиваться в этом направлении.
Безусловно, лучшим подспорьем будет изучение C++ и умение кодить: с позиции миддла или хотя бы джуна, поработав в другой сфере, стартовать намного проще, чем учить всё с нуля. Хотя и такой вариант может быть рабочим.
Оптимальный вариант на наш взгляд – пройти обучение на онлайн-курсах по игровым движкам. Есть отдельный и по Unreal Engine 4. Он будет полезен и начинающему геймдизайнеру, и Junior-разработчику, и даже другим специалистам, которые далеки от программирования, но тоже хотят работать в геймдеве.
Немалый плюс таких курсов: вам помогут с трудоустройством. Ну или по крайней мере порекомендуют, в какую студию устроиться на стажировку.
Есть мнение, что изучать Unreal Engine не так перспективно, как Unity: по второму можно найти гораздо больше интересных проектов в России, пользуются им чаще и охотнее из-за большей универсальности. Например, на Unity выпускают почти все мобильные игры под iOS и Android, а доля движка в создании платных игр и вовсе составляет 49%. Однако, если взглянуть на итоги 2021 года, Unreal Engine 4 уже дышит ему в затылок.
Причина в том, что UE выглядит перспективнее: «из коробки» можно получить гораздо больше красочных эффектов и сделать картинку более реалистичной. К тому же он интуитивно более понятен и прост в освоении. Поэтому многие инди-судии с небольшими бюджетами и штатом сейчас стараются переходить на него.
В то же время Unity построен на C#, который проще в изучении, чем C++. Он лучше адаптирован под создание 2D-игр (а это почти все мобильные игры).
В общем, как всегда, палка о двух концах. Мы бы рекомендовали начать освоение с Unity, поскольку под него на самом деле больше вакансий на рынке, а потом постепенно подучивать Unreal Engine – это даст ещё больше шансов для трудоустройства.
По состоянию на начало 2022 года на HeadHunter насчитывается 316 вакансий для разработчиков игр на Unreal Engine. Большая часть, как водится, в Москве и Санкт-Петербурге. Однако радует, что не всегда требуются сотрудники в офис – есть и возможность удаленной работы.
Что хорошего в трудоустройстве разработчиков игр на Unreal Engine:
Можно заниматься не только играми;
Есть шанс трудоустроиться в зарубежную компанию и получать зарплату в валюте;
Часто оформляют в штат официально по ТК.
Что плохого:
Мало вакансий по сравнению с Unity;
Нужен специалист с опытом, хотя бы Junior. Минимальный порог – от 1 года;
Чаще всего ищут людей из разряда «швец, жнец, на дуде игрец», то есть универсалов, знакомых не только с кодингом, но и массой других навыков. Но это на самом деле ожидаемо для отрасли.
Самая, пожалуй, главная проблема в том, что работодатели предъявляют массу разнородных требований к соискателю. Владение C++ и Blueprint – это бесспорно. Но вот прочий инструментарий совершенно разный.
Из более-менее общего можем выделить:
Знание Git;
Знание принципов ООП;
Опыт работы с сетевыми протоколами TCP/UCP;
Навыки тестирования кода (code review);
Опыт разработки на UI;
Понимание работы игровых механик и построения кода игровой логики;
Английский на уровне Intermediate.
Junior – до 60 тысяч рублей;
Middle – от 90 тысяч рублей;
Senior – от 120 тысяч рублей и выше;
Team Lead – от 350 тысяч рублей и выше.
Проблема в том, что работодатели не всегда указывают заработную плату. Она будет напрямую зависеть от навыков и компетенции работника. Ну а, значит, надо быть готовым к допросу с пристрастием на собеседовании.
Плюсы:
Перспективность;
Достойная зарплата;
Интересная творческая профессия;
Возможность карьерного роста.
Минусы:
Меньшая востребованность на рынке труда;
Сложности с освоением специальности;
Много разнородных требований к квалификации.