Глядя на состояние релизов ПК в 2023 году легко начать указывать пальцем. Игра не оптимизирована (что бы это ни значило), или издатель слишком поторопился с ней, или видеокарты Nvidia продают нам. со слишком маленьким VRAM. Но эти обвинения, в большинстве случаев, полусырые и самонадеянные, и хотя и намекают на реальность, но не рассказывают всей истории.
Содержание
- В чем проблема?
- Что вы можете сделать правильно
- Путь вперед для портов ПК
Рекомендуемые видео
Я хотел знать, что на самом деле происходит, поэтому я встретился с несколькими разработчиками, чтобы понять, в каком состоянии находятся компьютерные игры и почему появилось так много релизов с такими большими проблемами. Что еще более важно, я хотел знать, что разработчики и издатели могут сделать для решения этих проблем. и хотя путь вперед неясен, становится очевидным, что разработчики знают, что есть проблема.
В чем проблема?
Во-первых, нам нужно определить основную проблему с ПК, особенно когда игры поставляются в играбельном (если не идеальном) состоянии на консолях, но приходят на ПК ужасно сломанными. На высоком уровне проблема с ПК как платформой заключается именно в том, что делает его таким заманчивым в первую очередь: в гибкости.
Связанный
- При эксклюзивном партнерстве с ПК проигрывают все
- У консолей все еще есть одно большое преимущество, и оно вредит компьютерным играм.
- Как вирусная видеокамера обманула Интернет, заставив его думать, что это настоящие кадры
Марк Уиттен, старший вице-президент и генеральный менеджер Unity Create, говорит, что «огромное разнообразие и изменчивость конфигураций ПК, на которых будут играться игры… выявлять неожиданные проблемы». Уиттен также указывает на «различные операционные системы и новые обновления драйверов, нагрев и задержку, а также пользовательские настройки» как факторы, которые могут играть роль в проблеме.
Я уверен, что это ответ, который большинство людей считают объяснением.
Но проблема, по словам Уиттена, не в отсутствии самого тестирования. Он утверждает, что игры «обычно тщательно тестируются на протяжении всей разработки». Проблема сводится к масштаб различных конфигураций, которые необходимо протестировать разработчикам, а также переменных, которые они не могут учесть для.
В качестве мысленного эксперимента предположим, что разработчик выбрал для тестирования 100 различных конфигураций ПК, варьируя ЦП, ГП, БАРАН, и жесткий диск между ними. Для справки, это число, которое я просто вытащил, а не то, что разработчик на самом деле назвал реалистичной целью. Теперь возьмите все эти конфигурации и умножьте их на десятки дополнительных факторов: Какую ОС вы используете? Какая версия этой ОС? А версия драйвера? Какие настройки BIOS включены? У вас есть какое-либо программное обеспечение, работающее в фоновом режиме, например Razer Synapse или Corsair iCue?
Объем возможных конфигураций выходит далеко за рамки того, какие процессоры и графические процессоры есть в вашей системе. эти факторы могут легко размножаться в десятки тысяч сценариев, которые разработчики просто не могут учесть для. В идеальном мире разработчики могут исправить самые серьезные проблемы для самых популярных конфигураций ПК с помощью новейших обновлений драйверов и ОС, оставив после запуска только небольшие, конкретные проблемы.
Уиттен не одинок в этом мнении. Джон Йоханас, игровой директор Привет-Fi Rushи Зло внутри 2, говорит, что «довольно нереалистично думать, что вы можете сделать продукт, который будет безупречно работать на том, что похоже на неограниченную конфигурацию процессоров, графических процессоров, памяти и, что более вероятно, того, что работает в фон."
Хидеюки Мияшита, системный программист Привет-Fi Rush, согласился, но особо указал на стоимость оптимизации игры для каждой возможной конфигурации: «В с точки зрения производительности ПК, сделать каждую графическую функцию масштабируемой для различных конфигураций было бы идеальный; однако затраты на разработку ограничивают реалистичную поддержку масштабируемости».
Это не новая история. Большое количество конфигураций ПК является общей причиной всего: от того, насколько сложно оптимизировать игры на ПК, до того, почему мы не видели Быстрое резюме Xbox отображается в Windows. Вопрос в том, что разработчики могут сделать, несмотря на ограниченное время и деньги, которые у них есть. Потому что ПК не становятся проще, а игры до сих пор приходят на платформу сломанными.
Что вы можете сделать правильно
В этом году у нас есть много примеров неправильной поддержки игр для ПК. Один простой пример Звездные войны Джедай: Выживший, который в настоящее время находится в статусе «Смешанный» в Steam, несмотря на то, что это одна из самых популярных игр года. Главный обзор гласит: «Единственный сбой повредил мой 140-часовой файл сохранения 99,8% NG+». Угу.
Я обратился к команде разработчиков, чтобы понять, что пошло не так, и, хотя изначально они были восприимчивы, вмешалась EA и перестала отвечать на мои электронные письма. Таким образом, вместо того, чтобы смотреть на то, что игры делают неправильно на ПК, нам нужно смотреть на то, что разработчики делают правильно.
Привет-Fi Rush является основным примером. Это новая игра от студии AAA, и в ней используется печально известный Unreal Engine 4. Вы можете подумать, что это сравнение яблока с апельсином между Привет-Fi Rush и такая игра Звездные войны Джедаи: Выживший, но у них больше общего, чем вы можете подозревать. Как отмечает Йоханас, «… тот факт, что игра имеет мультяшную эстетику, создаст у некоторых пользователей впечатление, что игра не должна быть проблемой для запуска на чьем-либо ПК. На самом деле, игра делает много вещей, чтобы добиться того внешнего вида, к которому мы стремились, и постоянно движущийся мир, который очень утомителен… Я знал, что вхожу, и позаботился о том, чтобы мы попытались поразить эти ожидания».
Постановка этой цели с самого начала казалась важной Привет-Fi Rushстабильность. Разработчики отмечают, что с самого начала целью дизайна было поддерживать не менее 60 кадров в секунду (fps) из-за того, что это одновременно ритм-игра и по словам Йоханас.
Как команде Tango Gameworks это удалось? В целом это сводится к трем основным пунктам: тщательный мониторинг VRAM, асинхронные операции и кэширование PSO.
По словам Косуке Танаки, ведущего графического программиста Привет-Fi Rush, команда отслеживала использование VRAM на каждом этапе разработки. Это включает в себя, конечно, мониторинг каждого уровня, а также использование видеопамяти каждой художественной секции, просьбы к художникам снизить использование памяти текстур или мешей, чтобы соответствовать бюджету игры. Это не редкость и в разработке игр.
Что работает в Привет-Fi Rushпреимуществом является его сильное художественное направление. Как отмечает Танака: «Наш художественный стиль немного помог нам, потому что нам не нужны традиционные PBR-текстуры, такие как карты нормалей, шероховатости. карты или металлические карты». Это свидетельство работы с творческими ограничениями и того, как это может повлиять на стабильность финальной версии. продукт. Йоханас говорит, что дело было не в меньшем масштабе — дело было в том, что «не нужно было делать что-то большое без причины».
Я спросил команду, чему она научилась. Привет-Fi Rush что это может быть использовано в более крупных проектах, но это не совсем то, как Tango извлекает уроки из игры. На самом деле, команда разработчиков сказала мне, что узнала гораздо больше об оптимизации из Ghostwire: Токио, который в большей степени вписывается в традиционную модель AAA, и он перенес эти идеи в Привет-Fi Rush, А не наоборот.
«Мы многое узнали о том, как справляться с заиканием в игре, в Привет-Fi Rush из нашего опыта оптимизации Ghostwire: Токио— сказал мне Мияшита. Большая часть этого была Кэширование объекта состояния конвейера (PSO). Это функция, доступная в Unreal Engine 4, которая помогает уменьшить заикание за счет предварительной компиляции шейдеров перед запуском игры.
Основная проблема заключается в том, что Unreal Engine 4 не делает этого автоматически, что приводит к ситуациям, когда шейдеры должны компилироваться во время игры, что вызывает заикание. Мияшита говорит, что «это привело к тому, что некоторые постпроцессы и визуальные эффекты вызывали заикание». Программист также говорит, что кэширование PSO является необязательным, поэтому разработчик должен уделять ему особое внимание.
Однако кэширование не решает всех проблем, и здесь на помощь приходят асинхронные операции. Привет-Fi Rush команда использовала асинхронную компиляцию, при которой шейдеры компилируются отдельно от потока игры, но этому также уделялось большое внимание, учитывая, что игра работала на Unreal Engine 4.
Как мы видели в других играх Unreal Engine 4, таких как Звездные войны Джедай: Выживший и Редфолл, движок не очень хорошо масштабируется на множество потоков, доступных на современных процессорах. Как Мияшита объясняет: «Насколько сложной может быть поддержка многопоточности, сильно зависит от используемого движка. архитектура. К сожалению, UE4 немного отстает в этом отношении».
В частности, Unreal Engine 4, по словам разработчика, помещает создание актеров (объектов/персонажей) и виджетов (пользовательский интерфейс и оверлей) в тот же поток ЦП, что и игра. Это означает, что всякий раз, когда игра хочет, например, загрузить нового персонажа, она получает приоритет в потоке. Мияшита говорит, что «это может привести к тому, что создание сложных актеров и виджетов надолго заблокирует игровой процесс». Это заикание.
Решение — асинхронные операции. Мияшита говорит, что команда использует инструменты анализа, чтобы точно определить, что делает процессор, когда объекты доставляются. в, и что они прилагают усилия, чтобы переместить эти задачи в разные потоки, чтобы игра не тормозила. вниз. Этот конкретный таргетинг также может помочь с загрузкой ресурсов. Перемещение этих операций в параллельную структуру может избежать ловушек, связанных с заиканием потоковой передачи, присутствующих в таких играх, как Мертвый космос.
Путь вперед для портов ПК
Игры, которые сегодня выходят в плачевном состоянии, начали разрабатываться много лет назад, так что, хотя я надеюсь, что выпуски для ПК будут улучшаться в течение года, может пройти несколько лет, прежде чем мы увидим эти основные проблемы. адресованный.
Уиттен говорит, что «разработчики так же озабочены производительностью, как и игроки», и это мнение я слышал несколько раз. Существуют способы оптимизации версий для ПК: от предварительного кэширования шейдеров до асинхронных операций и проверки на самых разных аппаратных средствах. Но реальность такова, что разработчики не могут учесть все, время или деньги, а обычно и то, и другое.
Дальнейший путь здесь прост. Во-первых, сообщите издателям этих игр, что вы предпочитаете задержку, а не сломанную игру. Крик на разработчиков мало что даст — они уже знают о проблеме и, вероятно, так же, как и вы, хотели бы, чтобы она была решена. Во-вторых, будьте осторожны, покупая новую компьютерную игру в день релиза. Трудно быть терпеливым, когда ты чего-то ждешь (поверь мне, я знаю), но ждешь, чтобы купить игру, пока проблемы были исправлены, это посылает издателям сильный сигнал, чтобы они вкладывали больше времени и ресурсов в то, чтобы игры были отполированы на ПК.
Легко забыть, что это еще неизведанная территория. Сейчас больше, чем когда-либо, игры появляются на ПК в тот же день, когда они появляются на консолях, в отличие от нескольких лет назад, когда порты для ПК появились месяцами (или даже годами) позже. Два поколения консолей назад большинство игр поставлялись только в один день для одной платформы; в предыдущем поколении их было два. Теперь ожидается, что разработчики будут выпускать как минимум три платформы в один и тот же день, а иногда и более пяти, если у них есть версия последнего поколения.
Нетрудно понять, почему возникают проблемы на ПК, учитывая этот контекст, но, надеюсь, на подходе более совершенные релизы.
Эта статья является частью ReSpec — постоянная двухнедельная колонка, включающая обсуждения, советы и подробные отчеты о технологиях, лежащих в основе компьютерных игр.
Рекомендации редакции
- Я пытался пережить забытое наследие Halo в виде франшизы для Mac — и это была катастрофа.
- Худшие порты для ПК всех времен — и почему они были такими плохими
- Star Wars Jedi: Survivor подвергается критике в Steam как «полный дерьмовый» порт для ПК
- Как Unreal Engine 5 решает самую большую проблему компьютерных игр
- ИИ появится в ваших компьютерных играх, но вы должны волноваться, а не беспокоиться