Опыт портирования на Switch: приёмы и необходимые жертвы

Когда оптимизацией приходится заниматься в одиночку.

The Forbidden Arts — это экшен-платформер про головоломки и магию, выпущенный инди-студией Stingbot Games. Игра вышла 7 августа на Nintendo Switch, Xbox One и ПК.

Владелец студии Стерлинг Селовер в своём блоге на Gamasutra опубликовал историю о том, как он в одиночку пытался добиться 60 кадров в секунду на Switch — чтобы игра не уступала в производительности версиям на других платформах. Мы выбрали из рассказа главное.

Опыт портирования на Switch: приёмы и необходимые жертвы

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

Как известно, в Switch функционирует мобильный графический чип Tegra X1, который значительно слабее аналогов в «старших» консолях. Так, The Forbidden Arts на Xbox One X работает в 4К и 60 FPS, в то время как на консоли от Nintendo максимальное разрешение, которого можно добиться — 1080р в стационарном режиме.

В итоге у Селовера получилось достичь 1080р в док-станции и 720р — в портативе. Впрочем, в The Forbidden Arts функционирует динамическое разрешение: в некоторых сценах оно опускается до 900р и 540р соответственно.

Опыт портирования на Switch: приёмы и необходимые жертвы

Сначала в качестве эксперимента разработчик запустил на девките версию от Xbox — и ожидаемо получил 13 FPS при 720р в портативном режиме, с просадками до 8 FPS. В итоге первой целью стала цифра хотя бы в 30 кадров в секунду.

Как выяснилось, основная нагрузка шла на графический чип — в то время как процессор использовался лишь на 50 процентов. В The Forbidden Arts работала куча графических эффектов: сглаживание, динамическое освещение, тени высокого разрешения, постобработка и много шейдеров, неоптимизированных для Switch.

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

Многие другие студии, которые когда-либо занимались портом для Switch, остановились бы на этой цифре — однако Селовер понял, что при таком фреймрейте The Forbidden Arts неиграбельна. В определённых локациях платформер требует от игрока реакции, и любая задержка была непозволительна. Игра должна была работать при 60 кадрах в секунду, как и на других платформах.

Опыт портирования на Switch: приёмы и необходимые жертвы

Разработчик занялся тенями. Первоначально они были мягкими и работали в реальном времени в самом высоком разрешении. В итоге, после снижения на среднее, а затем и низкое качество теней производительность вновь показала прирост — на этот раз до 41-43 кадров.

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

Осталось разобраться с частными случаями — отдельными ассетами и локациями. На первом уровне игры, Korrath Woods, были две вещи, которые сильно влияли на производительность — трава и деревья. Трава использовала самописный шейдер для того, чтобы она двигалась — от него пришлось отказаться.

Как выглядят все «плоскости» листвы у дерева, с которыми взаимодействует шейдер на старших консолях
Как выглядят все «плоскости» листвы у дерева, с которыми взаимодействует шейдер на старших консолях

Также Селовер порекомендовал создавать с нуля новые ассеты — с меньшей детализацией и не такими «прожорливыми» шейдерами. Однако у разработчика не хватало времени и средств, чтобы заняться этим вплотную — поэтому он использовал старый метод оптимизации.

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

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

Последнее, с чем оставалось разобраться — это со временем загрузки. Самая «объёмная» локация, Overworld, на Switch загружалась 36 секунд, что для платформера слишком много. Пришлось сжать все большие текстуры, которым такое качество «не особо-то и нужно» — от некоторых частиц до скайбоксов.

Опыт портирования на Switch: приёмы и необходимые жертвы

Однако этого было недостаточно: большую часть производительности «съедали» аудиофайлы. Чтобы этого избежать, Селовер слегка переписал код специально для этой локации: так звуки стали храниться напрямую в файлах уровня, а вся нагрузка пошла на процессор. С 36 секунд время загрузки упало до 11-ти. Остальные сцены подгружались и того меньше.

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

119119
98 комментариев

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

76

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

23

Офегенная статья: слегка переписал код, слегка перемоделил, а потом слегонца перетекстурил.

5

Типичная проблема запуска новых игр на пк

2

Сижу со свичем, пс4 и пекой и так и не понял сути свича?
Его позиционируют как домашнюю консоль, но только треть игр в доке даёт хотябы 1080р, когда я подключил его как и соньку к 4К телеку и включил зеноблейд было страшновато, потому что я думал что забыл надеть очки тупо не мог прочитать квест из-за того как шрифт взмылило.
Его позиционируют как домашнюю консоль которую можно взять с собой, но аккум держит дай бог 3 часа после года пользования, а разрешение падает до 540р шо в итоге графон в МК11 хуже чем в МК9 на Вите.
«Эксклюзивы» Нинтендо? Франшизы которые морально и геймплейно устарели и тянутся с 80х годов часть 43 ремастер голд.
Насилие над разработчиками как в статье выше из-за слабого железа господи 4 месяца оптимизировать игру, за это время можно было на половину сделать новую индюшатину.
Все это конечно мое субъективное имхо и не повод для срача, а лишь мысли вслух, я просто чего-то не понимаю в этой жизни.

27

Понт засчитан, но зачем вообще было покупать свитч если нужен в первую очередь графон и игры от нинтендо не интересуют?

51

геймплейно устарели

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

и тянутся с 80х

Ну не то, что твой мортал комбат, он вот свежачок, тянется всего лишь с 92-го года.

21