11/08/2020

Как мы портируем Gun Road на мобилки

Поддержите разработчиков — страница игры на UEDC 2020

Меня зовут Борис, я программист Bread Games. Мы уже довольно долгое время делаем с товарищами игру Gun Road — фритуплейный мобильный экшен. Но мобильным (и фритуплейным) он был не всегда. Портирование игры на UE4 с десктопа на мобилки — очень любопытный процесс, он одновременно и прост, и сложен. Про чисто техническую часть есть множество подробных и обстоятельных статей, я же хочу коснуться стороны организационно-психологической.

Падажжи, какой ещё Gun Road?
Gun Road — игра про машинки и пушки в постапокалиптическом мире, которую вот уже несколько лет разрабатывает наша команда. У нас был долгий препродакшен, поиск идеальной ниши в жанре, сложные решения в разработке (вот, например, о переходе на мобильную платформу) и построении бизнеса. Сейчас мы делаем весёлый разухабистый фритуплей с кучей взрывов, стрельбы и поиском пива в качестве главной мотивации героя. Мы получили много интересного опыта, и сейчас готовимся к софт-ланчу собственными силами. Но это уже совсем другая история...

Что нужно для портирования?

Решимость

На нашей первой конференции разработчиков мы шоукейсили Gun Road как типичную премиумную игру для ПК. Кто-то из игроков и потенциальных издателей, конечно, замечал, что наши механики хорошо легли бы в основу мобильной игры, но в целом мы были уверены в позиционировании нашего проекта. У нас вон и страница на Стиме есть, мы аж Гринлайт застали с нашей игрой. Ну и вообще мобильные игры — это не игры, все ж знают.

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

Если товарищи говорят, что игра крутая, а вот на мобилке была бы ещё лучше — надо прислушаться. Лучше начать портирование раньше, а не как мы. Мы, конечно, молодцы, но было тяжело. Надеюсь, у вас будет лучше.

И вот сейчас к нам начнут подходить разные незнакомые люди и спрашивать, а не хотим ли мы выпустить свою игру на мобилки?

Поиграть в игры

Часть нашей команды — убеждённые ретрограды, уверенные, что раньше не только трава была зеленее, но и игры душевнее. Мобильный гейминг этим людям был чужд. Заниматься разработкой или портированием под мобилки с таким настроем — не самая лучшая идея. Надо засесть и поиграть, посмотреть тренды, открыть для себя существование мобильного мидкора и вообще наверстать упущенное.

Чтобы успешно делать игры, надо в них играть, причём — на соответствующей платформе.

Не забыть мобильные фишки

Даже если на мобильных платформах вы собираетесь продавать свою игру, а не мутить этот вот модный фритуплей, надо не забыть заложить время на интеграцию игры с мобильными экосистемами — прикрутить пуш-нотификации, возможно, какие-то лидерборды... А уж если вы вляпались в условно-бесплатное распространение — надо заложить достаточно времени на изучение и прикручивание рекламы, платёжных систем и качественно лучшей аналитики. По каждой из этих тем можно написать по статье или даже книге, нанять одного-двух выделенных специалистов и, по-хорошему, провести некоторое количество тестов для оптимизации. Ну, то есть, хотя бы немного времени выделите на это, а не прикручивайте всё в последний момент!

Эмуляторы и реальные девайсы

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

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

Подвинули кнопки — пальцы не загораживают экшен.

Живые тестеры

Конечно, тестеры нужны и для ПК-игр, но в случае мобилок их важность вырастает в разы. И дело не только в разнообразии устройств, но и в разнице сценариев их использования. Игра для ПК или консоли может позволить себе длинные игровые сессии, мобильная — нет. Игра для ПК может себе позволить плохое дефолтное управление (потому что его при желании игрок перенастроит), мобильная — нет. Если вы не матёрый разработчик мобильных игр, многие подобные моменты до вас донесут только живые тестеры. Да, есть статьи, гайдлайны, лучшие практики... Но без настоящего фидбэка всегда можно что-то упустить.

Обновить движок

В паре последних обновлений UE4 было добавлено много оптимизаций и всякого добра именно для мобилок. Если по каким-то причинам вы продолжали жить на старой версии движка — самое время обновиться.

Берёшь — и портируешь! (Совсем чуть-чуть про техническую часть)

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

Террейн — в топку!

Террейны вообще много жрут, и если вы не испытываете в них острой геймплейной необходимости, лучше заменить их на меши. Говорят, есть движки, где террейны в плане производительности не дороги, но там и всё остальное довольно дёшево (особенно труд программистов, хех).

