Как программисту попасть в геймдев
Индустрия игр в России растет в среднем на 15-20% в год, а в мировом масштабе рынок игр уже обогнал по объемам музыку и кино. Что нужно знать и уметь программисту, чтобы попасть в геймдев, — рассказал Антон Громов, руководитель студии RIKOR GAMES, куратор курса по разработке игр в Scream School.

Статья была опубликована в издании Rusbase.
По данным исследования сервиса Values Value и платформы InGame Job, треть всех вакансий, представленных на джоб- и индустриальных порталах в геймдеве в 2020 году, — это программисты и разработчики. С точки зрения карьеры индустрия игр — очень перспективна в России: топовые программисты в геймдеве зарабатывают 250–350 тысяч рублей. Но программистов привлекает в геймдев не столько деньги, сколько желание поучаствовать в интересных игровых проектах. К тому же, геймдев очень специфичен по менталитету людей — здесь они менее структурированные и более творческие. Это в каком-то смысле закрытая тусовка, где нужен определенный склад ума и подход к жизни.

ПОЧЕМУ В ГЕЙМИНДУСТРИИ НАБЛЮДАЕТСЯ НЕХВАТКА ПРОГРАММИСТОВ
В индустрии всегда есть большие проекты, которые не сможет сделать одна студия. И тогда студии привлекают к себе на кодевелопмент другие компании, которые помогают портировать проект или выполнить какие-то отдельные задачи по нему. Есть большой спрос на продакшн команды. К примеру, в нашей студии RIKOR GAMES работает около 30 человек, до конца года планируем вырасти до 50–60 сотрудников, в следующем, может быть, — до 100–120. Надо сказать, что в играх работа программиста хуже всего поддается переводу на удаленку (важно личное присутствие в команде) и на аутсорс — из соображений безопасности и сложности рабочего процесса.

Почему так нужны люди? Допустим, есть студия, которая владеет известным IP и хочет сделать вторую или третью серию или какой-нибудь DLC (прим. — Downloadable content — дополнительный контент, который можно установить поверх полноценной игры), но у них не хватает ресурсов. И тогда они обращаются к сторонней продакшн-команде.

Еще один фактор — это тренд на ремастеры старых игр. Компании начинают делать ремастеры игр, которые были популярны в 2005-ом, в 2006-ом, в 2010-ом годах. Появляются новые разработки, более мощные компьютеры, более современные движки, на которых можно сделать более интересные визуальные продукты, оживить игру, в которую играли 20 лет назад. Успех зачастую кроется в выпуске игр по уже очень известным IP. Есть, к примеру, Assassin's Creed, и если я выпускаю Assassin's Creed 8, то он будет популярен, потому что в него будут играть все, кто вообще играет в эту серию игр. А новый IP выходит не так часто. Обычно его выпускают относительно новые компании, которые угадывают каким-то образом тренд. Самый последний пример такого типа — это Valheim, который вышел в Steam и стал суперпопулярным. Думаю, никто не сможет объяснить, почему это сработало именно сейчас. Успешность игры измеряется только двумя показателями: это либо количество людей, которые в нее играют, либо деньгами, которые она зарабатывает.

ЧТО НУЖНО ЗНАТЬ И УМЕТЬ ПРОГРАММИСТУ, ЧТОБЫ ПОПАСТЬ В ГЕЙМДЕВ
Разработка игр почти всегда подразумевает какой-то фреймворк, будто то Unreal Engine, Unity или другой движок. У каждого движка есть свои особенности.

Unreal Engine появился на основе Unreal Tournament. Изначально он использовался, в основном, для шутеров, и сейчас этот движок — самый подходящий для разработки шутеров. Unreal Engine до определенного момента был несколько зарытым, можно сказать, элитным движком, и поэтому его поддержка не была на фантастическом уровне. Но после успеха Fortnight этот движок стал развиваться и на ПК, и на мобилках, подтянулась его производительность и функциональность.

На данный момент Unreal Engine — самый универсальный движок, независимо от проекта.

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

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

Входные требования к будущему разработчику игр на Unreal Engine:

  • Знание C++, понимание структур данных и алгоритмов. Поскольку Unreal Engine использует C++, то базовое понимание того, как устроен этот язык, и вообще знание алгоритмов — это необходимые условия, чтобы обучить человека специфике конкретно Unreal Engine.
  • Опыт коммерческого программирования. Вообще, коммерческое программирование отличается тем, что у сотрудника-программиста всегда есть понимание сроков и задач. Это особенно важно, когда несколько людей работают над одним проектом и есть четкие правила, по которым ведется совместная разработка. Это касается умения работать с системами контроля версий (GitHub, Perforce), системами контроля и учета ведения задач (например, Confluence), и с таск-трекерами (Jira, Redmine).
  • Понимание игровых механик и увлеченность играми разных жанров. Если человек не играет в игры и не понимает, как работают те или иные механики, ему будет очень сложно их реализовать. Разработка игр — это не программирование в вакууме, это понимание того, что должно получиться в итоге. Да, всегда есть документация, которую пишут геймдизайнеры, но этого недостаточно.
ГДЕ УЧИТЬСЯ НА ПРОГРАММИСТА В ИНДУСТРИИ ИГР
Будущий программист в геймдеве должен знать язык, который используется в движке: Unity — «си шарп», в Unreal — «плюсы». Дальше, уже внутри компании или на курсах, можно глубоко разбираться в особенностях конкретного движка, как в нем строится работа и какие фичи у него есть. Сейчас Unreal Engine — это самый перспективный движок и на ПК, и на консолях, и точно самый популярный из существующих движков. Но он достаточно требовательный к качеству, потому что «плюсы» сложнее выучить, чем «си шарп». Соответственно Unreal сложнее выучить, чем Unity.

Фундаментальное образование с акцентом на программирование в играх можно получить в технических вузах: например, в МФТИ есть британский бакалавриат по программированию в индустрии игр, в ИТМО — магистратура по внутриигровым технологиям.

Уже опытные программисты могут прокачать свои знания движков и другие точечные навыки на отдельных курсах. Так, Epic Games запустили бесплатные онлайн-курсы по Unreal Engine на своей платформе. Множество курсов предлагают разные онлайн-школы. В очном формате (а значит, наиболее эффективном) разрабатывать игры на Unreal Engine 5 учат ребята из Rikor Games в Scream School.

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

Другие статьи: