Режут по живому: как оптимизируют игры
Чтобы улучшить производительность видеоигр разработчики идут на различные ухищрения: «ухудшают» модели и текстуры, «сшивают» объекты, вырезают готовые механики и буквально удаляют локации, пока вы на них не смотрите. Это — великая и ужасная оптимизация. Разбираемся, как это работает, и почему игры зачастую всё равно выходят в плохом техническом состоянии.
Лень читать лонг? В нашем Telegram-канале можешь полистать карточки про FPS и способы самостоятельной оптимизации игр.
Зачем оптимизировать игры?
Разработчики хотят, чтобы их игры покупали даже пользователи с не самыми мощными ПК или консолями прошлого поколения. Оптимизация — этап разработки, в ходе которого технические специалисты стараются повысить производительность и улучшить игровой процесс без потерь в графической составляющей для большего охвата аудитории.
Основная цель — сделать так, чтобы продвинутая графика и проработанные ассеты не «тормозили» игровой процесс. Скандал с релизным состоянием Cyberpunk 2077 наглядно продемонстрировал, зачем нужна оптимизация и что бывает, когда авторы выпускают хорошую, но «сырую» игру.
В идеале, игра с хорошей оптимизацией должна выдавать одинаковый FPS на большинстве конфигураций ПК и актуальных консолях. Яркий пример — Metal Gear Solid V: The Phantom Pain. Она отлично работала на большинстве ПК, включая слабые сетапы и выдавала стабильные 60 FPS на PS4 и Xbox One. Версии для PS3 и Xbox 360 выглядели не хуже и работали в 30 FPS. Это превосходный результат, учитывая ограничения устаревших приставок в виде 256/512 МБ видеопамяти.
Часто авторы игр в качестве исходной точки для процесса оптимизации используют именно частоту кадров и плавность игрового процесса. Поэтому многие игроки смотрят на оптимизацию именно с точки зрения количества и стабильности FPS. Но это не всё.
Игра вдобавок должна хорошо выглядеть и работать без тормозов и долгих загрузок. Последние могут испортить впечатления не хуже низкого FPS. Яркий пример — состояние Star Wars Jedi: Survivor на релизе.
Визуально красивый боевик подвисал и подгружался не только в сегментах с открытым миром, но и прямо во время постановочных роликов. Эта особенность расстроила и разозлила многих покупателей, а заодно и подпортила старт продаж. Студии Respawn понадобился год, чтобы «починить» игру и выпустить версии для консолей предыдущего поколения — PS4 и Xbox One. Изначально они должны были выйти одновременно с версиями для ПК, PS5 и Xbox S/X.
Есть два стула
Оптимизацию можно разделить на два направления: оптимизацию кода и оптимизацию графики. Первое связано с нагрузкой на процессор и расчëты логики игр. Оптимизацией кода в основном занимаются программисты игрового процесса и различных систем (система передвижения, боевая система, система поведения NPC). Одна ошибка может привести к непоправимым последствиям. Например, «сломать» ИИ противников, как это было в шутере Aliens: Colonial Marines.
Второе направление — не менее трудоёмкий и комплексный процесс. Картинку оптимизируют технические художники и программисты, специализация которых — игровая графика.
Три пути оптимизации графики
Первый путь. Разработчики задумываются об оптимизации на самых ранних этапах работы над проектом. Здесь важно понимать, из чего будет состоять игра. Например, определить список целевых платформ и изучить их архитектуру, рассчитать количество ассетов и число полигонов в них, посчитать количество механик, их сложность и сочетаемость, составить список используемых технологий и инструментов.
Такая дотошная подготовка помогает авторам сэкономить ресурсы, деньги, время и улучшить техническое состояние на релизе. Да и код менять на ранних этапах проще — со временем он перестанет быть гибким и начнёт «ломаться» от внесённых изменений. Но есть и другие способы.
Второй путь. Некоторые разработчики переходят к оптимизации уже после завершения работы над технической частью. Когда механики и графика готовы, но в исходном, максимально качественном виде без оглядки на аппаратные ограничения. Так игры никто не выпускает, поэтому авторы переходят к этапу оптимизации.
Третий путь. Он же самый «ленивый» — оптимизировать игру после плей-тестов или вообще после релиза. Мы уже приводили пример Cyberpunk 2077. У студии CD Projekt RED ушло три года на пострелизную поддержку и оптимизацию. С другой стороны, чем позже начнётся работа над оптимизацией — тем меньше ресурсов будет потрачено впустую.
Разработка игр — итеративный процесс, во время которого вносят множество правок и удаляют массу контента. Художник может потратить две недели на оптимизацию фотореалистичной модели персонажа, но через пару месяцев её просто уберут из билда из-за смены сеттинга с условного реализма на научную фантастику.
Нужна ампутация
В процессе разработки нельзя выбрать один конкретный подход. Все три существуют параллельно и не взаимоисключают друг друга. Ведущие специалисты принимают решения по отдельным механикам и объектам. Так модели часто оптимизируют заранее (снижают количество полигонов без ущерба для внешнего вида), а механики оставляют до плей-тестов. Чтобы игроки смотрели на качественный арт (с ним впечатления лучше) и делились мнениями по поводу игрового процесса.
Дальше авторы вносят (или не вносят) изменения на основе комментариев участников плей-тестов. Упрощают или усложняют дизайн и механики. Игра в фантазиях разработчиков или в дизайн-документе может работать идеально, но при переходе в «реальность» обязательно что-то ломается или не работает как задумано.
Яркая иллюстрация — детектив с открытым миром Deadly Premonition. На бумаге игру планировали как боевик с продвинутой симуляцией жизни NPC. Изначально авторы хотели ввести механики сна, голода и даже стирки одежды. Чтобы они вступали в связь с установленным режимом дня NPC и их реакциями на внешний вид и состояние главного героя. Планировалось, что персонажи смогут советовать протагонисту постирать вещи или вовсе отказаться с ним разговаривать из-за неопрятности.
Разработчики не смогли довести настолько сложную систему до ума. Чтобы не отменять проект, они вырезали сложную симуляцию и её влияние на основной игровой процесс, но оставили её «уши» в финальной версии. Костюм героя пачкается и его нужно стирать, но это никак не влияет ни на детективную составляющую, ни на реакции NPC. Сон тоже оставили, но герой ложится спать только по сюжету.
Еда тоже в основном «привязана» к сюжету. Единственная вариация — её можно купить, положить в инвентарь и использовать во время боя, чтобы восстановить здоровье. Но без каких-либо «выживательских» усложнений.
Сейчас как отпрофилирую…
Оптимизировать работу кода, производительности и графики помогают программы-профайлеры. Они отображают показатели работы игры и ищут элементы, снижающие производительность в рамках выбранной сцены.
Некоторые элементы могут потреблять чересчур много оперативной памяти или нагружать процессор. Когда профилировщики их находят — собирают данные, делают скриншоты и выдают программистам логи производительности. Часто этот процесс настолько автоматизирован, что разработчикам даже не обязательно несколько раз воспроизводить проблемную ситуацию. В некоторые профайлеры встроены системы тэгов, с помощью которых можно отследить нагрузку от отдельно взятых объектов.
Профайлерами пользуются все разработчики игр, особенно активно в ААА-сегменте. Яркий пример — компания Ubisoft. Игры вроде Rainbow Six: Siege или новых Assassin`s Creed содержат в себе большое количество ошибок. Авторы используют проприетарные профайлеры для их оптимизации.
Профайлеры не только встроены в современные движки вроде Unreal Engine и Unity, но также доступны в качестве отдельных утилит. Самые популярные — RenderDoc, Radeon GPU Profiler и NVIDIA Nsight.
Смертельная битва: оптимизация ассетов
Пока программисты отлавливают все ошибки и несовершенства кода (поймать их всех просто невозможно) — художники сражаются со своими же ассетами. Среди противников — текстуры, анимации, 3D-модели персонажей и других игровых объектов. Чем меньше количество ассетов и чем ниже итоговый вес — тем быстрее «железо» будет их подгружать на уровень и обрабатывать.
До интеграции в движок художники рисуют текстуры в высоких разрешениях до 8К, а 3D-скульпторы создают модели с десятками или сотнями миллионов полигонов. Чтобы эти объекты не «объедали» системные ресурсы — их упрощают. Но так, чтобы никто не заметил. Текстурам снижают разрешение, а моделям уменьшают количество полигонов.
Яркий пример — работа моделлеров Infinity Ward над мрачным перезапуском Call of Duty: Modern Warfare (2019). Заданный уровень фотореализма требовал высокой детализации объектов окружения. Авторы сканировали разбитые автомобили, обмундирование вооружённых сил, актёров и… грязные матрасы с помощью технологии фотограмметрии. Конструкция с 300 камерами и вспышками создавала высокополигональные модели с текстурами и переносила полученные реплики в графический редактор — один в один как в жизни.
Сложность в том, что если такую модель добавить сразу в движок — на её расчёт уйдёт непозволительно много ресурсов системы. Чтобы этого не случилось художники вручную «ухудшали» модели — с помощью процесса ретопологии снижали количество полигонов с 50 миллионов до приемлемых 20–50 тысяч. Для сравнения — фотореалистичная модель Джоэла из The Last Of Us: Remastered для PS4 состояла из 40 тысяч полигонов, а Элли — из 31 тысячи полигонов.
Есть мнение, что проще и быстрее было бы сделать всё с нуля, не прибегая к сканированию. Моделлеры Infinity Ward не согласны. Фотограмметрия сэкономила им много времени — на «ручное» производство подобной модели уходило до 6 недель, а комбинация из фотограмметрии и ретопологии занимала всего неделю.
Сейчас героям видеоигр недостаточно 50 тысяч полигонов. Сюжетные персонажи в недавней Indiana Jones and the Great Circle состоят из 200–400 тысяч полигонов без учёта волос. Последние выполнены как часть моделей, а не нарисованы поверх. С волосами показатель полигонов в модели злодея Виктора Ганца вырастает до 1 400 000.
Правда, модели с таким количеством полигонов не используют в игровом процессе. Их показывают в кинематографических роликах с крупными планами лиц. Для сражений и расхищения гробниц используют «облегчённые» версии на 400–500 тыс. полигонов с упрощёнными причёсками.
Стилизация
Даже фотореалистичные игры проходят через процесс намеренной стилизации. Некоторые детали или элементы могут быть настолько упрощены, что покажутся мультяшными на контрасте с более проработанными. В качестве примера снова можно привести Call of Duty: Black Ops 6 или Clair Obscur: Expedition 33. В обеих играх текстуры высокого разрешения и высокополигональные модели уживаются с менее детализированными элементами. И дело даже не в «замыленных» камнях в отдалённых уголках уровней.
На изображении ниже можно заметить разницу в полигонах и проработке текстур в рамках одной модели. Лицо, волосы, куртка и эффекты «собраны» так, чтобы отличия не бросалась в глаза и работали на необычный художественный стиль.
Другой яркий пример — BioShock Infinite. Художники и дизайнеры шутера создали консистентный визуальный стиль, в рамках которого могли прорабатывать лишь часть мелких деталей. Яркие цвета, эффекты, высокий темп повествования с фокусом на постоянном действии и архитектура воздушного города Колумбия поражали воображение.
Визуальный стиль игры называли «волшебным» и «монументальным», часто приводя триквел BioShock в пример во время разговора об играх как искусстве. Мало кому в глаза бросались отдельные низкополигональные модели стационарного телефона, пишущей машинки, кустов или птиц. А если и бросались, то не во время первого прохождения.
Всё под контролем
Чтобы выйти победителями из смертельной битвы с полчищами ассетов, технические художники пользуются библиотеками контента (content library) или ассет-браузерами (asset browser). Это утилиты с интерфейсом в духе уже упомянутых профайлеров или интернет-браузеров. Особенно актуальны подобные библиотеки для «больших» игр с десятками тысяч элементов, вроде The Witcher 3: Wild Hunt, Assassin's Creed: Origins и Monster Hunter: World.
Добавляя элементы в игру, художники также добавляют их в таблицу ассет-браузера. Там сохраняется название, уровень детализации и количество полигонов. Если количество полигонов изменилось — нужно обязательно обновить информацию об объекте на актуальную.
Во время разработки The Witcher 3: Wild Hunt таблица помогала художникам быстро искать объекты для последующей оптимизации. Например, задать фильтр на модели, которые превышали лимит в две тысячи полигонов.
Таким образом польские разработчики нашли в ассетах «мыльную» кадку с куриными тушками, которая состояла из полутора миллионов полигонов. Она притаилась среди сотен объектов и медленно, но верно снижала производительность.
Видишь город? Вот и я не вижу. А он есть
Если все ассеты в игре прошли долгий и болезненный процесс оптимизации — радоваться рано. Отображение тысяч объектов на одном экране с правильным светом и тенями — процесс, который требует высоких мощностей. Чтобы разгрузить видеопамять разработчики идут на ухищрения ещё со времён эпохи PS1. Например, авторы оригинальной Resident Evil совмещали 3D-модели персонажей и монстров с заранее отрендерённым задникам. То есть герои ходили на фоне ловко расставленных 2D-картинок.
Авторы самой первой Silent Hill не стали использовать плоские картинки и сделали ставку на рендеринг 3D-окружения в реальном времени. Правда, такой подход «съел» FPS и играть было просто невозможно. Чтобы сохранить производительность, разработчики добавили в игру легендарный туман.
Он скрывал большую часть полигонов, чтобы приставка рендерила их постепенно, по мерзе движения игрока вперёд. «Дешёвое» решение в итоге стало одной из фирменных черт серии. Его использует даже недавняя Silent Hill f и, внезапно, бандитские боевики вроде Mafia III и GTA IV.
Метод, похожий на туман из Silent Hill — база рендеринга даже в современных играх. Его философия заключается в том, чтобы показывать только видимые игроку объекты, выгружая из памяти всё остальное. Так работают Grand Theft Auto V, Marvel’s Spider-Man и даже Devil May Cry 5. Всё, что находится за спиной героя — беспощадно стирается и не существует до тех пор, пока он не обернётся.
Иногда объекты частично или полностью исчезают из кадра и перед глазами игрока. Например, дырки от пуль на стенах, гильзы, кровь и тела противников в шутерах. Так авторы оригинальных Quake, Serious Sam и Painkiller экономили ресурсы системы и… делали игровой процесс удобнее. Если бы противники оставались лежать на аренах — игроку как минимум стало бы сложнее двигаться. Модель главного героя постоянно бы застревала в моделях врагов.
Уровни детализации и усечение геометрии
Чтобы разгрузить видеокарту ещё сильнее, разработчики снижают уровень детализации (level of detail или LOD). Объекты в непосредственной близости от игрока остаются нетронутыми, а вот объекты вдали — упрощаются до «режима картошки». Такими объектами могут стать скалы, деревья, камни и даже NPC, если речь идёт о больших открытых мирах вроде Assassin`s Creed: Origins.
Объекты, которые находятся вдали, подменяют на упрощённые модели с текстурами, освещением и тенями низкого качества. Обычно их делят на четыре группы:
- LOD-0 — высокополигональная модель для игрового процесса;
- LOD-1 и LOD-2 — меньше полигонов для подгрузки на недалёких расстояниях;
- LOD-3 — «картофельная» модель для подгрузки вдалеке;
- LOD-4 — простая 2D-картинка.
Количество полигонов в разных группах LOD может отличаться в зависимости от игры, её движка, целевых платформ и выбранного визуального стиля. Художники создают разные вариации моделей, следуя чёткому техзаданию от технических специалистов. Делать много LOD-ов на все случаи жизни — не выход. Они тоже занимают место в оперативной памяти и раздувают вес игры.
Количество статичных и анимированных объектов, а также их вариаций может переваливать за десятки тысяч.
За границей поля зрения игрока отрисовывать их «в полном составе» нет смысла — лучше усечь геометрию. Метод Occlusion Culling снижает количество полигонов в зависимости от расстояния до игрока постепенно сводя их к минимуму и разгружая «железо».
Объединение ассетов
Авторы Ghost of Tsushima, The Legend of Zelda: Breath of the Wild и других игр с открытыми мирами упрощают и небольшие объекты, которые игрок видит перед собой. Например, траву. В сценах с прогулками по зелёным полям и лугам её нужно очень много. «Честно» отображать столько зелени на экране позволяет технология GPU Instancing. Она рендерит одну сетку полигонов сразу для целой группы идентичных объектов.
Сперва разработчики создают высокополигональную траву с текстурами, прорабатывая каждую травинку. Затем собирают их формации вроде пучков или кустов, а после — превращают в плоские 2D-изображения (спрайты).
GPU Instancing собирает схожие спрайты в одну сетку, чтобы заросли, состоящие из 20 или 30 элементов использовали меньше полигонов. В таком виде движок воспринимает группы объектов как один объект.
Батчинг и «сшивание» объектов
Батчинг — это процесс объединения разных объектов для экономии ресурсов системы. Во время отрисовки движок и система принимают «сшитые» объекты за один.
Батчинг бывает статическим и динамическим. В первом случае авторы задают параметры «сшивания» заранее. А во втором — движок сам объединяет объекты в зависимости от их геометрии, материалов и текстур. Статический батчинг используют для объектов, которые не будут меняться в процессе игры («железные» стены и препятствия на уровнях Counter-Strike: Global Offensive), а динамический — для объектов, которые будут «разделяться».
Яркий пример динамического батчинга — разрушаемые здания в Red Faction: Guerrilla и разрушаемые стены в Control. Объекты (стена, здание) изначально определяются как один предмет, но после разрушения в реальном времени превращаются в десятки или сотни фрагментов поменьше. Таким образом разработчики экономят драгоценные полигоны моделей окружения. Например, движок Unity за одно автоматическое «сшивание» может сэкономить до 64 000 полигонов.
По этой же причине текстуры в играх отрисовывают не отдельно, а в формате текстурных атласов. Лицо, уши и глаза создаваемого персонажа находятся на одном 2D-изображении.
Так движок воспринимает их как одну сущность. Руки, ноги и одежду обычно рисуют отдельно. Хотя есть примеры, когда все текстуры выбранного персонажа изображены на одном атласе. Яркий пример — противники из Quake и Quake 2.
Загрузочные экраны и их альтернатива
С помощью экранов загрузки разработчики дробят игру на чёткие сегменты (продуманная структура), экономят ресурсы системы (не нужно загружать сразу ВСЁ) и дают возможность передохнуть после прохождения особо сложных уровней (таблицы лидеров, ролики, мини-игры).
В 2010-х игры стали двигаться в сторону кинематографичности и избавляться от аркадных условностей. В том числе — от экранов загрузки. Миссии в Max Payne 3 считывались с диска Xbox 360 во время длинных кинематографических роликов-пререндеров. А в Tomb Raider (2013), The Last of Us и Uncharted 3: Drake`s Deception новые части уровней (часто со зрелищными панорамами) подгружались, пока герои проходили через «бутылочные горлышки».
Это узкие проходы и пространства, которые не загружают систему. Управление остаётся у игрока, но в упрощенном виде. Часто двигаться можно только вперёд, пока герой не достигнет конца ущелья или прохода. После авторы показывают подгруженный контент — красивый вид, внезапные QTE или плавный переход к ролику на движке.
В последние 5 лет прослеживается тренд на «неразрывный опыт» со стилизацией под съёмку «одним дублем». Игры вроде Callisto Protocol, The Last of Us: Part II и God of War: Ragnarok не только подгружают основные ресурсы во время срежиссированных роликов, но и стараются избавиться от «монтажных склеек» в пользу повышения эффекта присутствия.
«Классических» экранов загрузки в этих играх нет, но есть много «бутылочных горлышек». Настолько много, что в сети можно встретить комментарии в духе: «как же надоели эти симуляторы котов в узких пространствах». Ворчание геймеров можно понять, так как подобные «протискивания» ломают ритм игры и ощущаются довольно скучными.
Почему так сложно оптимизировать всё и сразу?
Несмотря на разные подходы к оптимизации, часто игрокам кажется, что авторы пренебрегают этим процессом. На самом же деле оптимизации уделяют много внимания — на неё уходят деньги и время специалистов.
ПК и консоли отличаются друг от друга в плане архитектуры. При оптимизации под ПК важно учитывать специфику разнообразного железа, на котором будут запускать игру, и его технические характеристики. Под каждую линейку видеокарт и процессоров нужно делать отдельные конфигурации. Иногда даже без возможности протестировать их «в поле». Производители могут банально не предоставить образцы своих будущих видеокарт и процессоров.
К тому же не все игроки готовы часами крутить ползунки в настройках графики, чтобы игра приемлемо работала на железе, под которое сделали не самую лучшую оптимизацию. Разработчикам стоит точнее определять минимальные системные требования. Благо, что цифровая дистрибуция позволяет возвращать купленные игры обратно, если они не запускаются.
Чем больше конфигураций и моделей «железа» — тем больше ползунков для настроек придётся добавить в меню. Некоторые из них вообще могут друг с другом конфликтовать. Поэтому основную часть времени по оптимизации для ПК занимает не конфигурирование само по себе, а проверка и тестирование.
При оптимизации под консоли стоит думать в первую очередь о максимальной производительности в рамках аппаратных ограничений. Поэтому часто основной версией игры становится именно консольная. В неё легче вносить изменения, но придётся соблюдать требования платформодержателей. Например, Microsoft требует тестировать игру до «приемлемых показателей», добавить «удобный интерфейс без пустых вкладок» и стабильный мультиплеер (если он предусмотрен).
В обоих случаях процессы различаются и иногда могут занять столько же времени, сколько занимает основное производство. Поэтому крупные издатели нанимают для портирования на другие платформы отдельные студии вроде Saber Interactive. Именно она адаптировала The Witcher 3: Wild Hunt для Nintendo Switch и разработала ремастер Halo: Combat Evolved Anniversary.
Самым главным противником оптимизации игр сами разработчики называют поджимающие сроки и давление со стороны руководителей студий. Сейчас создание больших игр стоит дорого и занимает много времени (в среднем — от четырёх лет). Выход в назначенный срок — критически важен, учитывая большое количество предзаказов особенно ожидаемых игр. Поспешный релиз Cyberpunk 2077 — яркий пример. Задолго до релиза у игры было около 8 миллионов предзаказов.
Для менеджеров и директоров оптимизация — процесс второстепенный. Главное, что игра есть, её можно запустить и даже пройти до конца конца. Три дополнительных года на доработку в их понимании — раздувание бюджета (в том числе рекламного) и риск снижения спроса на продукт. Аудитория со временем остывает, с этим ничего не поделать.
Навредить оптимизации могут и сложности с коммуникацией между командой, руководством и менеджерами. Пример — релизное состояние скандального MMO-боевика The Day Before.
Разработчики узнали о том, что релиз игры состоится через месяц из трейлера с игровой конференции. До просмотра ролика у них была информация о релизе через год.
Технический долг
Иногда корни плохой оптимизации могут уходить в устаревшую архитектуру движка и предыдущие проекты. Технический долг — это совокупность правильных решений, принимаемых авторами в текущий момент, которые негативно скажутся на работе в будущем. Например, увеличат сроки разработки следующей игры или повлияют на качество кода.
Чтобы ускорить производство, студии создают ААА-игры не с нуля, а на основе уже вышедших. Разработка каждой новой части Assassin's Creed начинается с механик и ассетов предыдущих игр. Фундаментом Shadows была Valhalla, а в основе Valhalla лежала Odyssey.
То же самое и с серией стратегий Total War — разработчики собирают новые игры на основе уже вышедших. В процессе они перерабатывают механики и добавляют новые, меняют модели, текстуры и локации, пишут новые скрипты.
Недостаток подобного подхода в том, что большая часть кода и ассетов старых игр остаётся в новой игре. Вместе с багами, проблемной оптимизацией и другими слабыми местами. Даже запутанная иерархия папок с ресурсами и ассетами, а также дубли и скрытые файлы, которые не используются в новой игре, остаются внутри и негативно влияют на производительность.
Чтобы разобраться с техническим долгом и лишним контентом, разработчики создают специальные подразделения. Их задача — изучать архитектуру движка, исправлять «старые» ошибки и убирать ненужный контент. Сложность в том, что это нужно делать осторожно, чтобы проект не сломался. В процессе разработки «специальные» подразделения часто расформировывают, чтобы они помогали доделать основную игру. Особенно часто такое происходит незадолго до релиза.
Оправданная жестокость
Наглядно увидеть процесс оптимизации можно на примере версий ААА-игр для Nintendo Switch. Авторы портов сотворили магию с The Witcher 3: Wild Hunt, Hogwarts Legacy и Mortal Kombat 1 (или надругались над ними). В сравнении со «старшими» версиями все три порта выглядят отвратительно, но это не главное.
У гибридной консоли Nintendo нет отдельной видеопамяти. GPU берёт нужное ему количество памяти из ОЗУ, а её у Switch всего 4 ГБ. Важно понимать, что настолько большие игры действительно могут работать на слабом железе благодаря совокупности сотен и тысяч оптимизационных решений. Есть мнение, что если бы у авторов этих портов была задача адаптировать все три игры для PS3 и Xbox 360 — они бы справились и с ней.
Первое ухищрение — блокировка частоты кадров на 30 FPS (с просадками до 20–25 FPS в открытых локациях) и использование динамического разрешения. В The Witcher 3: Wild Hunt и Hogwarts Legacy оно снижается с «карманных» 720p и 540p до 480p в особо «затратных» местах вроде детализированных панорам и городских площадей. Интерфейс в этот момент отображается в высоком разрешении.
Также авторы всех трёх портов упростили освещение и эффекты, «ухудшили» модели и текстуры настолько, что местами они напоминают LOD-ы из Assassin`s Creed: Origins или второстепенных персонажей из игр с открытым миром с PS2.
Авторам адаптации Hogwarts Legacy пришлось вмешаться и в структуру игры. Открытый мир из старших версий «не помещался» в Nintendo Switch, поэтому его пришлось «разрезать» на части и разместить между ними загрузки, которые занимают 30–50 секунд в зависимости от детализации локации. На портативной консоли Хогсмид организован как цепочка больших локаций, связанных между собой.
Портируя The Witcher 3: Wild Hunt на Switch студия Saber Interactive не хотела идти на подобные компромиссы — игра должна была структурно остаться такой же, как на PS4, Xbox One и ПК. К тому же авторы не стали упрощать анимации и модели в диалогах и роликах на движке. Из-за этого пришлось отказаться от сглаживания и снизить дальность прорисовки примерно в пять раз, а также урезать разрешение. Некоторые игроки посчитали настолько «мыльную» картинку «абсолютно неприемлемой».
Масштабы не мешают портам The Witcher 3: Wild Hunt и Hogwarts Legacy выглядеть лучше адаптированной версии Mortal Kombat 1. При стоимости 70 долларов картинка в файтинге настолько «оптимизирована», что руководителю студии NetherRealm пришлось извиняться за качество. Позже графику Switch-версии улучшили, но было уже поздно — порт для Switch стал мемом.
Основная проблема процесса оптимизации Mortal Kombat 1 — перенос модифицированной версии движка Unreal Engine 4 (KoreTech) на «железо», которое с трудом работает с четвёртой и пятой ревизиями Unreal Engine. У движка Epic немало проблем с запуском и производительностью даже на мощных ПК и актуальных консолях.
Переживать последствия оптимизации куда комфортнее с мощным ПК, который может запускать игры на высоких настройках без долгого путешествия по вкладкам с регулировкой графики. Заглядывай в наш апгрейд-центр — поможем обновить компьютер, подберём правильные комплектующие, всё протестируем, настроим и предоставим официальную гарантию.
А если захочется создать настоящего игрового «монстра» с дизайном на свой вкус — собери свой вариант компьютера в удобном конфигураторе. Посмотрим, как долго плохая оптимизация сможет противостоять твоему новому сетапу. По промо-коду POTATO сделаем скидку 5% на всё.