Самая красивая игра на Unreal Engine 4 может стать лучшей игрой по «Звездным войнам», но прямо сейчас банально не доделана
В отличие от первой части – Star Wars Jedi: Fallen Order, вышедшей в 2019 году, – Star Wars Jedi: Survivor разрабатывалась с учетом возможностей новых консолей. Каждая локация, будь то джунгли и шахты Кобо, подворотни Корусанта или древние храмы джедаев, выглядят на недостижимом ранее уровне. Каждый камень, растение, витрины, морские звезды на шлеме аквалангиста, потертости на боевых дроидах и ангары на заднем плане создают цельную и убедительную картину фантастического мира.
Уровень детализации и плотности уникальных моделей Jedi: Survivor запредельный — и при этом задним планам уделено не меньше внимания, чем объектам вблизи. Например, Корусант в главном меню и в начальной заставке — это не анимированный скриншот, а гигантский город, который действительно смоделирован и анимирован до горизонта, хотя игрок не наблюдает эту панораму с одной фиксированной точки.
В каждом коридоре с потолка свисают провода, в гардеробе висят костюмы — и все это освещено встроенными лампами, предметы отбрасывают реалистичные тени. И все это — объекты и источники света — художественно расставлено стараниями дизайнеров.
Оригинальная игра по сравнению с Survivor выглядит гостем с позапрошлого поколения консолей. Даже при прямом сравнении интерьеров корабля Stinger Mantis, на котором путешествуют герои, ощущается разница. Появились потертости, грязь, небрежно оставленные предметы — все это воспроизводит эстетику «обжитой вселенной», которая стала одним из важных факторов популярности «Звездных Войн».
Как и во всех современных играх, в Survivor важную роль играют физически корректные материалы. Хром, потертая краска и ржавчина на боевых роботах отражают свет по-разному, делая привычных дроидов более реальными, чем они когда-либо были в играх.
Разработчики добавили в игру наборы материалов для кастомизации светового меча, бластера и дроида-компаньона BD-1. Сталь совершенно не похожа на мандалорский бескар, а вместе они не имеют ничего общего с матовым пластиком.
И все же Star Wars Jedi: Survivor не использует новейшие технологии. Движок не поддерживает алгоритмы Lumen, Nanite, виртуализированные карты теней или трассировку путей. Но при помощи обычной трассировки лучей расставлены графические акценты — например, блики и отражения на глянцевых поверхностях.
Судя по нашим наблюдениям, трассировка лучей также добавляет затенение фонового освещения и отражения в избранных местах. На ПК функцию можно отключить — и картинка не станет сильно хуже. Куда активнее Survivor использует предварительно запеченное в редакторе освещение, что позволяет добиться красивой картинки без лишних затрат ресурсов. Освободившуюся мощность можно пустить на детализацию окружения и постэффекты.
Вместе с простыми RT-отражениями в игре применяются SSR — screen space reflections, «отражения в экранном пространстве», которые отражают только то, что уже есть на экране, игнорируя объекты за пределами кадра. Трассировка как раз восполняет эти пробелы, и вместе две технологии создают довольно убедительную картину.
Но если выключить RT, то SSR проявит свои недостатки — в кадре появятся полосы, лишенные отражений вообще. Так как Survivor создавалась для новых консолей, разработчики не предусмотрели запасной вариант вроде устаревшего метода создания дополнительных карт отражений. Возможно, это добавят в патчах, но скорее всего Respawn просто оптимизирует трассировку.
После выхода Jedi: Fallen Order разработчиков обвиняли в использовании стандартных эффектов Unreal Engine 4 вместо создания уникальных ассетов специально для игры. В этот раз Respawn добавила эффект глубины резкости от анаморфотных объективов, которыми снимали почти все «Звездные Войны». Такие линзы известны горизонтальными бликами и тем, что превращают яркие участки на фоне — в зоне «боке», вне фокуса — не в кружочки, а в овалы. Деталь исключительно для ценителей, но похвально, что авторы настолько заморочились.
Помимо очевидных спецэффектов вроде выстрелов, магии и искр, Survivor использует динамические частицы, которые взаимодействуют с миром игры. Например, один из заброшенных храмов джедаев защищает синяя «пыль», которую можно разгонять сиреневым лучом света.
А если упасть в эту «пыль», то она налипнет на героя и за пару секунд убьет. Это не DICE, которая использует генератор эффектов для создания стай птиц и толп людей, но тоже неплохое применение эффекта в игровом процессе — в стиле God of War.
При этом в игре встречаются зоны с сильный ветром. Ветер влияет на флаги и окружение, даже на прически, но на одежду Кэла — нет. Почему разработчики не добавили симуляцию ткани — непонятно. Hitman 3 с легкостью делает это с десятками NPC, движок Unreal Engine 4 поддерживает такие эффекты.
Также в игре есть эффект песчаной бури, но в пустынных локациях при этом в воздухе очень не хватает пыли или песка, которые сделали бы окружение более достоверным. Возможно, дополнительные анимации и частицы добавят с патчами.
В новой Star Wars Jedi есть свет на основе вокселей, в которых хранится информация об объеме атмосферных эффектов. Во многих играх этот эффект часто используется в довольно низком разрешении и хорошо смотрится только издалека.
Survivor использует воксельный свет сдержанно, и он не так хорош, как в ремейке Dead Space, но все же это один из самых красивых эффектов.
Рендеринг главных героев вышел на совершенно новый уровень. Все заставки работают в реальном времени, активно используя все необходимые шейдеры и эффекты — и персонажи всегда выглядит отлично. Некоторые скриншоты очень похожи на фотографии актеров со съемочной площадки.
В этом помогает подповерхностное рассеивание, при котором свет не сразу отражается от кожи, как от твердого предмета, а проникает внутрь и рассеивается, иногда даже подсвечивая кровеносные сосуды. И только потом отражается от нижних слоев обратно.
Мы знаем, как выглядит лицо человека, и если рассеивания нет, то подсознательно воспринимаем его как искусственное — будто из пластика. К сожалению, этот эффект часто вырезают ради оптимизации или включают только в заставках. Но в Jedi: Survivor он работает всегда, что заметно на скриншотах.
Эффекты на персонажах — вроде стекающей воды — создают зеркальные (specular) отражения контрового освещения сзади и становятся почти полностью прозрачными от прямого заполняющего света. Выглядит фотореалистично — и при этом работает на движке в реальном времени. А если приглядеться, можно увидеть отражение светового меча в глазах.
А вот что происходит в серии Star Wars Jedi с анимацией – непонятно. С одной стороны, в заставках акробатика выглядит прекрасно, хотя и уступает Red Dead Redemption 2 и The Last of Us: Part II. Сражения и бега стали гораздо лучше, чем в первой части, а переходы между ними плавнее. Вместе с этим и управление в сиквеле ощутимо отзывчивее.
С другой, многие анимации главного героя все еще неуклюжие. Непонятно, это творческая задумка или что-то пошло не так с интерпретацией захвата актерской игры. Но Кэл хотя бы перестал держать меч за самый край рукояти подобно бейсбольной бите, как было в первой части.
Для любителей световых мечей есть хорошая и плохая новости. Хорошая: теперь можно распиливать не только монстров, как в Fallen Order, но и отрезать руки и ноги имперским штурмовикам. Также можно рубить кусты и небольшие деревья, чтобы собирать семена для своего сада. Да, в игре есть и такой.
Плохая же новость в том, что световой меч взаимодействует с окружением только в момент удара. В остальное время он проходит сквозь объекты без каких-либо эффектов. Кэл упал на пол, а меч по рукоять вошел в камень — ничего не происходит. Кэл бежит по цветущей поляне — лезвие проходит сквозь траву без последствий.
В 2019 году Respawn объясняла это тем, что PS4 и Xbox One не потянут соответствующую опасности меча интерактивность. На дворе 2023 год, игру делали с упором на Xbox Series и PlayStation 5, а в Star Wars Jedi Knight II: Jedi Outcast еще в 2002-м меч разбивал стекла, испарял капли дождя и оставлял на стенах кипящую борозду. На оригинальном Xbox с Intel Pentium 3, 64 Мб оперативки и NVIDIA GeForce 3 — 21 год назад.
Зато ощутимо улучшилось звуковое сопровождение. Электрический гул светового меча, эффект от выстрела из бластера, ревущие космические корабли и монстры звучат так хорошо, как не звучали в играх со времен Star Wars: Battlefront 2015 года.
Неизвестно, помогали ли инженерам Respawn коллеги из DICE и Skywalker Sound, но Jedi: Survivor звучит одинаково круто и на домашнем кинотеатре с Dolby Atmos, и в наушниках. Виртуализация звука на высоте — в бою можно ориентироваться по звуку и блокировать удары и выстрелы до того, как они появятся на экране.
Худший ПК-порт в истории?
Сразу после выхода игры в интернете появилось мнение, что ПК-версия Star Wars Jedi: Survivor — самый плохой ПК-порт в истории. Но это не так.
Во-первых, оригинальная Resident Evil 4 на компьютерах была урезанной версией игры с PS2, которая была таким же урезанным портом с GameCube. Без освещения, объемного тумана, постэффектов — в ней даже не было прицеливания мышью, и люди без геймпада пользовались цифровым блоком клавиатуры.
Во-вторых, в ПК-версии Star Wars: The Force Unleashed не работал объемный звук — игра работала в устаревшем стерео. Патчи, исправляющие проблему, так и не вышли. Также сохранилась блокировка на 30 кадрах в секунду и поддержка максимального разрешения не выше 1920x1080.
Star Wars Jedi: Survivor на этом фоне трудно назвать худшим портом. Игра работает, операционную систему не удаляет, а все имеющиеся проблемы можно решить при помощи патчей. Но это не отменяет того факта, что прямо сейчас у экшена действительно много проблем. И большая часть их показывает, почему разработчики новых игр спешно переводят свои проекты на Unreal Engine 5.
Первая проблема — статтеры, фризы и прочие разновидности тормозов. В Survivor они происходят как из-за компиляции шейдеров, так и во время подгрузки новых локаций при перемещении. Разработчики упорно продолжают использовать динамическую компиляцию шейдеров. Это процесс конвертации кода графической микропрограммы (шейдера), который написал человек, в код машинный, который будет исполнять видеокарта.
Некоторые игры заставляют ждать час и более в главном меню, пока игра скомпилирует все шейдеры под конкретную связку процессора и видеокарты. Это долго, зато надежно. Но большинство игр делают это в процессе — и как только на экране появляется что-то новое, тут же компилируется соответствующий шейдер. И каждый раз, когда что-то впервые появляется на экране, игра будет подвисать. На консолях это не происходит, потому что разработчики знают, какая внутри видеокарта, и в игру сразу загружены готовые шейдеры.
Jedi: Survivor на каждом запуске вроде бы компилирует шейдеры, но на практике замедления все равно случаются даже на самом мощном железе. Игре остро не хватает функции принудительной предварительной компиляции всех шейдеров в главном меню.
В свою очередь статтеры, возникающие из-за подгрузки больших кусков локации при перемещении никакой компиляцией не решаются и преследуют на протяжении всей игры. За это ругали еще Fallen Order в 2019 году. Но эта проблема есть и на консолях — она встречается в недавних Hogwarts Legacy и ремейках Resident Evil 4 и Dead Space.
В то же время, вышедшие гораздо раньше Fortnite и Marvel’s Spider-Man успешно подгружают открытый мир небольшими частями и такими же кусками выгружают их из памяти. При том, что создавались они под старые консоли без SSD. Jedi: Survivor по непонятной причине загружает новые ассеты большими пакетами, из-за чего пропускная способность железа становится «бутылочным горлышком» для такого потока данных.
Как и недавний ремейк The Last of Us: Part I, новая игра EA, судя по всему, использует менеджмент данных с PS5 — всегда резервирует 80% всей доступной видеопамяти и оставляет 20% операционной системе. На GPU с 16 Гб Survivor занимает 13,8 Гб, оставляя системе 2,2 Гб.
А на видеокарте с 24 Гб она оставляет ОС примерно 4 Гб. Запас приличный, учитывая, что Windows 10 и 11 используют не больше 800 Мб. Неизвестно, сколько видеопамяти реально требует игра, но тесты показали, что 16 Гб GDDR6 ей достаточно даже для разрешения 4К.
Куда сильнее, чем в видеопамять, Jedi: Survivor упирается в скорость процессора — в два потока, которые почти всегда нагружены на 70% и больше. Игра может использовать свыше 20 потоков и любит большой объем кэш-памяти — лучше всего она работает на Intel Core 13-го поколения и AMD Ryzen 7800X3D.
Но на момент написания статьи ни один процессор не обеспечивает Survivor стабильные 60 кадров в секунду без просадок. Со вторым патчем эту проблему исправили лишь отчасти, улучшив стабильность на топовых системах.
Меню графических настроек помогает в основном уменьшить нагрузку на видеокарту, но сделано плохо. Не объясняет функцию настройки, не показывает разницу между уровнями качества и влияние на производительность, хотя явно есть свободное место под эту информацию. Встроенного бенчмарка, чтобы быстро оценить разницу, тоже нет.
Например, настройка Ray Tracing — один переключатель без каких-либо подсказок, хотя многие современные игры позволяют раздельно контролировать разные аспекты трассировки. Судя по всему, здесь опция включает и отключает комбинацию непрямого света, затенения фонового освещения и отражений.
Главный герой Star Wars Jedi: Survivor при включенной трассировке лучей страдает от классического бага Unreal Engine 4 — светлые волосы и брови практически светятся под непрямым освещением.
На тестовом компьютере с Intel Core i7-13700K и NVIDIA GeForce RTX 4080 игра постоянно вылетала на песчаной планете — во время заставок, в фоторежиме, во время геймплея. После перезапуска компьютера она стала вылетать через несколько секунд после загрузки.
Не помогало вообще ничего, кроме выключения трассировки лучей на этой конкретной планете. На других локациях проблема не воспроизводится. При этом RT увеличивает нагрузку на процессор, потому что движок должен составлять BVH-структуру (Bounding Volume Hierarchy, “Иерархия ограничивающих объемов”, используется для расчета столкновений) всех объектов мира игры для работы трассировки лучей.
Обычно в таких ситуациях спасает уменьшение настроек качества, динамическое разрешение и алгоритмы реконструкции изображения вроде DLSS, FSR 2.0 и XeSS. Jedi: Survivor поддерживает только FSR 2.0 — и делает это плохо.
Алекс Батталья из Digital Foundry наглядно показал, как FSR реконструирует движущиеся объекты — часто видна оригинальная шахматная структура. Это странно, потому что в Unreal Engine 4 есть оригинальные плагины с поддержкой и DLSS, и XeSS.
Китайский моддер PureDark смог вставить в игру DLSS Frame Generation и удвоить частоту кадров, но отметил, что выпустить мод невозможно из-за защиты от пиратства Denuvo. Сам же алгоритм при этом с трудом интерпретирует клинок светового меча.
Ирония в том, что первоначально интерполяцию кадров для удвоения производительности разрабатывал программист LucasArts Дмитрий Андреев для Star Wars: The Force Unleashed II. Технология была практически готова к релизу, но возникла та же самая трудность — светящиеся лезвия световых мечей.
Андреев не успел решить проблему к релизу игры, а The Force Unleashed II стала последней игрой LucasArts перед ее закрытием после продажи LucasFilm компании The Walt Disney.
Не надо думать, что после оптимизации патчами Star Wars Jedi: Survivor легко пойдет на любом ПК. Все описанные в статье красоты в любом случае будут требовать мощного современного железа с поддержкой новых алгоритмов. Это не игра будущего с уникальными технологиями, но финальный аккорд для Unreal Engine 4.
Но если даже после патчей ваш ПК не позволит играть в Survivor со всеми красотами, на помощь придет облачный гейминг. Эта технология позволяет запускать игры на удаленных серверах и транслировать их видеопоток на любое устройство через интернет. Например, так работает сервис VK Play Cloud. Новейшие проекты запускаются с высокими или максимальными настройками на расположенных по всей России серверах. Поддерживаются любые игры из популярных лаунчеров — от Steam и EGS до Battle.Net и EA App.Достаточно подписаться на подходящий тариф, купить игру в любом магазине и запустить ее согласно инструкции.
Star Wars Jedi: Survivor — действительно отличная игра, одна из лучших по «Звездным Войнам». Несмотря на технические проблемы, фундаментально она не сломана. Производительность можно исправить, шейдеры скомпилировать заранее, алгоритмы реконструкции – добавить, как и DirectStorage для решения проблем с подгрузкой данных. Надеемся, что EA не забросит поддержку патчами, и в итоге останется только отличная и очень красивая игра.