Я попросил разработчиков объяснить, почему порты ПК в 2023 году работают как мусор

Глядя на состояние релизов ПК в 2023 году, легко начать указывать пальцем. Игра не оптимизирована (что бы это ни значило), или издатель выпустил ее слишком быстро, или видеокарты, которые Nvidia продает нам , имеют слишком мало видеопамяти . Но эти обвинения, в большинстве случаев, полусырые и самонадеянные, и хотя и намекают на реальность, но не рассказывают всей истории.

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

В чем проблема?

Небольшой игровой ПК рядом с PS5.

Во-первых, нам нужно определить основную проблему с ПК, особенно когда игры поставляются в играбельном (если не идеальном) состоянии на консолях, но приходят на ПК ужасно сломанными. На высоком уровне проблема с ПК как платформой заключается именно в том, что делает его таким заманчивым в первую очередь: в гибкости.

Марк Уиттен, старший вице-президент и генеральный менеджер Unity Create, говорит, что «огромное разнообразие и изменчивость конфигураций ПК, на которых будут играть в игры… определенно могут выявить неожиданные проблемы». Уиттен также указывает на «различные операционные системы и новые обновления драйверов, нагрев и задержку, а также пользовательские настройки» как факторы, которые могут играть роль в проблеме.

Я уверен, что это ответ, который большинство людей считают объяснением.

Но проблема, по словам Уиттена, не в отсутствии самого тестирования. Он утверждает, что игры «обычно тщательно тестируются на протяжении всей разработки». Проблема сводится к масштабу различных конфигураций, которые необходимо протестировать разработчикам, а также к переменным, которые они не могут учесть.

В качестве мысленного эксперимента предположим, что разработчик выбрал для тестирования 100 различных конфигураций ПК, варьируя между ними ЦП, ГП, ОЗУ и жесткий диск. Для справки, это число, которое я просто вытащил, а не то, что разработчик на самом деле назвал реалистичной целью. Теперь возьмите все эти конфигурации и умножьте их на десятки дополнительных факторов: Какую ОС вы используете? Какая версия этой ОС? А версия драйвера? Какие настройки BIOS включены? У вас есть какое-либо программное обеспечение, работающее в фоновом режиме, например Razer Synapse или Corsair iCue?

RTX 4080 на рабочем тестовом стенде.
Джейкоб Роуч / Digital Trends

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

Уиттен не одинок в этом мнении. Джон Йоханас, гейм-директор Hi-Fi Rush и The Evil Within 2, говорит, что «довольно нереалистично думать, что вы можете создать продукт, который будет безупречно работать на неограниченных конфигурациях процессоров, графических процессоров, памяти и многого другого». скорее всего, то, что работает в фоновом режиме».

Хидеюки Мияшита, системный программист Hi-Fi Rush, согласился, но особо указал на стоимость оптимизации игры для каждой возможной конфигурации: «С точки зрения производительности ПК идеально было бы сделать каждую графическую функцию масштабируемой для различных конфигураций; однако затраты на разработку ограничивают реалистичную поддержку масштабируемости».

Это не новая история. Большой диапазон конфигураций ПК является общей причиной всего: от того, насколько сложно оптимизировать игры на ПК, до того, почему мы не видели , чтобы Quick Resume Xbox отображалось в Windows . Вопрос в том, что разработчики могут сделать, несмотря на ограниченное время и деньги, которые у них есть. Потому что ПК не становятся проще, а игры по-прежнему приходят на платформу сломанными.

Что вы можете сделать правильно

Кэл Кестис со своим синим световым мечом и BD-1 в Star Wars Jedi: Survivor.

В этом году у нас есть много примеров неправильной поддержки игр для ПК. Одним из ярких примеров является Star Wars Jedi: Survivor , которая в настоящее время находится в статусе «Смешанный» в Steam, несмотря на то, что является одной из самых популярных игр года. Главный обзор гласит: «Единственный сбой повредил мой 140-часовой файл сохранения 99,8% NG+». Угу.

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

Hi-Fi Rush — яркий тому пример. Это новая игра от студии AAA, и в ней используется печально известный Unreal Engine 4. Вы можете подумать, что это сравнение Apple с апельсинами между Hi-Fi Rush и такой игрой, как Star Wars Jedi: Survivor, но у них больше общего, чем вы могли бы подумать. подозревать. Как отмечает Йоханас, «… тот факт, что игра имеет мультяшную эстетику, создаст у некоторых пользователей впечатление, что игра не должна быть проблемой для запуска на чьем-либо ПК. На самом деле, игра делает много вещей, чтобы добиться того внешнего вида, к которому мы стремились, и постоянно меняющегося мира, что очень утомительно… Я знал об этом и позаботился о том, чтобы мы постарались оправдать эти ожидания».

Чай режет робота в Hi-Fi Rush.

Постановка этой цели с самого начала казалась важной для стабильности Hi-Fi Rush . Разработчики отмечают, что с самого начала целью дизайна было поддерживать не менее 60 кадров в секунду (fps) из-за того, что это одновременно и ритм-игра, и игра в жанре экшн, где отставание от этой отметки может вызвать «икоту [что ] может привести к рассинхронизации музыки и плохому восприятию игрового процесса», — говорит Йоханас.

Как команде Tango Gameworks это удалось? В целом это сводится к трем основным пунктам: тщательный мониторинг VRAM, асинхронные операции и кэширование PSO.

По словам Косуке Танаки, ведущего графического программиста Hi-Fi Rush, команда отслеживала использование VRAM на каждом этапе разработки. Это включает в себя, конечно, мониторинг каждого уровня, а также использование видеопамяти каждой секции искусства, просьбы к художникам снизить использование памяти текстур или мешей, чтобы соответствовать бюджету игры. Это не редкость и в разработке игр.

Что работает в пользу Hi-Fi Rush, так это его сильное художественное направление. Как отмечает Танака: «Наш художественный стиль немного помог нам, потому что нам не нужны традиционные текстуры PBR, такие как карты нормалей, карты шероховатости или карты металла». Это свидетельство работы с творческими ограничениями и того, как это может повлиять на стабильность конечного продукта. Йоханас говорит, что дело было не в меньшем масштабе — дело было в том, что «не нужно было делать что-то большое без причины».

Я спросил команду, чему они научились у Hi-Fi Rush , что можно использовать в более крупных и масштабных проектах, но Tango не совсем так извлекает уроки из игры. На самом деле, команда разработчиков сказала мне, что они узнали гораздо больше об оптимизации из Ghostwire: Tokyo, которая в большей степени вписывается в традиционную модель AAA, и они перенесли эти идеи в Hi-Fi Rush, а не наоборот.

Акито атакует врагов магией в Ghostwire: Tokyo.
Ghostwire: Tokyo — это ранняя демонстрация TSR Unreal Engine, которая очень похожа на FSR 2.0.

«Мы многое узнали о том, как бороться с зависаниями в игре в Hi-Fi Rush, из нашего опыта оптимизации Ghostwire: Tokyo », — сказал мне Мияшита. Большая часть этого была кэширование объекта состояния конвейера (PSO) . Это функция, доступная в Unreal Engine 4, которая помогает уменьшить заикание за счет предварительной компиляции шейдеров перед запуском игры.

Основная проблема заключается в том, что Unreal Engine 4 не делает этого автоматически, что приводит к ситуациям, когда шейдеры должны компилироваться во время игры, что вызывает заикание. Мияшита говорит, что «это привело к тому, что некоторые постпроцессы и визуальные эффекты вызывали заикание». Программист также говорит, что кэширование PSO является необязательным, поэтому разработчик должен уделять ему особое внимание.

Однако кэширование не решает всех проблем, и именно здесь вступают в действие асинхронные операции. Команда Hi-Fi Rush использовала асинхронную компиляцию, при которой шейдеры компилируются отдельно от потока игры, но этому также уделялось большое внимание, учитывая, что игра работала на Нереальный движок 4.

Как мы видели в других играх на Unreal Engine 4, таких как Star Wars Jedi: Survivor и Redfall, движок не очень хорошо масштабируется для множества потоков, доступных на современных процессорах. Как объясняет Мияшита: «Насколько сложной может быть поддержка многопоточности, сильно зависит от архитектуры используемого движка. К сожалению, UE4 немного отстает в этом отношении».

В частности, Unreal Engine 4, по словам разработчика, помещает создание актеров (объектов/персонажей) и виджетов (пользовательский интерфейс и оверлей) в тот же поток ЦП, что и игра. Это означает, что всякий раз, когда игра хочет, например, загрузить нового персонажа, она получает приоритет в потоке. Мияшита говорит, что «это может привести к тому, что создание сложных актеров и виджетов надолго заблокирует игровой процесс». Это заикание.

Решение — асинхронные операции. Мияшита говорит, что команда использует инструменты анализа, чтобы точно определить, что делает процессор, когда вводятся объекты, и что они прилагают усилия, чтобы переместить эти задачи в разные потоки, чтобы игра не замедлялась. Этот конкретный таргетинг также может помочь с загрузкой ресурсов. Перемещение этих операций в параллельную структуру может избежать ловушек, связанных с задержкой потоковой передачи, которые присутствуют в таких играх, как Dead Space.

Путь вперед для портов ПК

Лейла защищает себя призрачным зонтиком в Редфолле.

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

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

Дальнейший путь здесь прост. Во-первых, сообщите издателям этих игр, что вы предпочитаете задержку, а не сломанную игру. Крик на разработчиков мало что даст — они уже знают о проблеме и, вероятно, так же, как и вы, хотели бы, чтобы она была решена. Во-вторых, будьте осторожны, покупая новую компьютерную игру в день релиза. Трудно быть терпеливым, когда вы чего-то ждете (поверьте мне, я знаю), но ожидание покупки игры до тех пор, пока проблемы не будут устранены, посылает издателям сильный сигнал, чтобы они вкладывали больше времени и ресурсов в то, чтобы игры были доведены до совершенства. на ПК.

Легко забыть, что это еще неизведанная территория. Сейчас больше, чем когда-либо, игры появляются на ПК в тот же день, когда они появляются на консолях, в отличие от нескольких лет назад, когда порты для ПК появились месяцами (или даже годами) позже. Два поколения консолей назад большинство игр поставлялись только в один день для одной платформы; в предыдущем поколении их было два. Теперь ожидается, что разработчики будут выпускать как минимум три платформы в один и тот же день, а иногда и более пяти, если у них есть версия последнего поколения.

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

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