Detroit become human почему выходит на пк

Обновлено: 27.06.2024

И что же делать?

Как вариант, подождать еще. Пока выпустят патчи, подкрутят оптимизацию и все такое. Ждали же этот порт без малого полтора года. Похоже, что Quantic Dream сама загнала себя в ловушку. Дэвид Кейдж обещал выпустить Detroit: Become Human на ПК уже давно и переносил релиз уже не раз. Возможно, еще несколько месяцев тестирования и отладки могли спасти ситуацию. Но нежелание нарушать обещание взяло вверх.

Второй вариант: купить игру и сразу же проверить ее запуск на своей конфигурации. При появлении проблем попросить возврата денег от Epic Game Store.

Хотите играть в современные игры на слабом компьютере? Просто воспользуйтесь нашим облачным сервисом:

Понравился материал? Подписывайтесь на нас в «Дзене»! Будет здорово, если поделитесь публикацией с друзьями – наверняка и они найдут что-то полезное!

Восстание машин

События Detroit: Become Human разворачиваются в 2038 году. Люди научились производить андроидов, внешне неотличимых от человека. Они используются для выполнения тяжелых и рутинных работ, оказания интимных услуг, а иногда выполняют и задания, связанные с опасностью для жизни.

«Функционально Detroit — это компиляция всех идей и практических решений, с которыми Quantic Dream работала прежде. Как хороших, так и не очень. Назвать её ничем, кроме как типичным для студии продуктом, язык не поворачивается. В долгострое, начавшемся в 2012 году с короткой графической демки, угадываются (порой даже слишком явно) неприкрытые цитаты из всех без исключения проектов студии, начиная с Fahrenheit». Игромания

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

«Detroit часто и без предупреждения меняет обстановку, и порой приходится напоминать себе, что играешь в ту же самую игру. Это большая заслуга не столько Дэвида Кейджа, сколько талантливых художников, композиторов, программистов, которые сделали все, чтобы движок рисовал правдоподобную картинку. И, конечно, заслуга актеров. Become Human — наверное, первая игра, в которой выражение «актерская игра» — не пустой звук». Kanobu

Как и предыдущие игры Кейджа, Detroit: Become Human можно отнести к жанру “интерактивного кино”. Подобные проекты в принципе выходят нечасто, а настолько масштабные и вовсе можно пересчитать по пальцам. Так что ценителям качественных игр не стоит проходить мимо этого релиза. Правда, именно с ПК возникли проблемы.

Концепции разных графических API

OpenGL и старые версии DirectX имеют очень простую модель управления GPU. Эти API просты в понимании и очень хорошо подходят для обучения. Они поручают драйверу выполнять большой объём работы, скрытый от разработчика. Следовательно, в них очень сложно будет оптимизировать полнофункциональный 3D-движок.

С другой стороны, PlayStation 4 API очень легковесный и очень близок к «железу».

Vulkan находится где-то посередине. В нём тоже есть абстракции, потому что он работает на разных GPU, но разработчики имеют больше контроля. Допустим, у нас есть задача реализации управления памятью или кэша шейдера. Так как драйверу остаётся меньше работы, её приходится делать нам! Однако мы разрабатывали проекты на PlayStation, и поэтому нам удобнее, когда мы можем всё контролировать.

Выбор графического API

У нас уже была OpenGL-версия движка, которую мы применяли в наших инструментах разработки.

Но нам не хотелось выпускать игру на OpenGL:

  • У нас было множество проприетарных расширений, которые были открыты не всем производителям GPU.
  • Движок имел очень низкую производительность в OpenGL, хотя, разумеется, её можно было оптимизировать.
  • В OpenGL существует множество способов реализации разных аспектов, поэтому правильная реализация разных аспектов на всех платформах превращалось в кошмар.
  • Инструменты OpenGL не всегда надёжны. Иногда они не работают, потому что мы используем расширение, которого они не знают.

Мы выбирали между DirectX 12 и Vulkan, имеющими очень схожий набор функций. Vulkan в дальнейшем позволил бы нам обеспечить поддержку Linux и мобильных телефонов, а DirectX 12 обеспечивал поддержку Microsoft Xbox. Мы знали, что в конечном итоге нам нужно будет реализовать поддержку обоих API, но для порта разумнее будет сосредоточиться только на одном API.

Vulkan поддерживает Windows 7 и Windows 8. Так как мы хотели сделать Detroit: Become Human доступной как можно большему количеству игроков, это стало очень сильным аргументом. Однако портирование занял один год, и этот аргумент уже маловажен, ведь Windows 10 теперь используется очень широко!

Quantic Dream снизила системные требования Detroit: Become Human на ПК


