Профессия Gamedev (разработчик игр)
Разработчик игр, или gamedev, занимается созданием программного кода, визуализацией и концепцией игры для ПК, мобильных телефонов, консолей и других гаджетов, выбирает средства и инструменты для решения поставленных задач. Кстати, недавно центр профориентации ПрофГид разработал точный тест на профориентацию, который сам расскажет, какие профессии вам подходят, даст заключение о вашем типе личности и интеллекте.
Профессия подходит тем, кого интересует информатика (см. выбор профессии по интересу к школьным предметам).Краткое описание
Gamedev может работать как самостоятельно, так и в команде, которая состоит:
- из проджект- или продакт-менеджера;
- продюсера;
- гейм-дизайнеров;
- программистов;
- сценаристов;
- нарративных дизайнеров;
- звукорежиссеров;
- художников (по текстурам, по игровому арту, аниматоров и др.);
- VFX-дизайнеров;
- 3D-риггеров;
- тестировщиков;
- и других IT-специалистов.
Состав команды напрямую зависит от бюджета проекта, но если финансирование минимальное, то разработчик игр выполняет функции целой gamedev-команды или те задачи, с которыми он способен справиться.
Игровых девелоперов условно можно разделить на несколько групп:
- настоящие мэтры, которые делают популярные игры в известных компаниях;
- профессионалы, создающие качественные продукты среднего сегмента;
- создатели простых игр (браузерных, мобильных и других);
- геймеры и любители, которые выпускают дополнения и индии-игры.
Главный в разработке игр, пожалуй, gamedev-программист. Он пишет код, чтобы оживить персонажей, создать визуальные эффекты и удобный пользовательский интерфейс, интегрировать звук и событийный ряд.
Языки разработки игр
Больше всего в геймдеве используются:
- C, C++ (большие игры на UE – Unreal Engine);
- C#, Java (игры на Unity);
- PHP, JavaScript (браузерные);
- C++, C#, Objective-C, Java, Python (массовые многопользовательские мобильные типа Crash Arena Turbo Stars, King of Thieves и Bullet Echo (мидкорный тактический командный шутер));
- TypeScript, JavaScript, Ruby (мини-игры и виртуальная expo-зона на платформе WN Hub – входит в группу проектов WN Media Group);
- Swift (для iOS);
- Java/Kotlin (для Android);
- Python (для Panda 3D, Blender Game Engine, PYGame);
- С++, C# (для графической разработки на Unity – чтобы работать с алгоритмами для повышения качества и реалистичности графики).
В целом чаще всего в геймдеве пишут на C++. Утилиты и сборки в Unreal Engine написаны на C#. В UE широко используется CSS-фреймворк Blueprints. В этой системе визуального скриптинга сделана большая часть поверхностных систем Unreal Engine, к примеру, анимационные графы. Если интересует мобильная разработка, то понадобится знание нативных языков (Objective-С, Java и др.).
Специфика профессии
Для создания простых игр разработчику достаточно знать программирование на популярном в геймдеве языке, но если он хочет зарабатывать больше на сложных, масштабных проектах, то много времени придется уделять получению новых знаний:
- инструмент Unity и другие движки, которые необходимы для создания 2D- и 3D-игр;
- объектно-ориентированное программирование;
- языки программирования C#, C++, Java и другие;
- оптимизация 2D- и 3D-игр;
- 3D-редакторы;
- этапы проектировки игрового процесса, прорисовки, визуализации, анимации, физики и других аспектов игры;
- основы разработки игр для мобильных устройств и многое другое.
Разработкой игр могут заниматься дизайнеры мобильных приложений, графические дизайнеры и другие профессионалы из сферы IT. Недостающие знания и навыки можно получить, пройдя короткий подготовительный курс.
Специализации gamedev-программистов
Gamedev – универсальный специалист, который должен уметь создавать анимацию, визуальные эффекты, концепцию игры, дизайн, знать основы моделирования и юриспруденции. Да, геймдев-разработчик, если он работает на себя, должен уметь не только защитить, но и запатентовать разработанную игру или ПО для нее.
Это пока преобладающий на российском рынке геймдева подход к определению обязанностей разработчика игр и пониманию его задач.
В западных gamedev-компаниях у разработчиков игр обычно разные профессиональные роли:
- Gameplay Developer – разрабатывает механику. Геймплеи работают в тандеме с гейм-дизайнерами, поставляющими механику.
- Engine Developer – программирует движок: пишет утилиты, инструменты для других разработчиков, отвечает за SDK-интеграцию.
- Graphics Programmer – обеспечивает качество игровой картинки, работает с низкими уровнями OpenGL, DirectX. Программист игровой 3D-графики пишет шейдеры, оптимизирует графику продукта под разные устройства – планшеты, смартфоны, ПК.
- Animation Developer – разрабатывает анимационные системы, занимается скелетной анимацией (Skeletal animation), пишет утилиты для аниматоров и разработчиков. Обычно нужен в gamedev-студиях, работающих с кастомными движками (Deep Silver, Ubisoft, Gameloft и др.).
- Tools Developer – пишет на фреймворке Qt или внутри движка тулзы (небольшие вспомогательные программы, утилиты) для гейм-дизайнеров.
- UI Developer – совершенствует интерфейс, например, создает меню, продумывает переходы между ними. Из более сложных задач – разработка кастомизации (индивидуальной настройки на вкус пользователя) внешнего вида игрового персонажа.
- Audio Developer – занимается звуком, создает всевозможные саунд-эффекты (шум воды, гром, эхо и т. д.) Эта специализация набирает популярность с развитием технологий VR (виртуальной реальности), в которой нужен трехмерный звук.
- Client Developer – программирует верхний интерфейс, пишет клиентский код, который обрабатывает события в игре. Игровой клиент используется в основном в многопользовательских играх, он подключает каждого пользователя к основному игровому серверу. Этот сетевой клиент собирает данные о счете, статусе игрока и т. д. и отправляет их на главный игровой сервер, чтобы он показывал каждого геймера в игре. Задача Client Developer′а – сделать так, чтобы все это правильно работало на разных платформах.
- Back-end Developer – разрабатывает серверную часть игры, создает и поддерживает масштабируемые архитектуры сервера: профили игроков, лидерборды, кланы и др. Занимается парсерами, сбором данных, но не касается непосредственно игры.
- DevOps Developer – одна из новых gamedev-специализаций. Задача девопса – микросервисы. Он работает с игровыми онлайн-сервисами (например, Battle.net от Blizzard Entertainment или Ubisoft Connect (бывший Uplay), через которые пользователи могут обновлять и покупать игры, вместе играть через интернет).
В странах СНГ принято считать, что один gamedev-разработчик должен обладать компетенциями всех этих десяти программистов. В зарубежных компаниях, как правило, предлагают концентрироваться на одном из направлений разработки и совершенствоваться именно в нем. Справедливости ради надо отметить, что российские студии все чаще размещают вакансии с четким объемом задач и соответствующие зарубежным специализациям геймдевов.
Плюсы и минусы профессии
Плюсы:
- Опытный и талантливый Gamedev получает достойную заработную плату.
- Сделать игру своей работой – такое возможно в очень ограниченном кругу профессий.
- Игры для компьютеров и мобильных устройств пользуются популярностью, поэтому инвесторы охотно вкладывают средства в продвижение игровых программных продуктов.
- Зная языки программирования, программы для создания 3D-графики, основы разработки мобильных приложений и другие направления, связанные с профессией, специалист сможет попробовать свои силы в каждой из этих сфер.
- Творческая работа с возможностью самовыражаться.
Минусы:
- В крупных студиях приходится отодвигать свои амбиции и творческие замыслы на второй план, ставя на первое место требования инвестора или заказчика.
- Ответственность за коммерческий успех.
Личные качества
- Стрессоустойчивость.
- Выносливость.
- Склонность к длительной монотонной работе.
- Задатки руководителя.
- Умение работать в коллективе.
- Предпринимательская жилка.
- Хорошо развитая фантазия.
Обучение на разработчика игр
Учиться созданию игр можно по-разному – в зависимости от будущей специализации в геймдеве. Освоить программирование на популярных в создании игр языках (C++, C# или Java, Python) можно на ИТ-направлениях подготовки в вузах или колледжах. Игровую графику, конечно, лучше изучать на дизайнерских направлениях и специальностях. Несколько примеров программ подготовки разработчиков игр в вузах:
- «Информационные системы и технологии» (09.03.02), профили:
- «Программное обеспечение игровой компьютерной индустрии» (Московский политех);
- «Технологии визуального программирования» (МИРЭА);
- «Информационные технологии в дизайне» (РГУ им. Косыгина, СПбГУПТД, МИЭТ, ГУАП, РГПУ им. Герцена, ВГТУ, НГТУ, БГТУ, ИВГПУ, ГГНТУ им. Миллионщикова);
- «Гейм-дизайн и виртуальная реальность» (МПГУ).
- «Прикладная информатика» (09.03.03), профили:
- «Разработка компьютерных игр и мультимедийных приложений» (МГТУ им. Носова, ДГТУ, МИДиС;
- «3D-дизайн» (МИСиС);
- «Прикладная информатика в дизайне» (СПбГУПТД, ВХУТЕИН, ДВГУПС, УдГУ, ИГУ, АлтГУ, ЧГУ им. Ульянова, ДГТУ, НГПУ, ХГУ им. Катанова);
- «Компьютерная графика» (РУДН).
- «Программная инженерия» (09.03.04), профиль:
- «Разработка и дизайн компьютерных игр и мультимедийных приложений» (МИРЭА).
- «Дизайн» (54.03.01), профили:
- «Гейм-дизайн и виртуальная реальность» (ВШЭ, B&D, ВятГУ);
- «3D-моделирование для компьютерных игр и анимация» (ВШЭ, МИДиС);
- «Дизайн. CGI и визуальные эффекты» (ВШЭ);
- «Анимация и графика компьютерных игр» (МАГУ – Мурманский государственный арктический университет, БГПУ им. Акмуллы – Башкирский государственный педуниверситет).
Изучать разработку игр можно даже в педагогическом вузе, на педагогической специальности. Например, в Балтийском федеральном университете им. Канта на направлении 44.03.05 «Педагогическое образование» есть профиль «Начальное образование. Дополнительное образование (Game Design)».
Получив общую базу, большинство узких профессий игровой индустрии можно получить на курсах. Например в онлайн-школах и университетах за 10–12 месяцев можно стать разработчиком на Unreal Engine 4 (UE4) или на Unity.
Курсы по разработке игр
Место работы
Gamedev может трудоустроиться в агентства и компании, которые занимаются разработкой всех видов игр. Есть возможность работать удаленно, часто компании помогают с релокацией в европейские страны (Испания, Кипр и др.) Увлеченные одиночки-энтузиасты создают инди-игры.
Вакансии для разработчиков игр размещаются не только на обычных порталах поиска работы, есть специализированные сайты, через которые студии ищут нужных специалистов: программистов игр, дизайнеров, художников и т. д. Самые известные сайты для поиска работы в геймдеве: InGame Job, Talents In Games.
Доходы
Труд разработчиков игр может оплачиваться поэтапно – по факту выполненной работы, но обычно геймдевов нанимают на ставку. Размер зарплаты зависит от обязанностей и сложности проекта. Небольшие студии могут выплачивать процент прибыли от каждого запущенного проекта. Стабильные заработки в сегменте браузерных и социальных игр, мобильных приложений, игр для PlayStation.
Карьера
Разработчик игрового ПО может реализовать свой талант практически в любой IT-специальности. Gamedev может открывать собственные компании, создавать продукты, которые интересны ему, а потом заниматься поиском инвесторов, работать на компанию или агентство, получая стабильную прибыль.
Профессиональные знания
- Языки программирования.
- Обязательно знание английского языка.
- Умение рисовать от руки или с помощью специальных программ.
- Знание Unity и других игровых движков.
- Умение работать с 3D-редакторами, программами для 3D-моделирования и другими инструментами для разработки игрового ПО.
Известные представители профессии
- Американ Макги.
- Уилл Райт.
- Хидэо Кодзима.