Внутри Immortals of Aveum интервью с техническими специалистами Digital Foundry
Inside Immortals of Aveum interview with Digital Foundry technical specialists
С технической точки зрения Immortals of Aveum от Ascendant Studios является крайне важной игрой. Исключая Fortnite, созданную самим Epic Games, это первая игра класса AAA, которая поставляется с полным набором передовых возможностей Unreal Engine 5. Это микрогеометрия на основе Nanite, способная производить поразительно детальные изображения, а также Lumen – решение для глобальной подсветки на основе трассировки лучей, плюс виртуальные карты теней. До Fortnite мы видели только один релиз на консоли с использованием этих возможностей – The Matrix Awakens, который выглядел потрясающе, но имел явные проблемы с производительностью.
Ascendant не только использует все возможности UE5, но также стремится достичь 60 кадров в секунду на консолях. Это очень амбициозная игра, но, как показало обзор DF вчера, вычислительные возможности GPU имеют свои ограничения, поэтому качество изображения неизбежно страдает, и используется FSR 2.2.1 для масштабирования из базового разрешения 720p на Xbox Series X и PlayStation 5.
Перед началом процесса обзора мы были очень заинтересованы в том, что делает эту игру особенной, поэтому, когда EA предложила нам возможность поговорить с командой разработчиков, мы с радостью воспользовались этой возможностью. Алекс Батталья и Том Морган беседовали с Марком Маратеа, Джулией Лихтблау и Джо Холлом из Ascendant Studios – и вот эта беседа.
Сколько времени разрабатывалась Immortals, и всегда ли идея заключалась в создании чего-то вроде магического шутера от первого лица, или она развивалась в процессе работы над проектом?
Марк Маратеа: Компания была создана для создания этой игры, и на подготовку потребовалось значительное количество времени… а потом случилась пандемия, и период набора персонала стал очень интересным временем. Эта игра уже пять лет, по сути.
- Lost Ark 8 вещей, которые вам нужно сделать в течение первых 10 часов
- PlayStation Plus подвергается большому повышению цены
- 8 лучших игр от Larian Studios, ранжированных
Джулия Лихтблау: Через пару месяцев после того, как Бретт [Роббинс] создал студию, он передал Дэйву Богану, старшему художественному руководителю, и мне этот 60-страничный концепт, который по сути был магическим шутером. В нем была основная идея с главным героем Джеком и большой сюжетной линией. Конечно, некоторые вещи менялись, вроде деталей боя, но Бретт знал, что хочет сделать эту игру-магический шутер, потому что такого еще не было, и это была игра, которую он действительно хотел сыграть и сделать.
Исходя из времени, я предполагаю, что игра не начиналась на Unreal Engine 5, так как его еще не было. Она началась на Unreal Engine 4 и потом перешла на UE5? Как это было?
Марк Маратеа: Проект начался с использования UE 4.20, который вышел в июле, а компания была создана в августе 2018 года. Когда компания только начинала свою работу, все делалось в Blueprint без изменений кода движка, как для небольшого инди-проекта для создания прототипа… Это могло измениться; реальность бизнес-решений заключается в том, что если бы через три месяца какой-то издатель сказал: “вы приходите, но используете Frostbite или что-то в этом роде”, это потребовало бы перестройки. Мы очень повезло с щедрым финансированием… у нас замечательный партнер, и это дало нам автономию для принятия этих решений. Мы начали с обычного 4.20, потом 4.21, настраиваемого движка 4.23, 4.25, 4.26, предварительной версии UE5, фактической версии UE5, UE5.1 и теперь мы выпускаем UE 5.1.1.
Так вы упомянули, что вначале использовали Blueprint и минимальные изменения кода, но с переходом на 4.23 перешли на настраиваемый движок. Какие были эти более крупные изменения, которые сделали его отличным?
Марк Маратеа: Знаете, все эти изменения начинались с чего-то вроде “…и потом дизайнер или художник попросил сделать невозможную вещь, и нам пришлось вносить изменения в движок”. В частности, для уровня руин нам пришлось сделать некоторую магию в версии UE4 из-за особенностей расположения уровня; мы фактически должны были переместить солнце на небе. Это не кажется большой проблемой, пока вы не вспомните, что UE4 основан на предрасчетной подсветке, поэтому это стало огромной задачей и требовало много работы.
Эта игра всегда была 10 фунтов игры в пятифунтовом мешке. Наша система боя развивалась и стала источником множества изменений в нашем движке, поскольку мы построили нашу систему боя на основе Unreal Gameplay Ability System, которая была разработана для MOBA. Это хорошая основа для системы способностей, воспроизводимых в сети, и мы используем ее для всех видов оружия в игре – оружия с быстрой стрельбой, прицельного и управляемого оружия – так что мы действительно вышли за пределы этой системы. Поэтому первым огромным изменением было приведение системы играбельности в соответствие с тем, как мы хотим, чтобы бой работал.
Следующим большим изменением была композиция мира – как игра загружает [данные], где все находится. Мы внесли огромные изменения в эту систему, чтобы вместить эти очень большие миры, переходить через них и удерживать их в пределах нашего бюджета памяти… и затем происходит волшебство UE5, и композиция мира больше не существует, потому что они устарели. Как вы можете себе представить, это был переход для всех нас – инженеров, всех наших команд контента, особенно художников уровней и разработчиков уровней. Мы сказали “вот новая библия по созданию игры”, а они сказали “сначала вам нужно научиться писать… а затем, во-вторых, это безумие”. Это был огромный проект на уровне студии, нам пришлось прототипировать, какой должен быть правильный путь, установить правила, определить, что Epic не сделал правильно, изменить работу нашей игры, снова переписать правила, и это был непрерывный процесс, который длился даже последние шесть месяцев.
Мы взяли 5.1 на Рождество, и я провел свой рождественский отпуск, интегрируя [эту версию]… когда мы перешли на 5.1, мы не могли загружать никакие ресурсы в игру, поэтому мне пришлось практически переписать весь загрузчик ресурсов за два дня, чтобы этого не происходило и чтобы мы не потеряли весь наш прогресс.
Вот такая цена за то, чтобы быть в курсе дел?
Марк Маратеа: Да, но это абсолютно стоило того.
Вы выбирали какие-то предварительные кеширования шейдеров [функции] из 5.11 или 5.2?
Я на самом деле сейчас веду обсуждение в Slack о том, нужно ли нам извлекать что-то из 5.2, чтобы помочь с этим. Так что кеширование PSO в 5.1 работает, но если вы заглянете в код, первая строка – это комментарий, который говорит: “это не работает, не используйте это”, и у него есть преждевременные выходы в другие части кода. Они пытались сделать адаптивное предварительное кеширование, что приводило к утечкам памяти и, в конечном итоге, к сбоям при высвобождении ресурсов – что плохо – но в 5.2 это все исправлено. К сожалению, мы находимся на грани между версией 5.1.0 и версией 5.2, которые работают по-своему, и 5.1.1, которую они пытались заставить работать, но это не совсем получилось.
Поэтому нам пришлось немного изменить некоторые вещи, мы используем предварительное кеширование PSO в комбинации с обычным кешем DX12. В документации [Epic] есть строчка, которая говорит: “когда вы делаете кеширование PSO, по умолчанию оно будет кешировать каждый PSO, который найдет, а затем загружать их все одновременно”. И этот “загружать их все одновременно” вызывает проблемы. У нас в игре много шейдеров, мы сделали невероятную, отличную систему, которая использует динамическую ветвь, и мы фактически переписали часть конвейера шейдеров, что позволяет сократить время рендеринга на 3-4 мс, что является серьезным достижением. Однако это увеличивает количество перестановок шейдеров, поэтому у нас есть 5,7 миллиона шейдеров с полными перестановками… это генерирует 563 тысячи объектов PSO, поэтому когда вы запускаете игру, она пытается загрузить полмиллиона PSO.
Объясняет ли это то, что я увидел, когда запустил игру без файла .ini? [примечание: код обзора для ПК поставлялся без важного файла .ini, вызывая начальные проблемы, быстро решенные] Обычно я вижу, что процессор бьет полную мощь [при выполнении предварительной компиляции шейдеров], но здесь было так, будто процессору даже трудно достичь полной загрузки.
Марк Маратеа: Да, это все операции ввода-вывода. Это своего рода худшая версия операций ввода-вывода, потому что вы загружаете PSO из кэша в память, обрабатываете их и снова сохраняете на свой диск C:. Итак, вы обходите все оптимизации, потому что вам нужно обратиться к другому диску – большинство людей больше не хранят свою библиотеку Steam на диске C: – и вы обходите DMA и не работает DirectStorage, поэтому вы платите определенную цену.
Вы упоминали DirectStorage – вы используете это на консолях Xbox Series или на ПК?
Марк Маратеа: Да, если [DirectStorage] есть, Unreal автоматически пытается использовать его. Мы также используем асинхронные вычисления, которые прекрасно ускоряют работу, особенно в сочетании с DirectStorage, поскольку позволяют загружать вычислительные шейдеры непосредственно на графический процессор и выполнять магические вычисления, делая игру красивее и впечатляющей. Это позволяет запускать графические частицы на GPU с использованием Niagara без нагрузки на центральный процессор и без проблем с игровым потоком.
Я сыграл первые 25 минут игры и не столкнулся с проблемами компиляции шейдеров, что редкость для игры на движке Unreal Engine.
Марк Маратеа: Вся игра будет работать без проблем с PSO. Я говорю это вслух прямо сейчас, публично и записывается.
Каково было внедрение Nanite в игру и как оно сравнивается с обычным созданием LOD?
Юлия Лихтблау: С точки зрения художников, мы начали создание этой игры в Unreal 4, поэтому многие из наших первоначальных наборов были созданы в соответствии с традиционным подходом. Когда мы перешли на Nanite и UE5, это вызвало большой восторг, потому что мы смогли упаковать гораздо больше деталей в сами ресурсы… Изначально у нас была высокополигональная модель, созданная в ZBrush, которая затем была преобразована в классическую текстуру и материал, чтобы получить ее форму с сохранением низкого количества полигонов. Но когда мы перешли на Nanite, мы смогли вернуться к высокополигональным ресурсам. Работа с такой плотностью требовала переосмысления рабочего процесса, потому что теперь вы имеете дело с огромным количеством GameTopicов, в миллионах… Когда ресурсы были внедрены в движок, было просто невероятно видеть, как миллионы полигонов добавляются в движок, не вызывая его падения.
Иногда при импорте возникали проблемы с флагом Nanite, и мы снова импортировали многомиллионные полигонные книжные шкафы, и удивлялись, почему движок подлагивает, когда мы смотрим в их сторону. Вы могли видеть, что Unreal не знает, как справиться с этим, но как только вы устанавливаете этот флажок, все начинает работать. Он выполняет динамическую смену LOD и кластеры вплоть до того момента, когда наш рабочий процесс стал куда более быстрым, и было потрясающе видеть, как кластеры мгновенно оптимизируются в реальном времени. Это позволило нам создавать эту игру гораздо быстрее с такой небольшой командой.
Как вы решали, что будет использоваться с помощью Nanite?
Юлия Лихтблау: Когда мы впервые перешли на Unreal [5], мы включили Nanite для всего, что только можно. Я думаю, что в версии 5.0 не было возможности использовать его для листвы, это появилось чуть позже, но как только мы получили возможность использовать Nanite для листвы, мы включили его. Затем мы начали откатываться от этого и спрашивали: “действительно ли это нужно делать с помощью Nanite?” Мы сталкивались с некоторыми ресурсами, которые вызывали проблемы из-за их конструкции и способа настройки UV-развертки, поэтому нам приходилось перерабатывать некоторые из этих ресурсов, чтобы они работали с Nanite, или полностью изменять подход и возвращаться к традиционному методу. Мы не могли использовать [Nanite] для движущихся объектов, таких как флаги. Мы действительно бросили все в корзину Nanite, чтобы научиться работать с ним. Теперь у нас есть огромная страница в Confluence [корпоративная вики], посвященная тому, как следует работать с Nanite в будущем.
Как Nanite и виртуальные теневые карты переносятся на консоли, такие как PS5 и Series X/S?
Юлия Лихтблау: С точки зрения художников, нам действительно не пришлось ничего изменять, но, возможно, Марк что-то делал сзади, чтобы это работало, чтобы нам, художникам, не нужно было так много беспокоиться!
Марк Маратеа: Могу сказать, что в некоторых случаях это работает лучше на консолях, как ни странно. Геометрия, виртуализированная с помощью Nanite, очень зависит от потока данных, все связано с вводом-выводом с диска. Поэтому UE5 переписывает систему ввода-вывода и оптимизации, которые они сделали для NVMe SSD. Он разработан для работы на консолях. На ПК я не знаю, какая пропускная способность у каждого для ввода-вывода… Единственным недостатком на консолях является то, что при использовании Nanite необходимо использовать потоковые виртуальные текстуры, очень большой буфер виртуальных текстур. Консоли имеют фиксированную память, но [у одной видеокарты] может быть больше памяти, чем у PS5. Поэтому оптимизация для обоих платформ действительно сложна.
Нанайт хорошо использует доступную ему память, но исключение в этом случае заключается в том, что виртуальные текстурные пулы в UE не могут изменяться в размере – они должны быть инициализированы при запуске движка и больше не могут быть изменены, [что обеспечивает] полностью выделенную последовательную память, что прекрасно с точки зрения производительности, но [могут возникнуть проблемы, когда, например] где-то вдалеке находится стаканчик, два пикселя, и ему нужен один кусочек одной текстуры [из 500 МБ пула], и вам не хватает этого до тех пор, пока текстура не исчезнет. ПК не обращает внимания [если память закончилась]; в худшем случае он переходит в виртуальную память. Консоль говорит: “У меня нет виртуальной памяти, я закончил”. И она не вылетит, но это вызовет серьезные проблемы. Это вызвало то, что было известно внутри как “печально известная ошибка ландшафта”, когда вы просто шли в определенные части игры, и это выглядело так, будто кто-то нарисовал аниме пейзаж на земле, потому что не удалось выделить память для виртуального текстурного пула.
Нанайт, похоже, сделал жизнь проще для художников; есть ли в игре момент, на который вы особенно гордитесь, момент, который показывает, что вы можете сделать с помощью Нанайта и чего вы не смогли бы сделать без UE 5.1?
Юлия Лихтблау: В каждом уровне нам действительно нужно было стараться. Есть один уровень с гигантским колоссом, этим гигантским мехом, и у него очень сложная геометрия с множеством деталей; внутри каждая маленькая заклепка на месте, и щели в полу смоделированы так, что вы можете увидеть все эти сумасшедшие движущиеся цилиндрические и высокополигональные объекты, к которым мы могли просто добавлять все больше и больше деталей… Нанайт действительно открыл мир для создания более красивых уровней, потому что теперь мы больше не должны полагаться на нормал-мэппинг и этот вид обмана, который разрушается [под определенным углом обзора]. Этой проблемы больше нет, потому что геометрия на самом деле присутствует… вы можете подойти очень близко, и она все равно будет иметь всю эту изогнутость и детализацию. Так что это было действительно круто экспериментировать с разными текстурами, поверхностями, формами и стилями архитектуры. На стороне художников это было действительно весело, чтобы действительно пропихнуть это через всю игру.
Джо Холл: Вместе с VFX в UE5.1 они ввели прозрачность с помощью Нанайта, что нам точно было нужно. Есть уровень в библиотеке, где металл должен растворяться в зависимости от прогресса игрока, поэтому это Нанайт-объекты, которые действительно растворяются с помощью эффектов свечения и частиц, используя резервную сетку внутри них. Это действительно впечатляет.
Нам придется запечатлеть эти моменты для нашего освещения…
Марк Маратеа: Если быть честным, первые 10 минут игры после кинематографического представления, когда мы делаем панораму Серен Андербридж – это все в реальном времени, в игре, полностью освещенный мир с геометрией Нанайта, разделенной на области. Это огромное – я думаю, многие из нас забывают, насколько это захватывающе; в любой другой игре это было бы заранее отрендерено. Освещение в реальном времени, ветряные мельницы на зданиях, вращающиеся в реальном времени, анимированные объекты… каждый раз, когда я на это смотрю, я замечаю новую деталь. Наша художественная команда просто феноменальна, с тем, что они сделали с UE5. Она пропускает “нечеловеческую долину” и сразу переходит к “да, это обычный город”.
С помощью Нанайта вы можете использовать воспроизведение, вращение и масштабирование одного и того же объекта для создания областей – как вы вводите вариацию в окружении? Есть ли система износа? Есть ли возможность добавить вариацию в определенные объекты с помощью наслоения деталей?
Юлия Лихтблау: У нас нет системы износа; мы сильно используем разные экземпляры материалов, чтобы, например, добавить разные цвета краски на здания и целый набор наклеек, которые позволяют вам иметь, например, определенные области с более осыпающейся штукатуркой, или грязные разрезы, или граффити и тому подобное. Большая часть этого заключалась в добавлении [созданной вручную] геометрии – взять здание и добавить вокруг него множество реквизита. Мы создали также чертежи трущоб, в которых было много взаимозаменяемых реквизитов, поэтому они не были расставлены вручную – но мы могли добавить это художественное деталь, тот вид “проживания”, чтобы рассказать историю окружающей среды, поэтому я чувствую, что это позволило нам добавить некоторое разнообразие к большинству этих объектов.
С 60fps на консолях, вы используете программное обеспечение Lumen? А на ПК, получаете ли вы программное обеспечение Lumen автоматически или выбирается ли между аппаратным и программным Lumen на основе вашей конфигурации?
Марк Маратеа: Да [для программного Lumen на консолях]. [На ПК] в настоящее время это программное обеспечение, у нас есть варианты для обоих. Это связано с проблемами кэширования PSO – оказывается, как только вы включаете аппаратный [Lumen], количество перестановок шейдеров удваивается, потому что строятся аппаратные и программные версии, и я решил, что мы не должны сразу же это делать с людьми.
Одной из вещей, которые вы можете сделать с кэшированием PSO, чтобы избежать некоторых из этих проблем, является использование системы маскировки. Поэтому мне нужно вернуться и снова захватить все [10 миллионов] PSO в игре. И мне нужно оборудовать игру с помощью 64-битного флага типа uint, который говорит, это первый этап, это второй этап, это третий этап, на протяжении всей игры, а затем выполнять предварительное кэширование по порядку, в разное время, на разных уровнях. Поэтому мне нужно создать эту маленькую систему и вставить ее, и тогда мы сможем использовать аппаратный [Lumen], не вызывая пятиминутного перестроения шейдеров в начале игры.
С аппаратным Lumen, с его дальними деталями, у вас возникнут проблемы с ЦП?
Да. Поток отрисовки получает очень большую нагрузку. Самое большое изменение с программного на аппаратный Lumen заключается в том, что расстояние увеличивается с 200 метров до 1000 метров. Есть удивительная вторичная проблема, когда вы начинаете добавлять источники света с пятикратным удалением, и это то, что теперь вы получаете отражения света с пятикратным удалением. Lumen очень, очень любит обрабатывать отражения на всем, и у нас много светов, поэтому теперь вы начинаете играть с другими параметрами, чтобы избежать слишком многих отражений на всех ваших блестящих материалах. Команда Джулии обожает блестящие материалы, у нас их много, поэтому это постоянное сбалансированное соотношение между слишком малым и слишком большим количеством отражений. Если вы оптимизируете в неправильном направлении, то это либо становится запутанным, либо превращается в блестящий сияющий праздник, что не очень хорошо. Поэтому мы очень тщательно находим золотую середину между частотой кадров и визуальным качеством. Это требует много тестирования, и вы не можете поломать другие вещи в процессе этого.
Наши текущие минимальные требования – это RX 5700 XT и RTX 2080. Я предполагаю, что обновленные спецификации уже находятся в руках людей; мы действительно смогли снизить минимальные требования немного. Мы очень старались снизить их до уровня, намного ниже того, что поддерживает RTX. Побочным эффектом этого, конечно же, является необходимость обеспечить нормальную работу программного Lumen на ПК, когда мы начинаем оптимизировать для аппаратного Lumen.
Вернемся к Lumen, он поддерживает настройку “ультра” для глобальной освещенности и отражений. В каком диапазоне находятся консоли в этих настройках?
Марк Маратеа: В основном это средние настройки, цель – 1080p 60fps с масштабированием.
Удивительно видеть, что игра поддерживает Nanite и Lumen сразу на консолях с частотой кадров 60fps. Это всегда было частью плана? Был ли момент, когда вы рассматривали вариант с 30fps?
Марк Маратеа: Первые два года мы преследовали нашу визуальную цель [а не цель по частоте кадров], при этом ведущей ролью играли художники. Параллельно с этим мы работали над боевой системой, а [гейм-директор] Бретт и команда Джо обеспечивали соответствие визуальных целей боя. Когда эти две вещи стабилизировались, у нас стало получаться поддерживать стабильные 45-50fps в режиме разработки – и Бретт играл в это и сказал: “Хорошо, нет, мне больше не нравится 30. Эта игра должна быть на 60, бой на 30fps не выглядит правильно”. И поэтому мы вместе с командой изменили нашу позицию.
С тех пор мы избавились от многих из этих проблем, что позволило нам немного снизить минимальные требования. Я не рекомендую кому-либо это делать, но если бы кто-то запустил эту игру на [GTX] 1060, она действительно заработала бы. Она не оптимизирована для этого; к тому же это не 8-гигабайтовая карта, поэтому вам нужно быть очень осторожными. Unreal очень зол на вас, если у вас недостаточно виртуальной памяти для теней при разрешении, на котором вы играете. Если вы играете на 1080p, это не такая большая проблема, но как эксклюзивный геймер ПК в 4K я могу сказать вам, что это очень большая проблема, когда у меня заканчивается память для теней. Это техническая сторона вопроса, но на самом деле это вопрос искусства. Когда мы решили делать 60fps, команды Джулии и Джо выбрали отличные пути для запуска RT на этой частоте кадров.
А что насчет других настроек, аналогичных консоли? Могут ли PS5 и Series X установить средний уровень на большинстве настроек или они способны перейти на ультра для чего-либо?
Марк Маратеа: Несмотря на [равную производительность], Series X и PS5 обрабатывают вещи по-разному. Асинхронные вычисления очень хорошо работают на одной, но не так хорошо на другой, что изменяет нагрузку на GPU. Часть процесса настройки консоли заставила нас создать инструмент производительности, которым мы располагаем на ПК. Мы составили график каждой отдельной переменной отображения, существующей в системе настройки Unreal, весь возможный диапазон и запустили игру [с каждой комбинацией настроек] 17 000 раз. И мы поняли, какие компромиссы между производительностью и визуальным качеством предоставляют все эти вещи. Затем мы сели с отделом художественной графики и нашли оптимальный баланс, создавая, на мой взгляд, одну из самых красивых консольных игр, которая работает с очень хорошим FPS.
Меню графики на ПК рассчитывает оценку для вашего процессора и графического ускорителя. На чем это основано?
Марк Маратеа: Epic создала программу синтетического тестирования [которую мы используем] и получает реальные [доступные для пользователя] числа, поэтому это оттуда. Центральный процессор – это в основном производительность одного ядра, графический ускоритель – это полная производительность всего графического ускорителя. Минимальный процессор имеет примерно 180 или 200 баллов, ультра – около 300; минимальный графический ускоритель имеет около 500 баллов, ультра начинается от около 1200, что соответствует 7900 XT или 4080.
Признание заключается в том, что это появилось в результате настройки для консолей, что, если читать между строк, означает, что пару недель назад, принимая душ, я подумал: “Было бы здорово” создать такой инструмент производительности. Теперь все эти данные поступают благодаря этому, [что позволяет нам] предоставлять данные [о стоимости различных графических настроек] пользователям… Если у кого-то новый процессор или видеокарта, это даёт нам новые точки данных, и это может изменить цифры. Это в основном агрегирование огромного объема данных на разнообразном оборудовании, а затем делаем очень хорошие предположения.
Это обеспечивает будущую совместимость с будущим оборудованием или все еще требует много ручной настройки?
Марк Маратеа: В текущей версии это делается вручную, но версия, которую вы увидите, будет значительно лучше. Если эта игра продастся так, как я надеюсь, к 60-му дню, она будет учитывать различные алгоритмы масштабирования, разные разрешения, включение и выключение RT и в основном предсказывать, как будет развиваться количество FPS.
Это напоминает мне индекс производительности Windows [введенный в Windows Vista]. Мне всегда было так грустно, что игры не начали его использовать, потому что я считал, что это очень хорошая идея. В вашем блоге упоминается использование FSR 2 на консоли, что заставило вас выбрать FSR 2 вместо TSR?
Марк Маратеа: Производительность. Мы используем FSR 2.2.1, мы находимся на передовой версии от AMD. Он имеет значительно лучшую производительность при масштабировании, а масштабирование TSR имеет гораздо больше размытия, чем DLSS или FSR. Мы постоянно общаемся с AMD, Intel и Nvidia о том, как минимизировать проблемы, и каждый из них проводит совместимость в своих лабораториях с этим всем, и мы приложили много усилий, работая с ними. Немного сложнее добиться от Epic изменения движка для [исправления проблем TSR].
А что насчет конкретных разрешений на консолях – это FSR 2 на ультра производительности прицеливаясь на 4K, или это более высокая настройка?
Марк Маратеа: Только на консолях оно выполняет адаптивное масштабирование – поэтому мы смотрим, что вы подключили с точки зрения монитора/телевизора… и есть слот в логике, который говорит, что если появится PS5 Pro, оно будет выполнять масштабирование на разных уровнях качества – это будет качество FSR 2, а не стандартная производительность FSR 2.
Итак, если вы играете в игру на экране с разрешением 1080p, у вас может быть разная производительность по сравнению с игрой на экране с разрешением 4K?
Марк Маратеа: Да.
По поводу динамических шейдеров ветвления, о которых вы упоминали, можете ли вы объяснить различия между базовым UE5 и тем, что вы делаете?
Марк Маратеа: Да, я хочу отдать должное [этому] Джо Уайленду, это его шедевр. Это как работа на уровне белой книги Сигграфа. Мы работаем над этим около 3,5 лет. У нас есть иерархическая система, которая увеличивает сложность при создании шейдеров – вы можете представить, что основным [параметром] является “блестит ли он”, а затем есть подчиненный, который определяет, “будет ли он блестящим или шероховатым” и так далее. Таким образом, есть много инструкций, которые вам не нужны; они будут вычислены как “не используйте”… но из-за того, как работает конвейеризация, графический ускоритель все равно должен их вычислить, что кажется пустой тратой ресурсов графического ускорителя.
Итак, мы создали умную динамическую систему разветвления, которая позволяет нам предварительно обрезать пути узлов, которые не будут использоваться для конкретного материала. Это решение принимается во время выполнения, что позволяет нам делать много вещей в редакторе, где люди могут сразу настраивать что-то и видеть изменения в производительности и визуальные изменения в реальном времени. Но эти решения в конечном итоге принимаются во время выполнения. Это позволяет нам иметь разные ветви с расширениями, специфичными для производителя аппаратного обеспечения, например, расширениями шейдеров только для Nvidia, где даже не выполняется проверка на картах AMD. Таким образом, в зависимости от сложности сцены, мы получаем примерно от 2 до 5 мс. Здесь работает группа очень умных людей, которые потратили много времени на создание своего жизненного проекта, и, честно говоря, это удивительно.
Возможно ли рассмотреть версию игры для PS4 или Xbox One в свете анонса Jedi: Survivor для консолей прошлого поколения?
Абсолютно нет. Нет версии Lumen, которая работает на консолях прошлого поколения, даже в программном обеспечении. Если бы кто-то приехал с грузовиком, заполненным наличными, и сказал: “Мы хотим, чтобы вы разобрали все свои уровни и сделали их с подсветкой, а также упростили все текстуры, чтобы они поместились в память консоли прошлого поколения”, это был бы очень большой грузовик. И это после того, как Джо, Джули и я провели шестимесячный тропический отпуск, а затем мы вернулись, и я сделал бы порт для консолей прошлого поколения. Я имею в виду, вы в основном спрашиваете, можем ли мы перестроить всю игру, отключив несколько ключевых функций и урезав бюджет нашего искусства до четверти?
Абсолютно. Я бы сказал, что в Digital Foundry… мы не видели достаточно игр следующего поколения, особенно через три или четыре года после выпуска консолей. Мы являемся ярыми сторонниками игры с частотой 60 кадров в секунду, но для консольных версий, есть ли в будущем режим с более высоким качеством или разрешением на 30 кадров в секунду?
Марк Маратеа: Мы делаем это для пользователя; у нас есть места без боев, где мы меняем качество кадров на визуальную достоверность… вы получите места, где будет небольшое падение, без боевых действий, и они будут выглядеть особенно великолепно. Они уже находятся в режиме качества. Затем, когда вы начинаете переходить в зоны с боями, мы начинаем проводить компромиссы – меньше динамических источников света, меньше уникальных элементов, мы начинаем удалять вспомогательных персонажей, которые могут появиться на RTX 4090, чтобы поддерживать частоту кадров.
Джо [Холл], есть ли что-то, о чем вы хотели бы сказать относительно визуальных эффектов, на которые вы действительно гордитесь, или о чем-то, включение чего в игру вы не считали возможным?
Джо Холл: Возвращение цвета. Возвращение цвета в боевые действия, путем сохранения реализма, но также придающего им волшебство. Это определенно нечто особенное. Оставаться при 60 кадрах в секунду, стремиться к высокой достоверности и качеству на каждый момент – это нечто, на что можно гордиться. Я горжусь командой и всеми усилиями, которые они вложили, и насколько мы продвинулись вперед. Я безусловно благодарен существованию UE 5.1. Это волнующе для игроков, чтобы прыгнуть в эту игру!