— Минимальные
- ОС: Windows 10 (64-бит) [Без изменений]
- Процессор: Intel Core i5-2300 @ 2.8 Ггц, Ryzen 3 1200 @ 3.1 Ггц или AMD FX-8350 @ 4.2 Ггц
Оперативная память: 8 ГБ [Без изменений]
Видеокарта: Nvidia GeForce GTX 780 или AMD Radeon HD 7950 (3 ГБ или больше) [Без изменений]

— Рекомендуемые
- ОС: Windows 10 (64-бит) [Без изменений]
- Процессор: Intel Core i5-6600 @ 3.3 Ггц или Ryzen 3 1300X @ 3.4 Ггц
- Оперативная память: 12 ГБ
- Видеокарта: Nvidia GeForce GTX 1060 или AMD Radeon RX 580 (4 ГБ или больше) [Без изменений]

Портирование Detroit: Become Human с Playstation 4 на PC

В этой серии постов мы расскажем о портировании игры Detroit: Become Human с PlayStation 4 на PC.

Detroit: Become Human была выпущена на PlayStation 4 в мае 2018 года. Мы начали работу над версией для PC в июле 2018 года, а выпустили её в декабре 2019 года. Это адвенчура с тремя играбельными персонажами и множеством сюжетных линий. Она имеет очень качественную графику, а большинство графических технологий было разработано самой компанией Quantic Dream.

3D-движок обладает отличными возможностями:

  • Реалистичный рендеринг персонажей.
  • PBR-освещение.
  • Высококачественная постобработка, например Depth of Field (DOF), motion blur, и так далее.
  • Временно́е сглаживание.


Detroit: Become Human

  • Руководитель разработкой 3D-движка Ронан Маршалот и ведущие разработчики 3D-движка Николас Визери и Джонатан Сирет из Quantic Dream расскажут об аспектах рендеринга портированной игры. Они объяснят, какие оптимизации можно было без проблем перенести с PlayStation 4 на PC, и с какими сложностями, вызванными различиями между платформами, они столкнулись.
  • Лу Крамер — это инженер по разработке технологий из AMD. Она помогала нам оптимизировать игру, поэтому подробно расскажет о неоднородном индексировании ресурсов на PC и, в частности, в картах AMD.

Батчинг примитивов

Использование индексирования дескрипторов позволяет нам выполнять батчинг множества примитивов в одном вызове отрисовки с помощью vkCmdDrawIndexedIndirect . Мы используем gl_InstanceID для доступа к нужным индексам в основном буфере. Примитивы можно сгруппировать в батчи, если они имеют одинаковый набор дескрипторов, одинаковый конвейер шейдеров и одинаковый буфер вершин. Это очень эффективно, особенно во время проходов глубины и теней. Общее количество вызовов отрисовки снижается на 60%.

На этом первая часть серии статей завершается. Во второй части инженер по разработке технологий Лу Крамер расскажет о неоднородном индексировании ресурсов на PC и, в частности, в картах AMD.

Оптимизация обновлений наборов дескрипторов

Даже при малом количестве наборов дескрипторов их обновление по-прежнему оставалось узким местом. Обновление набора дескрипторов, если он содержит множество ресурсов, может быть очень затратным. Например, в одном кадре Detroit: Become Human может быть больше четырёх тысяч текстур.

Мы реализовали инкрементные обновления наборов дескрипторов, отслеживая ресурсы, которые становятся видимыми и невидимыми в текущем кадре. Кроме того, это ограничивает размер массивов дескрипторов, потому что им достаточно иметь ёмкость для обработки видимых ресурсов в текущий момент времени. Отслеживание видимости тратит мало ресурсов, потому что мы не используем затратный алгоритм вычисления пересечений с O(n.log(n)) . Вместо этого мы используем два списка, один для текущего кадра, второй для предыдущего. Перемещение оставшихся видимыми ресурсов из одного списка в другой и изучение оставшихся в первом списке ресурсов помогает определять, какие ресурсы попадают в пирамиду видимости и исчезают из неё.

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

В конечном итоге, эта оптимизация снизила время обновления наборов дескрипторов на один-два порядка величин.

Сложности

Центральный процессор PlayStation 4 — это AMD Jaguar с 8 ядрами. Очевидно, что он медленнее, чем новое оборудование PC; однако PlayStation 4 имеет важные преимущества, в частности, очень быстрый доступ к «железу». Мы считаем, что графический API PlayStation 4 гораздо эффективнее, чем все API на PC. Он очень прямолинейный и мало тратит ресурсов впустую. Это означает, что мы можем добиться большого количества вызовов отрисовки на кадр. Мы знали, что высокое количество вызовов отрисовки может стать проблемой на слабых PC.

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

