Интервью с Антоном Чорбой: Профессия геймплей-программиста

В рамках наших обсуждений «Как стать разработчиком игр?» представляем Вам интервью с опытным геймплей-программистом Антоном Чорбой.

Привет, Антон. Расскажи о себе? Как попал в геймдев?
В геймдев попал плавно и случайно. В 2011-м я переехал в Петербург и устроился в компанию Cloudmach на позицию frontend-разработчика. Это был стартап, мы делали технологию, которая рендерила на сервере атласы с графикой, а браузерный клиент на JavaScript их использовал. На этом пробовали делать браузерные игры. Было много разных небольших проектов. Года с 2012-го постепенно начал осваивать Unity и C#. Сейчас работаю в С.Петербургском Варгейминге, делаем мобильную игру.

Были ли в детстве мечты делать игры?
Детской мечты про создание игр у меня не было. А сейчас ни в какой другой индустрии себя не вижу. Для меня это выглядит так. Когда-то давно я делал сайты и всякие веб-сервисы. Там результат труда это, например, интернет-магазин шуб (был у меня такой проект когда-то). Это, конечно, весело — девушки в шубах. Но веселее, когда в результате работы твоего кода, космический рейнджер стреляет из бластера в огромного кальмара, а тот летит, взмахивая щупальцами, и впечатывается в стену. Геймдев дает возможность строить миры и определять в них правила.
Играл я с детства. Сначала был Doom2, WarCraft2. Потом появился StarCraft и это, наверное, лидер по количеству наигранных часов. До сих пор поигрываю.

Расскажи о работе Геймплей-программиста, в чем она состоит?
Геймплей-программист пишет код, который приводит в движение непосредственно игровой процесс. Для этого нужно хорошее понимание механик игры, которую он делает. Это понимание сильно сокращает количество итераций, которые нужно пройти от задачи до рабочего функционала в игре. Поясню на примере. Делаешь ты пошаговый бой, как в героях. Есть группа персонажей, у каждого свой скилл со своей анимацией и эффектами. Использование скилла сопровождается визуальными эффектами: анимации атаки и получения урона, эффекты атаки и получения урона.

Читай также:  Как научиться быстро печатать?

Для начала, надо учесть ограничения памяти. Определить лимиты в памяти для мешей, текстур (в том числе, эффектов), анимаций и звуков персонажа. Определить количество- персонажей в сцене. Посчитать все то же самое для – окружения уровня (персонажи дерутся не в белом пространстве). Все эти ограничения вырабатываются совместно с артами и геймдизайнерами.

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

Какая рутина присутствует в ежедневной работе?

Рутина — понятие гибкое. С одной стороны, из нее состоит 80% всей работы. С другой, яжпрограмиист, автоматизировать рутину — это часть моей работы. Лучше смотреть на скучные задачи с этой стороны — от этого они становятся веселыми.

Расскажи о процессе создания игры
Обычно все начинается с прототипов. Нужно прикинуть, какие части задуманной игры рискованные и проверить их. Риск тут — невозможность сделать хорошо придуманные механики. Можно представить это в виде вопросов: удобен ли задуманный способ управления? можно ли сделать интересный геймплей на тех механиках, которые задуманы? сможет ли целевое устройство (мобильник, приставка…) выдать нужный FPS с планируемым объемом контента.
Понятное дело, от всего не застрахуешься, но лучше ответить на подобные вопросы на пре-продакшене. Когда все проверено и дизайн-документ написан — а вот и нет, он дописывается постоянно 🙂 — случается этап продакшена и команда делает игру.
Я взаимодействую с геймдизайнерами, техническими артистами, 3D артистами, аниматорами — всеми, чьи результаты попадают в игру. Чтобы игра была крутой, я должен делать геймплейные механики максимально хорошо и максимально с первого раза. Переделка — это трата времени. Причем не только моего, ведь механику кто-то должен посмотреть, сформировать отзыв, превратить в задачи, запланировать и т. п. Поэтому изучить примеры в других играх, задолбать кого-нибудь уточняющими вопросами и сделать хорошо. К тому же, делать хорошо — приятно.

Читай также:  Как устроена графика в современных компьютерных играх?

В какие игры играешь сейчас?
Плотно играю в Marvel Strike Force и Age of Magic — тот, который недавно выпустили Playkot. Реже — StarCraft и Fortnite. Жду Last of Us 2 и Cyberpunk 2077.

Есть ли какой-то особый жанр игр для тебя?
Особого жанра нет, мне нравится сам процесс и что в результате него выходит. Наверное, в меньшей степени мне было бы интересно делать карточные баттлеры, я не фанат карт. Но это всегда зависит от идеи, команды, технологий. С правильной командой можно делать что угодно. Как относишься к инди? Хорошо. На мой взгляд, инди в геймдеве — это такой исследовательский отдел. Он выдает горы треша, но вместе с этим есть много хороших проектов.

Есть ли какая-то профессиональная деформация?
Без этого никак. Но я умею (или мне кажется) переключаться между состояниями игрок/разработчик. Иными словами, я могу играть в игру как игрок и получать от этого удовольствие. Или разбирать игру на части как разработчик — и тоже радоваться. Это, кстати, познавательно — изучать как и, главное, почему сделано в чужих играх. Баги не репорчу. Даже не знаю почему. Когда-то слал, мне никогда не отвечали. Возможно, поэтому сейчас желания нет. Детская травма 🙂

Что доставляет наибольшую радость в твоей работе?
Самая большая радость — это выход в продакшн. Просто праздник. Точка, после которой «делал» превращается «сделал». Это так важно еще и потому что много игр закрывается и от них остается только опыт. Он, конечно, ценен, но время ценнее. Время можно поменять на что угодно, даже на опыт. А в обратную сторону — нет. Есть радости поменьше, ежедневные. Например, когда новую механику можно сделать без рефакторинга текущего кода.

Читай также:  Разработка игр инди глазами Buildbox

Посоветуй что-то ребятам, которые хотят стать разработчиками игр
Если хочется делать игры, то надо делать. Благо инструментов навалом. Например, у Unity на сайте есть есть большой раздел с туторами https://unity3d.com/learn/ tutorials. Можно брать понравившейся и делать его. Есть курс WG Academy (wgacademy.ru), где в течение курса люди делают игры. Тех, кто молодец по итогам курса, приглашают на работу. Подобных курсов, кстати, много, надо гуглить. Еще книжку посоветую http://gameprogrammingpatterns.com. Ну и главный совет, начинать с простого. Лучше сделать Pacman или Mario, чем не сделать PUBG.

Какими качествами должен обладать крутой программист?
Очень важна внимательность. Надо постоянно думать, что делаешь и зачем. Работа на автомате губит все.

Расскажи какую- нибудь историю связанную с геймдевом
Как-то раз, с четверга на пятницу, ночью, мы собирали версию мобильной игры про питомца. Что-то вроде тамагочи. В пятницу было важное демо, а багов у нас было немеряно. Мы кое-как закончили к 11 утра, когда уже начали приходить на работу другие члены команды. И аниматор нашего персонажа принесла пирог, на котором кремом был нарисован главный герой. Мы порезали его на куски и съели. А потом пошли по домам, спать 🙂

В заключении

Большое спасибо за интервью, Антон! Очень здорово получилось! Лично мне кажется, твой совет: «Лучше сделать Pacman или Mario, чем не сделать PUBG» для начинающих нужно где-то выгравировать огромными золотыми буквами!

Ребята! Пожалуйста, если Вам понравилась статья — пошарьте её в соц. сетях, особенно ценны Facebook и Google+
Это очень поможет нашему блогу, огромное спасибо!