Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 5
×

Геймдев: какие есть специализации программистов и с чего начинать

Привет. Меня зовут Максим Носатов, я Game Developer, работаю с UE4 и Unity3D. Мой стаж в геймдеве — около 5 лет. Я начинал свою карьеру как Unity3D & C++ разработчик в аутсорсинговой компании iLogos, проработал там полтора года.

В 2014 году я заинтересовался Unreal Engine 4. Как и Unity, это компонентно-ориентированный движок. Каждый месяц платил $30 со своей джуниорской зарплаты за лицензию. Надо сказать, это здорово било по бюджету. И спустя некоторое время я решил найти работу по этому профилю. Так как в Украине на тот момент практически не было проектов на UE4, искал вакансии за границей. Получив оффер от польской компании VividGames, я поехал в город Быдгощ на позицию UE4 & C++ разработчика. Там тоже проработал около полутора лет: сначала в UI-команде, позже — в Engine.

Затем я вернулся в Украину и около года сотрудничал с компаниями ProgramAce и CommuniClique. Несколько месяцев назад основал собственную компанию. Мы занимаемся разработкой игр и VR-приложений. Помимо этого, я преподаю на курсе разработки игр games.education.

В этой статье я хочу рассказать, какие специализации программистов бывают в геймдеве и что нужно учить, чтобы развиваться в этой индустрии — с фокусом на Unreal Engine.

Специализации программистов в геймдеве

Сначала пару слов о технологиях: в геймдеве чаще всего пишут на C++. Всевозможные тулзы и сборки в Unreal Engine написаны на C#. Также используется визуальный язык программирования Blueprints — на нем сделано большинство поверхностных систем UE, например, анимационные графы. Если вы заинтересованы в мобильной разработке, вам также пригодится знание нативных языков — к примеру, Objective-С и Java.

Обычно в геймдев-компаниях есть такие роли разработчиков:

  • Gameplay Developers;
  • Engine Developers;
  • Animation Developers;
  • DevOps Developers;
  • Tools Developers;
  • UI Developers;
  • Graphics Programmers;
  • Audio Developers;
  • Client Developers;
  • Back-end Developers.

Причем у нас и странах СНГ принято считать, что один разработчик должен в равной мере обладать всеми вышеперечисленными компетенциями. В западных компаниях обычно предлагают человеку выбрать для себя одно направление и углубляться именно в нем.

Рассмотрим каждую роль подробнее:

Gameplay Developers — отвечают непосредственно за механику. При этом Gameplay-разработчики плотно сотрудничают с гейм-дизайнерами, которые и поставляют им механику. Что касается технологий, в Unreal Engine можно быстро прототипировать за счет Blueprints и писать базовые классы для геймплея за счет С++.

Engine Developers — разрабатывают непосредственно движок: утилиты, тулзы для других разработчиков, занимаются SDK-интеграцией.

Animation Developers — занимаются разработкой анимационных систем, работают со Skeletal animation, делают тулзы для разработчиков и аниматоров. Чаще всего такие специалисты нужны в компаниях, которые работают с кастомными движками — например, Ubisoft, Gameloft, Deep Silver. Так, Ubisoft разрабатывают собственную систему симуляцию одежды, и у них есть вакансии для Animation Developers, которые занимаются непосредственно физикой.

DevOps Developers — занимаются микросервисами, работают с клиентами, такими как Battle.net от Blizzard, Uplay от Ubisoft, которые позволяют пользователям игр совместно играть через интернет, а также покупать и обновлять игры онлайн. DevOps Developer — это одна из самых новых специализаций в геймдеве.

Tools Developers — пишут непосредственно тулзы для гейм-дизайнеров: на Qt или прямо внутри движка.

UI Developers — занимаются графическим интерфейсом, к примеру, делают разнообразные меню, переходы между ними. Могут быть и более сложные задачи — например, кастомизация внешнего вида трехмерного персонажа.

Graphics Programmers — отвечают за качество картинки, работают с низкоуровневым слоем: OpenGL, DirectX. Пишут шейдеры, оптимизируют графику конечного продукта.