Во время разработки Detroit: Become Human на PlayStation 4 художники могли создавать уникальные деревья шейдеров для всех материалов. Из-за этого получалось безумное количество вершинных и пиксельных шейдеров, поэтому мы с самого начала работы над портом знали, что это станет огромной проблемой.

Системные требования Detroit: Become Human

Минимальные требования к конфигурации компьютера включают процессор Intel Core i7-3770 3.4 Ггц или AMD FX-8350 4.2 Ггц, 8 Гб оперативной памяти, видеокарту Nvidia GeForce GTX 780 или AMD Radeon HD 7950 (3 ГБ).

Рекомендуемые требования: Intel Core i5-8400 2.8 ГГц или AMD Ryzen 5 1600, 16 ГБ оперативной памяти, видеокарта Nvidia GeForce GTX 1060 или AMD Radeon RX 580 (4 ГБ).

Опечатки с процессорами тут нет. В случае минимальной конфигурации речь идет о Core i7 образца 2012 года, который уступает по производительности более свежему i5-8400. Но, даже если у вас топовая конфигурация с кучей памяти и RTX-видеокартой, то от багов игры вы не застрахованы.

Наконец - то! Detroit: Become Human выйдет на ПК.

Одна из лучших игр прошлого года для консолей наконец - то в скором времени будет доступна и для любителей ПК игр. Премьера состоится на официальном игровом портале Epic Games!

Detroit: Become Human рассказывает историю из недалекого будущего, где андройды - механические создания, чей облик практически идентичен человеческому плотно входят в жизнь простых обывателей города Детройт. Благодаря программному обеспечению такие машины способны выполнять различного рода работу - продавцы, полицейские, сиделки, домработницы, работники парков развлечений, грузчики и прочее.

История и сюжетная линия будут разворачиваться между тремя андройдами: Маркусом, Кэрой и Коннором. Они столкнуться со множеством сложностей и в один момент выйдут из программного сценария, станут более человечными. По сути главный вопрос игры - могут ли андройды чувствовать что либо или они лишь машины, игроку придётся сделать ряд трудных решений, от которых и будет зависеть итоговый результат истории.

Эта игра на данный момент одна из самых разносторонних в плане развития сюжета, в каждой сцене возможны несколько разветвлений сценария, поэтому её можно проходить по несколько раз!

Трейлеры игры на русском языке:

Несомненно новость о релизе данной игры на ПК добавила очков популярности новой игровой платформе Epic Games, о конкретных датах выхода версии для ПК пока что неизвестно, но по слухам она станет известна в течении недели - двух!

Индексирование дескрипторов

Для оптимизации скорости вызовов отрисовки на PC мы использовали индексирование дескрипторов при помощи расширения VK_EXT_descriptor_indexing . Его принцип прост: мы можем создать набор дескрипторов, содержащий все используемые в кадре буферы и текстуры. Затем мы сможем получать доступ к буферам и текстурам через индексы. Основное преимущество этого заключается в том, что ресурсы связываются только один раз за кадр, даже если используются во множестве вызовов отрисовки. Это очень похоже на использование несвязанных ресурсов в OpenGL.

Мы создаём массивы ресурсов для всех типов используемых ресурсов:

  • Один массив для всех 2D-текстур.
  • Один массив для всех 3D-текстур.
  • Один массив для всех кубических текстур.
  • Один массив для всех буферов материалов.


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

Худший порт в истории?

Как и многим другим консольным портам, Детройту здорово досталось в первые дни после релиза. Многие игроки обнаружили, что игра отказывается нормально запускаться и работать даже на конфигурациях, значительно более мощных, чем PlayStation 4.

На данный момент зафиксированы следующие проблемы:

  • проседания FPS вплоть до 10-20 даже на средних настройках графики;
  • резкие скачки FPS c 60 до 30 и обратно на некоторых локациях;
  • зависание игры после некоторых катсцен;
  • полное зависание изображения, при этом игра продолжается где-то в “фоне”;
  • загрузка процессора на 100% на некоторых конфигурациях;
  • иногда не работает система сохранений.

Судя по отзывам на форумах и Metacritic, проблемы наблюдаются примерно у половины игроков. При этом явной связи мощности компьютера с наличием лагов и фризов не наблюдается. Скорее это индивидуальные особенности конфигураций. Например, у некоторых пользователей игра крашится строго в тот момент, когда в катсцене Коннор подбрасывает монетку.

Из-за такой оптимизации пользовательский рейтинг ПК-версии Detroit пока не вырос выше 5 баллов. Для сравнения — версия для PS4 набрала около 9-ти баллов.

