Vampire: The Masquerade – Bloodlines 2: Погружение в разработку игры нового поколения

Перевод пятого выпуска дневников разработчиков игры Vampire: The Masquerade – Bloodlines 2.

Vampire: The Masquerade – Bloodlines 2: Погружение в разработку игры нового поколения

Меня зовут Андреа Санчио (Andrea Sancio), я — заместитель технического директора и работаю в The Chinese Room над Vampire: The Masquerade - Bloodlines 2. Для меня было честью работать вместе с нашим техническим директором Ником Славеном (Nick Slaven) и возглавлять нашу талантливую команду, трудившуюся над техническими аспектами игры.

Хочу познакомить вас с подоплёкой работы нашей команды — надеемся, что когда вам доведётся поиграть в игру, вы полюбите её так же сильно, как и мы.

В постоянно меняющемся и развивающемся мире разработок игр нужно постоянно стремиться к тому, чтобы быть на пике прогресса. Выход движка Unreal Engine 5 можно сравнить с существенным сдвигом тектонических плит — он подарил разработчикам целый ряд прорывных технологий и инструментов. Я хочу подробнее рассказать об опыте нашей работы и сложностях, которые мы преодолевали в её процессе, с рядом экспериментальных технологий, определивших UE5 — это Nanite, Virtual Shadow Maps и Lumen. Эти технологии сыграли ключевую роль в создании реалистичного и мрачного мира, превосходно идущего нео-нуарному визуальному стилю нашей игры.

Переход с Unreal 4 на Unreal 5 был настоящей вехой в процессе разработки. Это было рискованным решением, потому что движок обычно утверждается на раннем этапе разработки и уже не меняется. Изменения затронули каждый аспект игры — пришлось переводить на новые рельсы все наши сцены, освещение и визуальные наборы. Все остальные команды разработчиков игры также включились в процесс и просто идеально показали себя в стремлении сделать так, чтобы благодаря новым инструментам игра изумительно выглядела и при этом не подтормаживала.

Lumen — это новая технология глобального освещения в реальном времени. Благодаря ей освещение в игре становится ещё более реалистичным — это достигается рейтресингом, симулирующем проходимый светом путь и его взаимодействие с различными поверхностями и материалами. Технология позволяет симулировать непрямое (отраженное) освещение и отражения. Но над внедрением Lumen в наши игры пришлось попотеть. Для достижения атмосферного освещения, в котором так нуждается наш игровой мир, нужно было обеспечить стабильную и плавную работу. Работать с динамическим освещением и тенями всегда непросто. В плане производительности это очень трудоёмкий процесс — добавление освещения в визуал и перекрытие различных источников света увеличивает сложность и затраты на рендеринг сцены по экспоненте: дело в том, что нужно делать много вычислений для каждого пикселя для каждого же источника света. Обычно это решается путём “пре-засветки”. Все тени уровня сохранялись до его появления, и менять их ты уже не мог. В результате удавалось достичь отличной производительности малой кровью, но свет и тени получались... как бы сказать... бутафорскими. И приходилось прибегать к другим ухищрениям, например, к световым датчикам [в оригинале light probes; в частности, они используются в Unity], располагаемым на объектах, которые перемещаются в данном пространстве.

Lumen же позволил нам менять цвет, положение и интенсивность кучи световых лучей, которые при этом могут ещё и динамически меняться. В итоге для того, чтобы понять, как лучше всего внедрить эту новую технологию освещения, мы очень долго работали с нашими художниками. Работает это дело так - все поверхности, на которые попадает свет, сохраняются в кэш. Этот кэш имеет разрешение ниже того, которое имеет выводимый результат. Это означает, что расчёт эффектов освещения идёт куда быстрее. После этого Lumen применяет Temporal Upsampling, благодаря которому у изображения увеличивается разрешение, причём происходит это без потери качества и детализированности. Этот трюк не удался бы без технологий Nanite, Cached Virtual Shadows и Temporal Super Resolution, которые мы тоже взяли на вооружение!

Virtual Shadow Maps заставила нас подходить к работе с тенями в рамках Unreal Engine 5 на совершенном уровне. Эта технология работает с разрешением теней отдельно от разрешения экрана, что выливается в отточенные тени при минимуме затрат. Внедрение Virtual Shadow Maps вынудило нас пересмотреть методы отбрасывания и обработки отрисовки теней, но оно того стоило — налицо было явное улучшение качества изображения. Без этого бы не удалось создать те мрачные и таинственные тени, что прочно ассоциируются с нео-нуаром.

