Unreal Engine 5 и его возможности: мнение программиста AAA-игр

Мы попросили Александра Балакшина, работавшего в роли ведущего геймплей-программиста над Rainbow Six Siege, а также над несколькими неназванными консольными шутерами, поделиться мыслями и впечатлениями от анонса Unreal Engine 5.

Общие впечатления

Сначала, когда я только услышал про этот анонс от коллег, я решил, что там будет очередная маркетинговая демонстрация, на которой не покажут ничего особенно нового. Но когда в итоге посмотрел, то не поверил своим глазам.

Самый впечатляющий момент демонстрации — тот, когда они показали количество треугольников в кадре. 20 миллионов — это примерно по одному треугольнику на пиксель. Это что-то совершенно невероятное.

Если всё, о чём нам рассказали сегодня, действительно будет реализовано, это кардинально изменит пайплайн создания AAA-игр. Особенно важны две технологии — Nanite и Lumen.

Nanite

Nanite позволяет использовать неоптимизированные ассеты прямо в игре. Это очень сильно снизит нагрузку на художников. Я сам — программист, и мне трудно оценивать это точно, но по моим прикидкам художники по окружению смогут экономить от 50 до 70 процентов времени на создание контента.

Отныне этап работы с лоу поли, с изготовлением карт нормалей, уровнями детализации (LOD) — будет просто отсутствовать. Качество и детализация при этом не только сохранятся, но и достигнут кинематографического уровня.

Я пообщался с коллегами рендер-программистами, и у них есть предположение, что в основе лежит технология mesh shading’а или аналогичная ей, представленная Nvidia в 2018 году для GPU серии Turing (тех же, на которых дебютировал аппаратный рэй-трэйсинг).

В целом, это выглядит как гигантский шаг в сторону увеличения скорости изготовления контента. Но чтобы сделать более конкретные выводы о том, как это будет работать в реальности, нужно дождаться новой информации и итоговой версии движка.

Насколько это реально

Одним из первых возникает вопрос о том, как эта система сочетается со стримингом уровней в Unreal engine. В демо мы видим специальные «бутылочные горлышки», которые используются для выгрузки уже пройденных участков и загрузки новых локаций. (Обновлено: ведущий дизайнер Epic Games уточнил, что «горлышко» не имеет отношения к загрузкам, а служит лишь для того, чтобы продемонстрировать детали окружения вблизи).

По личному опыту работы с левел-стримингом в UE4, могу сказать, что эта технология требует весьма слаженной кооперации между инженерами, левел-артистами и левел дизайнерами. В противном случае, если бюджеты загружаемых и выгружаемых уровней будут рассчитаны неправильно, игрок будет испытывать просадки частоты кадров — как это было в недавнем Jedi: Fallen Order.

Также не совсем понятно, как такой объем информации помещается в оперативную память. Если вы попробуете сейчас загрузить подобное в кадр, то даже на очень мощном компьютере у вас в лучшем случае будет фриз на несколько секунд. В худшем — игра упадет из-за недостатка памяти.

Здесь, конечно же, стоит учесть заявление Epic games, что данная технология во многом опирается на железо PlayStation 5, и, видимо, на его «сверхбыстрый SSD».

Наконец, как лично мне кажется, в этом трейлере была какая-то небольшая доля обмана. Здесь не такие уж огромные локации: вначале идёт «коридор», потом небольшая локация с «паркуром», потом ранее упомянутое «бутылочное горлышко», которое используется для подгрузки зала со статуями. На открытое же пространство героиня выходит только в самом конце.

И даже здесь мы просто видим скайбокс и какую-то перспективу. Нет уверенности в том, что вдали находятся модели, а не просто текстуры. Плюс мы не знаем, какая детализация у всего этого гигантского окружения.

Lumen

Lumen — вторая прорывная технология. Это глобальное освещение, которое обсчитывается в реальном времени. которое позволяет освещать объект с учётом переотражённого света. То есть, горит лампочка, освещает стены — но и свет, который отражается от этих стен, тоже освещает другие стены.

Примерно так и работает освещение в реальном мире. Долгое время считать такое во время игры было слишком затратно, поэтому разработчики заранее «запекали» карты освещения в редакторе, а у динамических источников света всегда был сравнительно небольшой радиус действия, и затрагивали они отнюдь не все объекты на сцене.

Lumen же позволит не только изменить подход к разработке освещения, но и даст возможность создавать новый игровой опыт. Самый простой пример — это реалистичная смена дня и ночи. Однако, помимо этого, теперь можно будет влиять на освещённость любого помещения прямо во время игры в зависимости от интенсивности и цветов источников света, наличия различных блокирующих предметов, и прочих факторов. Прямо идеальный инструмент для разработчиков хорроров.