Audio Developers — работают со звуком, создают различные эффекты, такие как эхо. Эта специальность начала набирать обороты после появления VR, где нужен трехмерный звук. К примеру, могут работать с интегрированием материалов, от которых отражается звук.

Client Developers — занимаются обработкой событий, работают с верхними интерфейсами.

Back-end Developers — работают с сервером, парсерами, получением данных, при этом никак не касаясь непосредственно игры.

Геймдев в Украине и за рубежом

К сожалению, в Украине весь геймдев построен на аутсорсинге. В некоторых компаниях есть свой продакшн — как правило, это казуалки. Мне кажется, если вы намерены серьезно развиваться как гейм-разработчик и работать над крутыми проектами, следует ехать за рубеж.

На собеседованиях в заграничных компаниях, как правило, спрашивают, чего вы хотите, какая специализация вам наиболее интересна. Проверяют знание базовых вещей: к примеру, если вы идете на Graphics-программиста, у вас спросят об опыте работы с anti-aliasing, моделью Фонга.

Что-то сверхсложное не спрашивают. К примеру, самое трудное, что я встречал по своему опыту и историям знакомых, — вопросы по многопоточности. Просили привести пример какого-нибудь worker thread.

Чтобы попасть в заграничную компанию, помимо хорошего английского требуется опыт работы 2-3 года, так что, скорее всего, вам придется столкнуться и с украинскими компаниями. Из компаний с собственным продакшном на украинском рынке есть Ubisoft, Plarium, Wargaming, Vostok Games, Gameloft и другие.

Что касается Unreal Engine, с весны 2015 года UE4 стал бесплатным, и с тех пор и украинские гейм-компании более активно начали работать с этим движком.

Полезные ссылки

UE4 Resources — это блог разработчика, где он выкладывает все проекты, семплы своих игр. По сути, это его портфолио. Если вы только изучаете Unreal Engine, посморите, как реализованы его проекты, попробуйте сделать по аналогии. Возможно, примеры реализации пригодятся вам при выполнении тестового задания :)

Tom Looman — сайт разработчика, который, можно сказать, вытянул на себе отрасль, написав много статей для Википедии, гиды по C++ и Unreal Engine. В блоге — материалы по Unreal Engine в частности и геймдеву в общем.

Rleonardi.com — интерактивное резюме гейм-разработчика. Отличный пример самопрезентации.

Как развиваться в геймдеве

Чтобы разобраться с геймдевом, вам понадобятся базовые знания объектно-ориентированного программирования, а также языка С++. Изучив азы, можно переходить к игровой специфике.

Вот примерные темы, которые должен освоить начинающий Unreal Engine разработчик:

  • особенности кодинга на С++ в движке UE4;
  • базовые элементы геймплея — Actors;
  • система управления памятью и система обработки игровых объектов;
  • работа с физическими симуляциями и силами, воздействующими на объекты;
  • создание пользовательского интерфейса, виджеты на C++;
  • создание искусственного интеллекта;
  • интегрирование SDК, разработка собственных плагинов;
  • Unreal Build System, коллекция инструментов для автоматизации разработки;
  • непосредственно разработка игры: создание инвентаря, Save System, системы событий и т. д.

Если вас интересует 3D-наполнение для уровней, работа с освещением, материалами, анимацией и динамикой, необходимо освоить:

  • основы работы в движке: интерфейс, трехмерное пространство, элементы управления;
  • дизайн уровня, в том числе шейдинг, текстуры, свет;
  • настройку итоговой визуализации сцены и игровую графику;
  • динамическую стимуляцию: атмосферные эффекты в игре, настройка поведения одежды персонажей;
  • создание игровой логики с помощью визуального программирования на Blueprints;
  • основные виды компоновки игры — шутеры от первого и третьего лица, сайд-скроллер, 2D игру, автосимулятор.

