- Промокоды Honkai Star Rail
- Все сундуки Золотого мига в Honkai Star Rail
- Похвала высокой морали в Honkai Star Rail
- Все сундуки в Лофу Сяньчжоу из Honkai Star Rail
- Первооткрыватель в Honkai Star Rail
- Билд Сюэи в Хонкай Стар Рейл
- Билд Аргенти в Хонкай Стар Рейл
- Все сундуки Сада безмятежности в Honkai Star Rail
- Часовщик грезных механизмов
- Первооткрыватель мертвых вод
Почему сложно портировать игры с PlayStation 4 на PC: рассказывает команда Detroit Become Human
На консоли игре хватало одного потока рендера, на PC пришлось делать многопоточную отрисовку.
Студия Quantic Dream, выпустившая Detroit Become Human на PlayStation 4, а спустя полтора года портировавшая игру на PC, продолжает рассказывать об опыте работы с незнакомой платформой. Как мы уже знаем, основные проблемы были с графическим движком.
С точки зрения программистов 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.