8886

Почему сложно портировать игры с PlayStation 4 на PC: рассказывает команда Detroit Become Human

6
Поделиться
Поделиться
На консоли игре хватало одного потока рендера, на PC пришлось делать многопоточную отрисовку.
Почему сложно портировать игры с PlayStation 4 на PC: рассказывает команда Detroit Become Human
Студия Quantic Dream, выпустившая Detroit Become Human на PlayStation 4, а спустя полтора года портировавшая игру на PC, продолжает рассказывать об опыте работы с незнакомой платформой. Как мы уже знаем, основные проблемы были с графическим движком.

А вот еще история
На PlayStation удобнее: как делали порт Detroit Become Human

С точки зрения программистов Quantic Dream, разрабатывать под PlayStation 4 удобнее, чем под PC. Во-первых, существует только две модели консоли, не нужно адаптироваться под многочисленные конфигурации; во-вторых, операционная система PlayStation 4 работает очень быстро и минимизирует накладные расходы на обращение к железу.

Например, на PlayStation 4 у Detroit Become Human был только один поток рендеринга. Дело в том, что вызовы отрисовки выполняются на консоли так быстро, что разработчикам просто не нужно распараллеливать эти задачи.



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

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

Для этого в Quantic Dream воспользовались уже существующей системой задач, позволяющей разбрасывать вычисления по процессорным ядрам. Разработчикам повезло: в движке была сделана группировка вызовов отрисовки по типам — например, в отдельные группы попадали тени, отрисовка прозрачных объектов, отрисовка шейдеров кожи.

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

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



Из-за недостатка времени на разработку порта некоторые вычисления на PC происходят не так эффективно, как на PlayStation 4. Например, программисты не смогли реализовать такую же продвинутую поддержку асинхронных вычислений, с помощью которых в игре обсчитывалось объемное освещение.

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

Зато Quantic Dream удалось перенести на PC другую оптимизацию с PlayStation 4: алиазинг памяти GPU, дающий возможность сократить издержки на хранение текстур и буферов данных. Только эта оптимизация позволила сэкономить до 164 мегабайт видеопамяти — порядка 10% от общего объема — в разрешении 1080p.


В целом, отмечают разработчики, портирование Detroit Become Human на PC было очень интересным и полезным опытом. Для следующего проекта студия улучшит движок так, чтобы он мог использовать больше преимуществ, имеющихся на PC.
Теги: Detroit: Стать человеком, Игры, Технологии
Evernews
7873 подписчика
Глитч в Genshin Impact позволяет взять сразу пять персонажей