Обязательно попробуйте на практике разные роли гейм-разработчиков из тех, что я перечислял выше. Определитесь, что вам наиболее по душе, и дальше оттачивайте навыки по выбранной специализации.

Если у вас есть вопросы, пишите в комментариях, постараюсь ответить.

Все про українське ІТ в телеграмі — підписуйтеся на канал DOU

👍ПодобаєтьсяСподобалось2
До обраногоВ обраному4
LinkedIn

Схожі статті




27 коментарів

Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.

Еще одна роль разработчика — AI developer. А еще в Украине есть своя качественная продуктовая геймдев компания — 4A Games (бывшая команда S.T.A.L.K.E.R). Посчастливилось когда-то в начале своей карьеры попасть на эту роль в эту компанию =)

Подсущность геймплей разработки.

Для казуалок — может быть, для чего-то более сложного (особенно — стратегий) это совершенно другая область разработки.

Писал АИ для статегий, не считаю это отдельной областью разработки.

Они разве не переехали на Мальту несколько лет назад?

Половина офиса переехала, половина осталась. Тем не менее, это по-прежнему украинская компания и украинский оригинальный продукт.

Они очень крутые, обе части метро топ, но Википедия говорит что штаб-квартира на Мальте, а следовательно компания уже не украинская хоть и с украинскими корнями и думаю что большей частью персонала.

Еще одна роль разработчика — AI developer.

О, всегда хотелось узнать, а как строится AI в современных играх. До сих пор заданные жесткие поведенческие скрипты или уже строится окружение где бот может научить свою нейросеть (про сюжетные скрипты я не говорю).

Просто от современных игр впечатление, что графика улучшилась грандиозно, а вот компьютер до игрока не дотягивает (разве что до самых тупых игроков).

До сих пор скрипты, только вместе с деградацией скила программистов они стали проще и бажнее

Ясно, тоесть альтернативы MMO пока еще нет, так как компьютерные игры интересно проходить ровно один раз чтобы посмотреть сюжет.

Самое главное в украинском геймдеве — не вступить в него, проходя мимо.

и все же геймдев — не самое плохое, во что можно вступить в Украине.

А если геймдев конторой рулит Данила Слуцкий? :)

Овертаймы, маленькая зарплата, руководители с манией всего на свете. Хуже только геймдев стартап

Получается, если хочешь кодить именно игры, то готов работать за $2к в постоянных овертаймах? А если хочешь $3к и спокойствия — иди кодить что-то поскучнее?Хотя вопрос скучности относительный, конечно. (уровни зп наобум, я не кодер). Наживаются на человеческой страсти к играм?

В играх и две не везде. Да, именно — наживаются

Но можно ведь использовать украинские геймдев-компании для старта? А потом зацепиться за какую-нибудь хорошую западную компанию и уехать? Если стоит цель свалить, конечно. Ну или фрилансить.

Ви так кажете, ніби в західних геймдев-компаніях краще.

Здається, що загальний рівень життя тошки вищий. Може хтось напише статтю про роботу в західних геймдев-компаніях, і дізнаємось:)

www.gamasutra.com/...​e_designer_Amy_Hennig.php

I work with a couple of people who have been doing this since the late ’80s and they look remarkably older than they are.

www.gamasutra.com/...​s_Crunch_A_PostMortem.php

On two occasions, I left work early (that is, around the 8-hour mark) to address home issues. On one occasion, I was having a very difficult heart-to-heart with my wife and got a call from a manager asking where I was. I had told another manager that I wasn’t feeling well and felt the need to go home, so I repeated that same lie.

Не факт что статистика реально отражает ситуацию. Однако хоть какие -то цифры. insights.stackoverflow.com/...​-salary-by-developer-type

Для DOU, слово «геймдев» — прямо триггер какой-то.

Почему в современном геймдеве так мало dusha?

как и во всем IT — большинство идет туда ради денег.

Раньше и трава была зеленее, и силт страйдеры выше, и полигоны душевнее.

Не надо обманывать
Раньше были пиксели и спрайты

Потому что всё чаще встречается слово product

Підписатись на коментарі