Ситуацию мог бы спасти патч “первого дня”. Но, к сожалению, Quantic Dream это не та студия, которая выпускает обновления оперативно. И этого патча, вполне возможно, игроки могут ждать месяцами.

Конвейеры шейдеров

Как мы знаем по нашему OpenGL-движку, компиляция шейдеров может занимать много времени на PC. Во время продакшена игры мы сгенерировали кэш шейдеров по модели GPU наших рабочих станций. Генерация полного кэша шейдеров для Detroit: Become Human заняла целую ночь! Все сотрудники получили доступ к этому кэшу шейдеров на утро. Но игра всё равно тормозила, ведь драйверу нужно было преобразовать этот код в нативный ассемблерный код шейдера GPU.

Оказалось, что Vulkan намного лучше справляется с этой проблемой, чем OpenGL.

Во-первых, Vulkan не использует напрямую высокоуровневый язык шейдеров наподобие HLSL, а вместо него применяет промежуточный язык шейдеров под названием SPIR-V. SPIR-V ускоряет компиляцию шейдеров и упрощает их оптимизацию под компилятор шейдеров драйвера. На самом деле, с точки зрения производительности он сравним с системой кэша шейдеров OpenGL.

В Vulkan шейдеры должны быть связаны, образуя VkPipeline . Например, VkPipeline можно создать из вершинного и пиксельного шейдера. Также он содержит информацию о состоянии рендеринга (тесты глубин, стенсил, смешение и т.д.) и форматы render target. Эта информация важна для драйвера, чтобы он мог обеспечить максимально эффективную компиляцию шейдеров.

В OpenGL компиляция шейдеров не знает контекста использования шейдеров. Драйверу нужно дождаться вызова отрисовки, чтобы сгенерировать двоичный файл GPU, и именно поэтому первый вызов отрисовки с новым шейдером может долго выполняться в CPU.

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

Изначально мы пытались создавать VkPipelines в первый раз, когда он нам понадобится. Из-за этого возникали торможения, похожие на ситуацию с драйверами OpenGL. После чего VkPipelineCache обновлялся, и торможение пропадало до следующего вызова отрисовки.

Потом мы прогнозировали, что сможем создавать VkPipelines во время загрузки, но когда VkPipelineCache был неактуальным, это было так медленно, что стратегию загрузки в фоновом режиме реализовать не удалось.

В конечном итоге, мы решили генерировать все VkPipeline во время первого запуска игры. Это полностью устранило проблемы с торможением, но теперь мы столкнулись с новой сложностью: генерация VkPipelineCache занимала очень много времени.

Detroit: Become Human содержит примерно 99 500 VkPipeline ! В игре используется прямой рендеринг (forward rendering), поэтому шейдеры материалов содержат весь код освещения. Следовательно, компиляция каждого шейдера может занимать длительное время.

У нас появилось несколько идей по оптимизации процесса:

  • Мы оптимизировали данные так, чтобы можно было загружать только промежуточные двоичные файлы SPIR-V.
  • Мы оптимизировали промежуточные двоичные файлы SPIR-V с помощью оптимизатора SPIR-V.
  • Мы сделали так, чтобы все ядра CPU тратили 100% времени на создание VkPipeline .

Многие VkPipeline очень похожи. Например, некоторые VkPipeline могут иметь одинаковые вершинные и пиксельные шейдеры, отличающиеся всего несколькими состояниями рендеринга, например, параметрами стенсила. В таком случае драйвер может считать их одним конвейером. Но если мы создаём их одновременно, один из потоков будет просто простаивать, ожидая, пока другой завершит задачу. По своей природе, наш процесс передавал все похожие VkPipeline одновременно. Чтобы решить эту проблему, мы просто изменили порядок сортировки VkPipeline . «Клоны» поместили в конец, и их создание в результате стало занимать гораздо меньше времени.

Производительность создания VkPipelines очень сильно варьируется. В частности, оно сильно зависит от количества доступных аппаратных потоков. На AMD Ryzen Threadripper с 64 аппаратными потоками оно может занимать всего две минуты. Но на слабых PC этот процесс, к сожалению, может проходить больше 20 минут.

Последнее было для нас слишком долго. К сожалению, единственным способом ещё сильнее снизить это время было уменьшение количества шейдеров. Нам требовалось бы изменить способ создания материалов, чтобы как можно большее их количество было общим. Для Detroit: Become Human это было невозможно, потому что художникам пришлось бы переделывать все материалы. Мы планируем реализовать в следующей игре правильный инстансинг материалов, но для Detroit: Become Human уже было слишком поздно.

Читайте также: