Интервью с Антоном Чорбой: Профессия геймплей-программиста
В рамках наших обсуждений “Как стать разработчиком игр?” представляем Вам интервью с опытным геймплей-программистом Антоном Чорбой.
Привет, Антон. Расскажи о себе? Как попал в геймдев?
В геймдев попал плавно и случайно. В 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.
Есть ли какой-то особый жанр игр для тебя?
Особого жанра нет, мне нравится сам процесс и что в результате него выходит. Наверное, в меньшей степени мне было бы интересно делать карточные баттлеры, я не фанат карт. Но это всегда зависит от идеи, команды, технологий. С правильной командой можно делать что угодно. Как относишься к инди? Хорошо. На мой взгляд, инди в геймдеве – это такой исследовательский отдел. Он выдает горы треша, но вместе с этим есть много хороших проектов.
Есть ли какая-то профессиональная деформация?
Без этого никак. Но я умею (или мне кажется) переключаться между состояниями игрок/разработчик. Иными словами, я могу играть в игру как игрок и получать от этого удовольствие. Или разбирать игру на части как разработчик – и тоже радоваться. Это, кстати, познавательно – изучать как и, главное, почему сделано в чужих играх. Баги не репорчу. Даже не знаю почему. Когда-то слал, мне никогда не отвечали. Возможно, поэтому сейчас желания нет. Детская травма :-)
Что доставляет наибольшую радость в твоей работе?
Самая большая радость – это выход в продакшн. Просто праздник. Точка, после которой «делал» превращается «сделал». Это так важно еще и потому что много игр закрывается и от них остается только опыт. Он, конечно, ценен, но время ценнее. Время можно поменять на что угодно, даже на опыт. А в обратную сторону – нет. Есть радости поменьше, ежедневные. Например, когда новую механику можно сделать без рефакторинга текущего кода.
Посоветуй что-то ребятам, которые хотят стать разработчиками игр
Если хочется делать игры, то надо делать. Благо инструментов навалом. Например, у Unity на сайте есть есть большой раздел с туторами https://unity3d.com/learn/ tutorials. Можно брать понравившейся и делать его. Есть курс WG Academy (wgacademy.ru), где в течение курса люди делают игры. Тех, кто молодец по итогам курса, приглашают на работу. Подобных курсов, кстати, много, надо гуглить. Еще книжку посоветую http://gameprogrammingpatterns.com. Ну и главный совет, начинать с простого. Лучше сделать Pacman или Mario, чем не сделать PUBG.
Какими качествами должен обладать крутой программист?
Очень важна внимательность. Надо постоянно думать, что делаешь и зачем. Работа на автомате губит все.
Расскажи какую- нибудь историю связанную с геймдевом
Как-то раз, с четверга на пятницу, ночью, мы собирали версию мобильной игры про питомца. Что-то вроде тамагочи. В пятницу было важное демо, а багов у нас было немеряно. Мы кое-как закончили к 11 утра, когда уже начали приходить на работу другие члены команды. И аниматор нашего персонажа принесла пирог, на котором кремом был нарисован главный герой. Мы порезали его на куски и съели. А потом пошли по домам, спать :-)
В заключении
Большое спасибо за интервью, Антон! Очень здорово получилось! Лично мне кажется, твой совет: “Лучше сделать Pacman или Mario, чем не сделать PUBG” для начинающих нужно где-то выгравировать огромными золотыми буквами!