Для быстрой смены кадров необходимо всегда следить за вызовами отрисовки [в оригинале draw calls]. Вызовы отрисовки — это команды, которые Центральное Процессорное Устройство (ЦПУ, он же ЦП, центральный процессор) посылает Графическому Процессорному Устройству (ГПУ, он же ГП, графический процессор). Если по-простому, вызов отрисовки — это просьба нарисовать или получить изображение определенного набора графических элементов. Каждый такой вызов отрисовки содержит информацию о том, как надо отрисовать часть той или иной сцены — в том числе, текстуры, информацию о затемнении, геометрию (например, координаты). Но если таких вызовов слишком много, игра будет тормозить, потому что каждый вызов подразумевает обмен и обработку информации между ЦП и ГП — а это всё время, ведь на обработку каждого кадра требуется доля секунды. Nanite принципиально меняет подход к обработке геометрии в играх. В отличие от традиционных систем уровней детализации Nanite виртуализирует геометрию объектов, выдавая детализированные визуальные наборы и хорошую производительность. В Nanite все сетки, сделанные с использованием одного и того же материала, помещаются в так называемое "ведёрко” [в оригинале bucket] и обрабатываются во время одного и того же вызова отрисовки, что сильно сокращает количество последних. Благодаря такому подходу уменьшается и сложность создания визуального набора, а также появляется возможность создания доселе недоступных фотореалистических мизансцен. Теперь мы можем наполнять уровни весьма причудливой архитектурой и высоко детализированными мизансценами.

Vampire: The Masquerade – Bloodlines 2: Погружение в разработку игры нового поколения
Vampire: The Masquerade – Bloodlines 2: Погружение в разработку игры нового поколения

Отладка и оптимизация нашего кода и наполнения мира стали куда сложнее, и мы ясно и чётко осознавали необходимость подстройки под частые обновления движка. Эти обновления были просто необходимы для важнейших правок и улучшения производительности. Большинство студий, наверное, предпочло бы не сталкиваться с такой ситуацией, благо подобные переходы не происходят сами по себе — за всё надо платить. Документации было мало, людей, которые хорошо разбираются в движке и с кем можно посоветоваться, тоже не хватало — во время этого путешествия нам пришлось прибегать к серьёзному исследованию движка, общением с Epic, методу проб и ошибок.

Возможно, это прозвучит пафосно, но все те усилия, которые мы прилагали для того, чтобы всё заработало, укрепили духовные связи между членами нашего коллектива, потому что всем нам приходилось постоянно общаться друг с другом. И оно того стоило, потому что наша команда художников смогла претворить в жизнь искомый нео-нуар. А в силу того, что игры обычно делаются с применением инструментов и технологий, созданных во время работы над предыдущими играми, будущие проекты The Chinese Room также выиграют от результатов нашего кропотливого труда. Все наши сотрудники отлично проявили себя в новых рабочих условиях, используя их максимально эффективно.Лично для меня, человека, который не один год работал в проектах со сходным подходом, эта работа стала глотком свежего воздуха и потрясающим переходом на новый уровень!

Игра должна ощущаться плавной и непрерывной. Скажу так — чем меньше вы обращаете внимание на технические детали во время игры, тем больше у нас оснований считать, что мы потрудились на славу. Мы очень гордимся тем, что нам довелось поработать над столь сложным по многим параметрам проектом и дать ему возможность стать настоящим прорывом в плане визуальной достоверности.

А что же дальше?

В январе, уже после праздников, мы опубликуем другие дневники разработчиков, а также расширенный геймплейный ролик Vampire: The Masquerade - Bloodlines 2.

1414
5 комментариев

Пока выглядит как главный конкурент в гонке с The Day Before. Провал первой разработки, срывы сроков, разгон команды, а теперь оказывается они ещё и движок меняют по пути.

3

Замечательно, перешли с уе4 на уе5. Значит опять выйдет абсолютно неоптимизированная игра. Вот мне не понятно, что разработчиков так тянет на этот новый движок. Каким бы он классным с технологической точки зрения не был, он по итогу становится антирекламой самого себя.

Вот мне не понятно, что разработчиков так тянет на этот новый движокмаркетинг же, игроки сами хотят некстген графики
он по итогу становится антирекламой самого себяда нифига, миллионы играют в фортнайт и верят что красиво теперь можно только на UE5 сделать

1