Несмотря на кажущуюся гибкость ПК как игровой платформы, геймеры нередко сталкиваются с проблемами, в том числе довольно серьезными. В начале 2020-х ситуация была совсем уж плачевной: бум майнинга и последовавшая за ним проблема с поставками полупроводников привела к дикому завышению цен на комплектующие, особенно на видеокарты. Когда ситуация наконец немного стабилизировалась, в полный рост встала другая проблема — оптимизация.
Многие запомнили 2023-й как отличный год для видеоигр, однако хватало и проблемных тайтлов. Классные игры вроде The Last of Us Part I и Star Wars Jedi: Survivor запомнились критическими проблемами на старте, но и у крепких тайтлов вроде Dead Space Remake и Hogwarts Legacy хватало своих недостатков, главным из которых можно считать повсеместные статтеры. Геймеры отметили, что проблемы не универсальны: да, падение частоты кадров бывает даже на пустом месте, но, например, странная имплементация трассировки лучей встречается не в каждой игре. А компиляция шейдеров и вовсе может создавать противоположные проблемы: уже упомянутая The Last of Us Part I на старте могла отнимать до двух часов только на подготовку к игре (тем самым отнимая возможность оформить возврат средств в Steam), а у Wo Long: Fallen Dynasty быстрая загрузка, наоборот, приводила к постоянным статтерам именно из-за компиляции шейдеров в ходе игры.
Проблему не назвать новой и тем более простой. В этом тексте Cybersport.ru попытался собрать доступную информацию, взглянуть на историю вопроса и попробовать разобраться, что же не так с портами — и только ли это проблема ПК-игроков.
Бесконечность не предел
Генеральный менеджер Unity Create Марк Уиттен уверен, что одной из ключевых проблем ПК-гейминга является его же главное преимущество — гибкость. Широкая вариативность конфигураций, выбор ревизий операционных систем и драйверов, а также различия в температурных режимах и вольтаже могут сказываться на производительности тех или иных тайтлов. Уиттен подчеркивает, что игры непременно активно тестируются во время разработки, но учесть все возможные конфигурации попросту невозможно. Плюс не стоит забывать, что более продвинутые пользователи нередко меняют параметры железа еще глубже, на уровне BIOS и специализированного софта. В связи с этим перед девелоперами становится сложная проблема оптимизации — приходится жертвовать и заниматься исключительно самыми популярными конфигурациями, выпуская патчи для исправления конкретных жалоб по факту их возникновения.
К Уиттену присоединяются и конкретные разработчики: например, системный программист Tango Gameworks Хидэюки Миясита считает, что в идеальном случае в играх должны быть крайне гибкие настройки под конкретные конфигурации железа, однако это нереалистично в связи с почти бесконечной вариативностью сборок и настроек конкретных машин — речь никогда не идет только о связке GPU и CPU.
Молодой человек, это не для вас написано
Еще одна интересная особенность портирования заключается в том, что далеко не всегда те или иные игры создаются с учетом всех платформ. Это старая проблема: можно вспомнить чудовищные по своему качеству ПК-порты из прошлого — например, первая версия Dark Souls: Prepare to Die Edition работала исключительно с внутренним разрешением 1024х720, была заблокирована на 30 FPS, лишена графических настроек, не поддерживала клавиатуру и мышь и страдала от многочисленных багов, от звуковых до графических. Еще одним характерным примером можно считать Devil May Cry 3: экшен страдал от многочисленных проблем, причем решения некоторых настолько удивительны, что стали притчей во языцех. Например, падение FPS можно было исправить… вручную удалив папку с музыкой.
Оба примера выше связаны с тем, что игры создавались без учета ПК. В случае с DMC 3 порт и вовсе был собран другими разработчиками, компанией SourceNext, и местами ощущался как странный эмулятор вместо полноценной нативной версии — в игре банально не было способа выйти, кроме как нажать Alt+F4. В случае с Dark Souls ситуация несколько отличается: порт выпущен самой FromSoftware, однако это была ее первая игра для ПК, о чем авторы признавались прямо. Выпуск изначально не планировался вовсе — помогло огромное количество подписей петиции о портировании.
Незнание (или непонимание) особенностей как уже созданной игры, так и архитектуры ПК, очевидно, может привести к существенным трудностям. Плюс не стоит забывать и об особенностях конкретных движков: например, многочисленные проблемы Unreal Engine 4, с которыми знаком любой геймер, в том числе связаны с тем, что движок попросту не оптимизирован под многопоточные процессоры. По словам Мияситы, объекты и виджеты в UE4 привязаны к одному и тому же потоку, что создает проблемы: одновременная подгрузка героев и интерфейса непременно приведет к статтерам, бороться с которыми практически невозможно. Хотя для Hi-Fi Rush команда смогла прописать отдельный скрипт для асинхронных операций, что спасло тайтл от статтеров. Делают так, увы, далеко не все, что видно на примере игр от ЕА — Dead Space Remake или Star Wars Jedi: Survivor.
Ускорение и деградация
Здесь же стоит отметить, что с годами отношение к портированию несколько изменилось, и связано это в том числе с развитием игровой индустрии в целом и платформ в частности. Более ранние поколения консолей отличались уникальной архитектурой, которую было невозможно повторить на ПК, что нередко приводило к созданию разных игр с одинаковыми названиями. Например, Splinter Cell: Double Agent радикально различается в версиях для PS3/Xbox 360 и PS2/Xbox и может «похвастаться» чудовищным портом на ПК, собранным из ассетов для «старших» консолей.
Менее безумный пример — DOOM 3 на оригинальной Xbox. Разработчики из Vicarious Visions перенесли ПК-версию практически полностью, внося в процессе определенные изменения для сохранения производительности. Благодаря последнему некоторые карты были сильно изменены, упрощена геометрия локаций, а некоторые элементы уступают в качестве таковым в версии для ПК. Что и неудивительно: Xbox была куда слабее и по характеристикам едва проходила по нижней границе требований оригинальной игры. Тем удивительнее было осознавать, что авторам удалось добиться стабильного фреймрейта и выдающейся для Xbox картинки.
Со временем подобный подход уступил место более прагматичному, и в большинстве случаев при портировании игры уже не претерпевают заметных изменений. Со времен прошлого поколения консолей практически исчезли отдельные версии тайтлов под конкретные платформы, и чаще всего порты отличаются только деталями вроде изменений качества картинки или добавления специфических функций — Sony в играх на ПК, например, старается добавлять поддержку сверхшироких экранов и технологий вроде DLSS и FSR.
Смерть закона Мура
Еще один пункт, который невозможно игнорировать, — усложнение процессов разработки. С каждым годом создание видеоигр отнимает всё больше денег и времени, что также вносит свои коррективы в работу. По примерным расчетам, современная игра требует вдвое больше средств, чем аналогичный тайтл, созданный около десяти лет назад, из-за поднятой графической планки.
Что интересно, сами девелоперы отмечают: разработка игр должна с самого начала идти с удерживаемым в голове требуемым FPS, в противном случае исправить ситуацию на поздних этапах будет практически невозможно. Если было потрачено несколько лет на красивую игру, выдающую 30 кадров в секунду, добиться от нее удвоения частоты — что-то из разряда фантастики. При этом далеко не всегда можно нормально отследить, что именно является причиной падения FPS. Именно из-за этого графические режимы начали появляться даже на консолях, где нет необходимости заморачиваться с оптимизацией из-за унификации платформы. К слову, решение Microsoft отказаться от одного устройства в текущем поколении (речь о Series X и S) привело к тому, что некоторые девелоперы отказываются работать с консолями компании. Это слишком время- и энергозатратно — оптимизировать тайтлы сразу под несколько платформ.
Пути решения
Можно ли что-то сделать в подобной ситуации? Согласно опросам разработчиков, выход и правда есть, но он, скорее всего, займет годы.
Первое, на что стоит обратить внимание, — игры должны выходить с учетом каждой из платформ уже на этапе разработки. Последующая оптимизация под то, что изначально не заложено, неминуемо приведет к техническим проблемам. Второе — издатели должны держать в уме не сиюминутную прибыль, а качество и давать время на доработку, если таковая необходима. Очевидно, что последнее не в руках девелоперов или геймеров, но игроки могут на это повлиять, не оформляя предзаказы и не покупая игры до того, как они будут оптимизированы для интересующей платформы: ситуации уровня Batman: Arkham Knight, конечно, редки, но даже меньшее не должно быть нормой.
Не стоит забывать, что выпуск на нескольких платформах разом — это неизменный стресс: еще несколько десятилетий назад игры по большей части оставались эксклюзивами конкретных консолей или ПК, а выход сразу на двух платформах стал нормой буквально пару поколений назад. Сейчас же девелоперам приходится работать сразу над тремя-четырьмя (а то и больше, если нужно «захватить» еще и прошлое поколение) версиями игры одновременно, что не может не повлечь за собой трудности. Впрочем, современные движки делают многие процессы проще, и хочется верить, что в будущем оптимизация уже не будет такой невыполнимой задачей. В конце концов, проблемы очевидны всем представителям рынка, и на них уже попросту невозможно закрывать глаза.