Портирование игры на консоли: опыт студии Pingle

Как Lost Ember переносили на PS4 и Xbox One.

Глава Pingle Game Studio Кирилл Мухин в колонке для DTF поделился историей о том, как команда портировала игру Lost Ember. Её нужно было подготовить для релиза не на смартфонах, а на консолях PlayStation 4 и Xbox One.

Портирование игры на консоли: опыт студии Pingle

Постановка задачи

В 2019 году к нам обратилась немецкая студия Mooneye Studios. Ребята разрабатывали Lost Ember — игру с оригинальной идеей. По сюжету игрок управляет душой умершего человека, которая потеряла память о прошлом и теперь блуждает в теле волка, вселяется в тела других животных, проходит квесты и по крупицам собирает свои воспоминания.

Ещё в 2016-м разработчики запустили сбор денег на Kickstarter — они хотели выпустить игру самостоятельно, без внешнего издателя. Всего за несколько часов им удалось собрать около 100 тысяч евро, а за всю кампанию – более 320 тысяч. Тогда же студия пообещала игрокам подготовить релиз к марту 2018-го: как для персональных компьютеров, так и для PlayStation 4 и Xbox One.

Но в команде Mooneye Studios работает всего пять человек, и ребята не успевали уложится в обещанные сроки разработки. Выпуск игры перенесли на год. К этому времени студия практически закончила версию для ПК на движке Unreal Engine, но опыта в создании игр для консолей у них не было. Поэтому к проекту привлекли нас.

Портирование игры на консоли: опыт студии Pingle

Ключевая задача заключалась в том, чтобы успеть подготовить Lost Ember к одновременному запуску сразу на трёх платформах: ПК, PlayStation 4 и Xbox One. Для этого нам нужно было помочь разработчикам оптимизировать версию для ПК и затем портировать её для консолей.

Мы взялись за проект в мае 2019 года и закончили его в сентябре. С нашей стороны над Lost Ember работала небольшая команда из программистов, технических художников и тестировщиков.

Соразработка

Когда над проектом работает сразу несколько команд, самое главное — настроить коммуникацию. Это в классическом аутсорсинге подрядчик может себе позволить работать в режиме «чёрного ящика»: получить от заказчика задачу и вернуться через пару месяцев с готовым решением.

Портирование игры на консоли: опыт студии Pingle

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

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

Также обе технические команды — наша и Mooneye Studios — напрямую переписывались в Slack и обсуждали, кто чем занимается и какой прогресс. Все задачи планировали одновременно на всех участников проекта с обеих сторон.

Портирование игры на консоли: опыт студии Pingle

Ещё играют роль культурные особенности и языковой барьер. У нас «свой» английский, а у ребят из Германии — «свой». По опыту мы знаем, что манера общения жителей Восточной Европы может показаться европейцам грубоватой. Дело в том, что мы не привыкли использовать вежливые обороты вроде «I couldn’t have done it without you» или «I appreciate your support». А если и используем, это звучит, будто мы на них ругаемся. Эти моменты нужно учитывать, чтобы не допускать взаимного недопонимания.

Что касается технической части, мы помогли команде Mooneye Studios выявить и удалить ненужные графические объекты, исходные материалы и другой контент, который успел накопиться из-за длинного срока разработки и приводил к более высокой загрузке и ошибкам.

Ещё в игре использовали визуальные эффекты системы Niagara, которая на тот момент была экспериментальной и потребляла много ресурсов. Мы заменили их на эффекты системы Cascade.

В общей сложности на доработку версии игры для ПК мы потратили около месяца, а затем приступили к портированию.

Портирование игры на консоли: опыт студии Pingle

Улучшение производительности

Производительность. Основная трудность при портировании таких объёмных игр, как Lost Ember, — это оптимизация. Дело в том, что изначально разработчики планировали релиз только на ПК, а потому не уделяли достаточно времени тому, чтобы грамотно использовать ресурсы.

Например, при первом запуске игры в память устройства загружалось большое количество ненужных данных: уровни, которые на данный момент не нужны, все предусмотренные звуки и геометрия. Это почти не отражалось на быстродействии версии для ПК, но оказалось слишком «тяжёлым» для консолей. В результате операционная система консоли не справлялась с нагрузкой и принудительно сворачивала приложение.

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

Портирование игры на консоли: опыт студии Pingle

Сложности добавляло то, что Lost Ember — это игра с «бесшовным» миром. Каждая глава собрана из последовательных локаций, которые должны подгружаться по мере продвижения игрока. В некоторых местах ресурсы загружались в память слишком медленно, и возникали фризы.

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

Работа с графикой

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

При оптимизации визуальных эффектов важно, чтобы игра нормально работала на младших консолях (PS4, Xbox One), но оставался небольшой зазор для улучшения графики на более мощных устройствах (PS4 Pro и Xbox One X). Один из полезных инструментов для такой задачи — динамическое разрешение, при котором разрешение игры автоматически подстраивается под производительность устройства.

Портирование игры на консоли: опыт студии Pingle

Например, по умолчанию игра запускается в качестве Full HD. А в особо «тяжёлых» сценах, когда нагрузка на GPU становится слишком большой, приложение начинает рендерится в уменьшенном разрешении. Это происходит на уровне движка. В результате детализация графики снижается, зато сохраняется необходимая производительность.

Кроме динамического разрешения, мы задавали различные настройки качества для шейдеров, постпроцессов и так далее.

Также, чтобы максимально использовать графические возможности каждой модели консоли, мы использовали соответствующие профили. Каждому из четырёх основных устройств (PS4, PS4 Pro, Xbox One и Xbox One X) соответствует свой профиль. Там мы выставили пороговые значения графических параметров, которые может «вытянуть» приставка — к примеру, уровень качества теней.

От некоторых эффектов и вовсе пришлось отказаться. Например, убрали тесселяцию — это процесс, при котором в процедурных объектах увеличивается плотность сетки, и за счёт этого можно сгладить поверхности. Но такая технология приводит к проблемам в производительности на Xbox One, а на PS4 и вовсе не поддерживается. Поэтому разработчики из Mooneye Studios разрешили полностью убрать эту часть из игры.

Портирование игры на консоли: опыт студии Pingle

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

Сертификация

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

В PlayStation Store и Microsoft Store очень обширный список требований к игре. Они касаются производительности, структуры игрового меню и даже локализации. Например, геймпады на русском — не «джойстики», а «игровые контроллеры».

Поэтому задача QA-специалиста — пройтись по всем пунктам и выявить проблемные места до того, как мы отправим игру на сертификацию.

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

Портирование игры на консоли: опыт студии Pingle

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

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

77 показов
2.1K2.1K открытий
22 репоста
8 комментариев

Комментарий недоступен

Ответить

В PlayStation Store и Microsoft Store очень обширный список требований к игре. Они касаются производительности

Приплетаю.

Ответить

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

Ответить

> В PlayStation Store и Microsoft Store очень обширный список требований к игре. А как обычный игрок может узнать об этих требованиях? Что гуглить?

Ответить

Встречный вопрос: а зачем обычному игроку знать эти требования?)

Ответить