Основной вопрос к Lumen такой: насколько это освещение хорошо работает без виртуальной геометрии? Рискну предположить, что в основе этой технологии лежит аппаратный рэй-трэйсинг, так что скорее всего ее можно будет использовать и с «обычными» моделями. Но выяснить это можно будет только когда появится общедоступная версия Unreal Engine 5.

Кто и когда сможет использовать нововведения

И Nanite, и Lumen в первую очередь нацелены на AAA-продакшен. Судя по всему, на данный момент они работают только на PlayStation 5, однако разработчики заявляют полную поддержку этих технологий консолями следующего поколения (в том числе, видимо, и XBOX Series X), а также high-end PC.

Касательно мобильной разработки и предыдущего поколения, утверждается, что в редакторе UE5 будут инструменты, позволяющие «оптимизировать» новый высокополигональный контент под другие платформы. Однако, если эти инструменты окажутся недостаточно удобными, то разработчики ещё долго будут работать по-старому.

В любом случае, переход на новые пайплайны займёт некоторое время. На мой взгляд, это может произойти в течении 3–5 лет с момента релиза движка, и будет зависеть от распространения технологии в индустрии в целом.

Другие интересные детали анонса

На фоне Nanite и Lumen не стоит забывать и про другие не столь громкие, но не менее интересные технологии, о которых рассказали Epic Games.

В первую очередь, заявленные годом ранее Epic Online Services наконец-то стали общедоступными. Эта технология предоставляет доступ к лобби, матчмейкингу, сохранению данных игроков, статистике, лидербордов и игровой аналитике для разработчиков практически любых движков — в том числе Unity, Lumberyard, CryEngine и т.д., — абсолютно бесплатно.

Это большое подспорье для разработчиков многопользовательских игр, в особенности небольших AA-команд. Ну а с учетом ориентации на кросс-плей и сохранение прогрессии между различными платформами, то это вообще звучит как подарок на день рождения. Лично для меня — это первая из новых технологий, с которой я планирую ознакомиться.

Также во время демонстрации упомянули систему эффектов Niagara и новый физический движок Chaos. И то, и другое можно уже попробовать в текущей, свежей версии UE 4.25.

Была отмечена новая система симуляции жидкостей, однако, к сожалению, ей уделили слишком мало времени.

Наконец, одним из главных пунктов я считаю заявленную преемственность движков, а именно то, что игру разработанную на UE4 можно будет конвертировать для 5-й версии. Именно этим сейчас занимаются Epic для Fortnite.

Какие вопросы остались без ответов

Мы увидели, что Nanite хорошо работает со статической геометрией — с окружением. Но мы всё ещё не знаем, как это работает с персонажами и скелетными мешами. Можем ли мы использовать героя или монстра, в котором будет два миллиона треугольников, или же мы до сих пор ограничены «бюджетом» в 80 тысяч? А если можем, то как будет справляться с такой нагрузкой GPU на этапе скиннинга?

Не было сказано ни слова о том, поменялся ли процесс рендеринга прозрачных объектов — а все, кто работает в индустрии, понимают, что это очень дорого. Художники и рендер-программисты идут на разнообразные хитрости, чтобы кадр с большим количеством прозрачных объектов всё равно мог отрисоваться за 16 (или 33, если 30 FPS) миллисекунд.

Не было демонстрации листвы, растительности. Непонятно, как будет происходить её отрисовка. В случае, если всё это работает ещё и с растительностью — то это просто фантастика.

Наконец, интересно, как новая система повлияет на размер билда. Увеличится ли он до сотен гигабайт из-за столь высокодетализированных моделей, или останется примерно таким же за счёт того, что теперь не нужно хранить карты нормалей, LOD и текстуры для них?

Что теперь делать Unity

Unity сейчас делает акцент на оптимизации геймплея. Их entity component system позволяет максимально эффективно использовать для расчёта симуляции все ядра консоли. Подобная технология в своё время успешно доказала свою работоспособность в Overwatch.

Unreal Engine же, как известно, работает с симуляцией геймплея в одном потоке. Да, там есть многопоточная функциональность — например, для расчёта анимаций, — но в целом, для современных консолей это не лучшее решение.

С другой стороны, стоит учитывать то, что Epic распространяют исходный код движка в открытом виде — во всяком случае, для четвёртой версии. Если подобная практика будет применена и для Unreal Engine 5, то это всего лишь вопрос времени, когда подобные технологии появятся у Unity, CryEngine, Lumberyard и прочих, в том числе проприетарных, игровых движков. В этом случае мы сможем говорить об изменении пайплайнов не только у разработчиков на Unreal Engine, но и во всей индустрии в целом.

