Конечно, ведь консольную версию делают создатели оригинала, со всей душой и вниманием к деталям, потому что это их проект, их ребенок. А порты полная бездарщина в любом виде. Как-то даже считал статью о том, что многие эффекты консольные на ПК просто выбрасывают, потому что не могут найти подходящего API/инструментария для реализации. Вроде в статье про Детройт это было
Полноценно оптимизировать генерацию шейдеров разработчики так и не смогли.
На PlayStation удобнее: как делали порт Detroit Become Human
В самом конце 2019 года студия Quantic Dream выпустила на PC Detroit Become Human, бывший эксклюзив для PlayStation 4. Спустя 9 месяцев после релиза разработчики из Quantic Dream поговорили о том, как создавался порт для PC.
Портирование Detroit Become Human далось непросто: почти все технологии, использованные в игре, Quantic Dream разрабатывала самостоятельно. Адаптировать их под новую платформу тоже пришлось самим. Мы выбрали самые любопытные моменты из рассказа разработчиков.
Про начало разработки
Портирование заняло больше года: перенос игры начали в июле 2018 года, через два месяца после выхода на консоли.
Движок с самого начала создавался под PlayStation 4, разработчики никогда не думали, что когда-нибудь его придется перенести на другую платформу.
Для PC-версии игры потребовалось создать новый рендер. Это была самая непростая часть работы.
Про проблемы с рендером
В инструментах студии использовался OpenGL — API, который может работать на PC. Адаптировать его под PC и выпустить игру в таком виде было нельзя: были сложности с производительностью и поддержкой GPU разных производителей.
Использовать DirectX 11 тоже не вариант: в Detroit используется масса ресурсов без биндинга, на DirectX 11 это привело бы к масштабной переделке шейдеров и падению производительности.
Разработчикам пришлось выбирать между DirectX 12 и Vulkan. Они похожие, но Vulkan на тот момент поддерживал Windows 7 и 8, а студия хотела, чтобы порт был доступен максимальному числу игроков.
В конце концов выбрали Vulkan, но за время разработки порта Windows 10, поддерживающая DirectX 12, очень сильно распространилась: можно было остановиться и на этом API
https://wtftime.ru/articles/110344/na-p ... ome-human/Про разницу между PC и PlayStation 4
Процессор PlayStation 4 медленнее современных PC, но у консоли есть существенное преимущество: минимальные накладные расходы на работу с API и очень быстрый доступ к железу.
При работе с Vulkan разработчики придерживались подхода, напоминающего PlayStation 4: старались контролировать как можно больше и отдавать на откуп драйверу минимум работы.
По оценке Quantic Dream, графический API консоли гораздо эффективнее, чем любой из API, существующих на PC. В частности, на консоли можно отправлять очень много вызовов отрисовки за один кадр; на низкопроизводительных PC это могло привести к проблемам.
Про шейдеры
На PlayStation 4 они компилируются в автономном режиме и грузятся мгновенно. На PC драйвер компилирует шейдеры во время загрузки, приходится поддерживать много разных GPU и процесс занимает кучу времени.
В случае с Detroit ситуация усложняется тем, что в игре очень много шейдеров: художники могли создавать огромное количество шейдеров, тонко настраивая материалы.
Во время тестов с OpenGL генерирование кэша шейдеров занимало всю ночь, и на старте игра все равно подвисала.
С Vulkan все было не так страшно. Сперва подготовка шейдеров тоже занимала очень много времени, но затем разработчики оптимизировали промежуточные файлы шейдеров и сделали так, чтобы их генерацией занимались все процессорные ядра.
Это сильно ускорило процесс, но был нюанс: привязка к числу ядер. На Threadripper процесс завершался за пару минут, на слабом PC он мог занимать больше 20 минут.
Единственный способ, позволяющий полностью устранить проблему, это уменьшение числа шейдеров. В случае с Detroit это невозможно — потребовалась бы переделка всех материалов, — но в будущем разработчики учтут этот момент.
Тут подробнее





