Постмортем: портирование Skyforge на Nintendo Switch

После успешного портирования Warface на Switch мы в Allods Team попробовали перенести на эту консоль другой проект — Skyforge. Что-то далось очень легко, а что-то — сложнее.

Портирование игр не всегда проходит беспроблемно — одни проекты можно легко портировать, другие — нет. Все зависит от типа игры, платформ и других факторов.

После успешного переноса Warface на Switch мы в студии Allods Team решили портировать нашу MMO Skyforge. Что-то далось очень легко, а что-то — сложнее. Ниже мы перечислим пять вещей, с которыми все прошло как надо, и пять вещей, с которыми возникли трудности, а также рассказываем, как команда преодолела эти препятствия.

Рассказывает Дмитрий Лисичкин, ведущий продюсер Skyforge. Этот текст — подробный пересказ материала, опубликованного изданием Game Developer

Постмортем: портирование Skyforge на Nintendo Switch

Пять вещей, с которыми не возникло проблем

Удаленная разработка. Для Allods Team портирование Skyforge на Switch стало одной из первых крупных задач, над решением которой мы трудились полностью удаленно. Мы многому научились в плане распределенной работы, причем это касается не только работы друг с другом, но и взаимодействия с техникой и программами для разработки.

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

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

FPS. При портировании Skyforge на Switch мы хотели добиться частоты кадров в 30 FPS при разрешении 720p, сохранив при этом достойное качество графики и звука. Поэтому производительность ранних версий на Switch стала для нас приятным сюрпризом! На самом первом билде мы ожидали не более 15 FPS — но получили почти вдвое больше. У нас еще не был реализован рендер, но уже был добавлен ввод от игрока, звук и игровая логика. Эта первая версия порта работала нормально при 25-30 FPS.

Этот этап был очень важен для того, чтобы оценить риски проекта. Нет смысла тратить много месяцев на перенос рендера, если производительность процессора в портативном режиме будет не выше 10 FPS. Поскольку играть и тестировать без рендера достаточно сложно, мы использовали клиент с ПК, который был подключен к тому же серверу, чтобы «его глазами» увидеть действия игрока на Switch. Это позволило нам убедиться, что все работает правильно.

Постмортем: портирование Skyforge на Nintendo Switch

Переход от ТВ-режима к портативному. К счастью, для Skyforge это оказалось относительно просто, поскольку наш интерфейс хорошо адаптируется к разному разрешению, оптимизируя внешний вид UI для работы на маленьком экране. Чтобы было удобно играть и взаимодействовать с интерфейсом на маленьком экране, пришлось немного повернуть его и увеличить некоторые элементы. В игре около 300 различных элементов UI и редактировать каждый из них вручную трудоемко, поэтому мы решили делать это программно прямо во время игры.

Преодоление чрезвычайных ситуаций. «Нет подключения к интернету», «проблемы с учетной записью пользователя», «нет доступа к сервисам Nintendo» — это трудности, с которыми мы столкнулись. К счастью, в Nintendo SDK есть система диагностики, поэтому нам зачастую даже не нужно было выяснять причину проблемы.

Например, если у пользователя включен режим полета, то вместо абстрактного сообщения «Не удалось подключиться к серверу, повторите попытку позже» мы можем «спросить» консоль о сетевом подключении, и она «расскажет», что режим полета включен, и предложит пользователю перейти в соответствующий раздел настроек, чтобы отключить его. Очень удобно!

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

Пять проблем, с которыми мы столкнулись

Ограничения CPU. Самой большой проблемой, безусловно, были ограничения ресурсов платформы. Например, процессор Switch имеет только три ядра, и на ранних этапах разработки одно ядро было полностью занято обработкой звука. Это не было оптимальным способом использования ресурсов, поэтому мы решили изменить алгоритм сжатия звука для этой платформы. Но это привело к значительному увеличению размера клиента игры, до 9 ГБ только для звука, что нас тоже не устраивало.

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

Ограничения оперативной памяти. Также возникли сложности с оперативной памятью — в Switch ее всего чуть больше 3 ГБ, включая видеопамять. Конечно, этого слишком мало для современных игр. Даже на 32-битных системах можно добиться большей производительности при использовании отдельной видеопамяти. Нам пришлось проделать большую работу по оптимизации потребления памяти, чтобы каждый уровень в игре помещался в памяти с запасом.

Оптимизация. Сложнее всего было оптимизировать то, что уже ранее было трижды оптимизировано для PC, PS4 и Xbox One. В какой-то момент просто заканчиваются креативные идеи. Чтобы добиться желаемых результатов, нам пришлось уменьшить размер текстур и деталей, а также убрать некоторые эффекты, которые делали картинку более привлекательной и глубокой.

Постмортем: портирование Skyforge на Nintendo Switch

Онлайн стабильность. Skyforge изначально была исключительно онлайновой. Чтобы добиться стабильности, пришлось оптимизировать как контент, так и игровой клиент. Нам пришлось снизить качество графики и отказаться от некоторых более затратных для процессора функций движка. Пришлось значительно упростить небо и 3D-облака, сумеречные лучи (GOD Rays), глубину резкости (Depth of Field).

Ограничения платформы. Хотя портирование на Switch может быть сложным, особенно для таких масштабных проектов, как MMO, его нельзя назвать невозможным. Если вы определите области, в которых можете столкнуться с трудностями, особенно в плане ресурсов, вы сможете уберечь себя от неприятных сюрпризов в дальнейшем. Но вы должны убедиться, что используете и сильные стороны платформы. Например, хороший портативный режим поможет вашей игре выделиться среди других портов.

6060
15 комментариев

В игре очень не хватает возможности поиграть оффлайн, чтобы потом прогресс "залился" на сервер при подключении к сети.

Ах да, совсем забыл: то что нельзя было перенести персонажа - это прям боль. Особенно учитывая то, что денег на ПК было потрачено прилично.

Ответить

В игре очень не хватает возможности поиграть оффлайн, чтобы потом прогресс "залился" на сервер при подключении к сети.Описал полнейший бред для онлайн игры.

8
Ответить

эмммм.... а разве скайфордж не раньше варфейся вышел на свиче?

Ответить

не, warface почти на год раньше портировали

Ответить

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

Ответить

А разрешение 360p не бросается?

Ответить

Спасибо за статью, таких на сайте очень не хватает.
Вопрос. Оптимизация оперативки коснулась только switch-версии или, по итогу, ПК версия тоже более оптимизированная в том плане стала?

Ответить