Возвращаясь к Unity: у них очень сильная инженерная команда, и я не сомневаюсь, что они держат руку на пульсе и обязательно как-то ответят. Противостояние двух движков, само собой, продолжится, и станет только ещё более интересным. Но нужно признать, что Epic Games первой сделала шаг в сторону настоящего next-gen опыта и новых пайплайнов разработки.

Комментарии:  11
Ваш комментарий

Что я хочу от игр: Умный ИИ, разнообразный геймплей,большой открытый интерактивный мир, нелинейность сюжета, интересную историю, удешевление и ускорение разработки, веселые онлайн-режимы. Что я получаю: Кинцо, лучи, треугольники, гомики, рельсы, десятки ААА игр-клонов, микротранзакции, реклама,реклама, реклама, пыль в глаза, стагнация.

smallhell C такими запросами ни один разработчик вам не угодит. Ибо по каждому пункту у каждого разработчика и каждого игрока своё видение. Разраб сделает ИИ мега умным, а игрок этого не заметит, ибо умный ИИ игрок представляет себе иначе, нежели конкретный разработчик. Разраб сделает сюжет мега крутым, а игрок этого не заметит, поскольку не нравится жанр или подача (но другому игроку напротив всё нравится). Разраб сделает эпически интерактивный мир, а игрок этого не заметит, ибо хочет видеть интерактивными совсем не те вещи, которые видят разрабы. Разраб сделает нелинейный сюжет, а игрок этого также не заметит и назовёт нелинейность халтурой для галочки, поскольку вариативность игрок хотел видеть на разных локациях, а не на тех же самых. Предположим в нелинейной игре 100 квестов. В каждом квесте 4 концовки, и каждая концовка на своей уникальной локации происходит. Это словно сделать 4 игры разом, но всё засунуть в одну игру. Вы хоть представляете, сколько ресурсов требуют такие проекты? Здесь ни о каком ускорении или удешевлении разработки речи быть не может. Конечно, если вы согласитесь на графон 1998 года, тогда да - игру с вашими запросами создать можно дёшево и быстро. Но вот загвоздка - графона в такой идеальной игре не будет.

Janekste Ну так-то да, большинству только кинцо и нужно, вот только на кинцо и тратят серьезные бюджеты и усилия. Сейчас все эти движки, видюхи да консольки только буст графону и дают. Но он не нужен. Графона уровня 98 года уже достаточно, что бы игра стала шедевром на десятилетия. При этом любому человеку со средним навыком по силам в одиночку слепить графон уровня 2004-2008 года.

smallhell

smallhell написал: Умный ИИ, разнообразный геймплей,большой открытый интерактивный мир, нелинейность сюжета, интересную историю, удешевление и ускорение разработки, веселые онлайн-режимы. Что я получаю: Кинцо, лучи, треугольники, гомики, рельсы, десятки ААА игр-клонов, микротранзакции, реклама,реклама, реклама, пыль в глаза, стагнация.

Если послушать, что говорят EPICи то получается что разрабы получат удобный инструментарий, что сильно сэкономит бюджет и объём работы над визуалом. Из этого можно предположить, что сэкономленные деньги на графоне, можно пустить на более продуманное ИИ, диалоги, живой мир, хороший сюжет. Если кто-то не в курсе, то сейчас качественный графон и анимация, это самые дорогие вещи в разработке игр.

Противостояние двух движков

только игры нормальные все делают на своих движках

Из всего этого понял лишь, что оптимизации как не было так и не будет, а багов и глюков добавится.

па поводу треугольников ничего не понятна. по идее есть тесселяция, которая увиливает количество угольников в обход цп и выполняется на гпу. если там какая то обратна гпу ретопология то как бы не знаю насколько оно востребовано. деревья под 90-200к полигон плюс тесселяция по моему норм при лодах а обратный процесс деревья под 25 мегаполигон и их реалтаймовое аппаратное ужатие не норм. с другой стороны можно запиливать достаточно высокополигональный меш проработанного 3д рельефа и меньше заботится о лодах и прочей оптимизации. глобал иллюминация это конечна крута моя давняя ПеКа мечта и я думал что она в современном поколении будет широко использоваться в виде плотного лпв например или воксельного освищения. все это крута это путь к само адаптирующимся не требующим ручной настройке средам и освещении во всякой совокупности объектов ваще по видео я бы как раз предположил что этот люмен использует фейковую геометрию а вторичная тень персонажа очень похожа на существующие в движке капсульные тени или чета типа того что не очень хорошо возможно

Я не знаю, как там для разработчиков, а для меня - шикарный движок.

Очередной CoD выйдет на своём первобытном движке, и сделает это ещё как минимум 10 раз. Там точно ничего этого в полном комплекте не реализуют.

Вспомнил демо презентацию PS 4 .