Земля стала плоской без террейна, но мы разнообразим окружение скалами и другим ландшафтным дизайном.

Свет и тени

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

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

А ещё мы поигрались со светом и палитрой, чтобы получить более сочную и мультяшную картинку.

Плагины

С одной стороны, для UE4 есть куча плагинов, которые облегчат вам жизнь при разработке именно мобильной игры — например, позволят легко обращаться к функциям Андроида аж из блупринтов. С другой — некоторые плагины могут бездарно жрать ресурсы, что в случае мобилок критично. К тому же, бывают ситуации, когда плагин очень непросто пересобрать под мобильную платформу.

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

Ещё несколько подвохов по поводу плагинов, связанных, кстати, не только с мобильными играми. Часто можно столкнуться, например, с тем, что авторы забросили свою разработку. Подумайте, готовы ли вы сами обновлять и поддерживать плагин, если игра станет от него критически зависеть? Уверены ли вы, что плагин делает то (или только то), что заявлено, особенно, если он скачан не из официального UE-магазина, а просто найден в интернете?

Сложная физика

Опять же, если у вас геймплей не завязан на физике, её придётся нещадно резать. Сделать красиво и недорого — интересная творческая задача для программиста, заложите на неё время и корпоративных успокоительных.

Пушки делают “пиу-пиу“, лазеры “вжжж!“, бандиты ”Иди сюда, ублюдок!“ Можно обойтись и без сложной физики.

Оптимизация графики

По этой теме и без меня много хорошего написано, поэтому просто небольшой тематический лайфхак. Наличие большинства эффектов и визуальных красивостей я привязал к набору переменных. Раньше такое практиковали в настройках графики у больших игр, и даже давали игрокам возможность покопаться в них и заточить картинку под себя, но потом почему-то перестали так делать. Возможно, игрокам стало лень разбираться. Но разработчику-то простой переключатель вкл/выкл поможет не только быстро и без профайлера найти, что же именно роняет в игре FPS, но и сразу же оценить внешний вид игры без этого элемента. Нет FX — нет проблемы!

Управление

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

Ещё одно важное замечание про управление: если вы делаете десктопную игру, но не исключаете возможность портирования её на мобилки — не поленитесь сделать поддержку геймпада. Для ПК-игры это лишний плюс, а для мобильной — можно будет переиспользовать часть этих наработок при переделке управления.

А вот момент, который касается не только экшен-игр. Переделывая игру под мобильное устройство, не забывайте о типичных паттернах управления мобильными интерфейсами. То есть какой-нибудь прокручиваемый список в интерфейсе должен привычно для пользователя свайпатся, а не только шевелиться от нажатий кнопок по краям. Если в игре есть что удалить — сделайте возможность смахнуть это пальцем с экрана. Если что-то трясётся или шатается — пусть игрок потрясёт телефон! Конечно, стоит оставить и более традиционные схемы управления в качестве резервных.

Размер

Боль UE4 — здоровенный размер билда под мобилки, даже если проект ещё пустой. Да и ассеты обычно получаются очень нелегковесными. В интернете есть несколько статей о том, как уменьшить финальный вес мобильных билдов: там расписано, как настраивать упаковку и сжатие, выключать кукинг ненужного контента и прочие важные вещи. Среди советов обычно попадается и “перенесите весь нужный контент в чистый проект”. Это, если кто не пробовал, очень тяжело и больно, а иногда вообще почти невыполнимо. В связи с этим хочется посоветовать с максимально раннего этапа стараться держать проектную папку в порядке, вовремя удалять устаревший контент и вообще не тянуть в проект ничего лишнего. Keep clean, так сказать.

Главный совет

Ах да, чуть не забыл!

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

В идеальном случае вы должны сразу чётко знать свои целевые платформы и с самого начала разрабатывать специально под них. И будет вам счастье.

Поддержите разработчиков — страница игры на UEDC 2020

Недавние статьи

Сценарий вертикального среза

16/09/2020
Алексей Савченко на конкретном примере показывает и рассказывает, как сделать очень важный для разработки игры документ. Образец документа — прилагается.

ON AIR: обратная сторона американских отелей

15/09/2020
Один из победителей гран-при всенародного конкурса разработчиков в прошлом году — хоррор от первого лица ON AIR — решил снова испытать удачу уже на UEDC-2020.

Dash? Dash… Dash!

14/09/2020
Программист многопользовательского экшена Flea Madness рассказывает о реализации одной из задуманных фич — даш-атаки. Эволюция подходов, варианты решения, примеры кода — все, как вы любите.