Epic Games — одна из самых агрессивных компаний в индустрии. За последние годы, пользуясь деньгами от успеха Fortnite, она купила невероятное количество бизнесов, которые так или иначе связаны с разработкой игр. Если не все, то очень многие дороги в разработке игр так или иначе ведут к Epic Games, а значит и к Unreal Engine.
Вам нужны текстуры для мира игры? Гигантская база физически корректных отсканированных текстур Quixel, которые используются в кино, не просто принадлежит Epic, но и бесплатна для использования в проектах на Unreal Engine. Нужны концепт-художники и 3D-модели? Все художники уже на ArtStation и Sketchfab, но Epic берет меньшую комиссию, чем предыдущие владельцы. Нужны решения для захвата движения и лицевой анимации? Инструменты от Cubic Motion и 3Lateral интегрированы в Unreal Engine, поэтому можно перейти к работе с актерами с минимальными затратами времени и денег. Надо закинуть в игру заставки? Любимый разработчиками кодек/декодер RAD Video теперь принадлежит Epic, его инструменты для измерения производительности и прочей телеметрии во время разработки интегрированы в UE, а инновационные алгоритмы сжатия Oodle Kraken, которые использует PS5 для достижения невиданной скорости подгрузки, также встроены в Unreal Engine 4 и 5, как и неминуемые будущие версии этих технологий. И так во всем.
На этом фоне заявление Epic Games, что 48% анонсированных игр на консоли текущего поколения PS5 и Xbox Series делаются на Unreal Engine 5, никого не удивляет.
Про две ключевые технологии UE5 — систему глобального освещения Lumen и систему микрополигональногой геометрии Nanite — мы уже писали, поэтому сейчас обсудим, что изменилось за два года между анонсом и релизом движка.
Первым делом, игры
Уже сейчас опробовать Unreal Engine 5 можно в двух играх. 5 декабря 2021 года третья глава Fortnite вышла с обновлением движка до UE5. А 9 декабря 2021 года на PS5 и Xbox Series вышла бесплатная демка The Matrix Awakens.
Эти проекты показывают два разных подхода к созданию игр на UE5. Fortnite портирует гигантскую, сложно заскриптованную, уже вышедшую игру на новую версию движка. Обычно перенос готовой или почти готовой игры на другую технологию чреват огромным количеством глюков и работы для разработчиков. Портированием Fortnite Epic Games показывает разработчикам, что они могут перенести их текущие проекты в разработке на новую версию движка с куда меньшими затратами, но зато со всеми преимуществами новых технологий. И как раз новые технологии демонстрирует демка The Matrix Awakens, но их мы обсудим ниже.
Во время анонса выхода Unreal Engine, Epic показали экран с 80 игровыми студиями, которые уже используют Unreal Engine 5. Мы уже давно знаем, что Microsoft Game Studios почти полностью перевела своих разработчиков на Unreal Engine 4, а теперь и на 5. Но есть и куда более неожиданные примеры. Последней игрой Rare была Sea of Thieves, но раньше она делала Perfect Dark, Perfect Dark Zero и легендарную GoldenEye 007, а многие ее сотрудники — выходцы из Free Radical Design, которая тоже есть в этом списке и работала над серией TimeSplitters и отмененной в 2008 году Star Wars: Battlefront III. Saber Interactive технически американская студия, но ее самый большой офис располагается в Санкт-Петербурге. Однако Saber еще и издатель, которому принадлежат 3D Realms, Aspyr Media, 4A Games и множество других студий. Вполне возможно, что ремейк Star Wars: Knights of the Old Republic, которым занимается Aspyr, работает именно на UE5.
Уже точно известно, что S.T.A.L.K.E.R. 2: Heart of Chornobyl, Senua's Saga: Hellblade II, а также новые части Tomb Raider и «Ведьмака» тоже разрабатываются на Unreal Engine 5. В ближайшие год-два игры будут выходить на обеих версиях движков, но Epic Games настойчиво советует всем разработчиков переносить свои проекты на UE5, чтобы не отставать от прогресса. Вполне возможно, что уже в 2023 году почти не будет игр на UE4. Хотя наверняка останутся и студии вроде NetherRealm, которые до сих пор латают и обновляют Unreal Engine 3 для своих файтингов.
Кинематографичнее некуда
Последние несколько лет Epic Games тесно сотрудничает со студиями, которые делают визуальные эффекты для кино и сериалов. Их самое известное сотрудничество, конечно, с Industrial Light & Magic (ILM). Еще в 2016 году Unreal Engine 4 использовали в некоторых сценах фильма «Изгой-один» для рендеринга дроида K-2SO. Глава ILM Джон Нолл (один из создателей оригинального Photoshop) заключил пари с художниками, что если он не сможет угадать на каком из двух кадров изображение из Unreal Engine, а на каком — результат фотореалистичной трассировки пути, то кадр из игрового движка пойдет в фильм. Такие кадры в фильме действительно есть.
Но гораздо известнее более новая коллаборация. Конни Кеннеди, сестра-близнец главы LucasFilm Кейтлин Кеннеди, возглавляет лос анджелесскую лабораторию Epic Games, которая занимается виртуальным продакшеном. ILM и Epic создали технологию Stagecraft — когда актеры играют в студии, окруженной LED-экранами. Unreal Engine синхронизируется с положением камеры, размером ее сенсора, объективом, фокусным расстоянием и фреймрейтом и рендерит фотореалистичное окружение, которое освещает актеров и погружает их во вселенную фильма или сериала. Фон потом могут заменить VFX-студии или оставить его как финальные пиксели, но свою работу он все равно выполняет. Самая известная работа ILM Stagecraft — это сериал «Мандалорец», но большинство блокбастеров этого года тоже снимали там. Например, «Бэтмен» (его снимал Грэг Фрейзер, тот же оператор-постановщик, что и у «Изгой Один» и пилота «Мандалорца»), «Тор: Любовь и гром» и «Человек-муравей и Оса: Квантомания».
Казалось бы, причем тут игры? Работа с кино позволяет Epic Games сотрудничать с лучшими специалистами по компьютерной графике, операторской работе и свету. В первую очередь это сотрудничество улучшает инструментарий для голливудских заказчиков, но потом технологии спускаются и в игры. Так Unreal Engine 5 может с легкостью симулировать любой объектив, камеру и пленку. Это можно увидеть в демке The Matrix Awakens, в которой зачастую очень сложно понять, где реальные съемки, а где цифровые дублеры.
То же касается и постэффектов. Motion blur, размытие в движении, за последние 20 лет прошло путь от доводящего до рвоты эффекта накопления кадров до современных версий, которые почти неотличимы от реального размытия в камере (при достаточно количестве семплов, конечно). Пленочное зерно, хроматические аберрации, глубина резкости (размытие всего, что не в фокусе объектива) и многие другие эффекты создавались для кино и для редких маэстро вроде Хидео Кодзимы, но теперь доступны даже для разработчиков-одиночек в их маленьких инди-играх.
До релиза Epic Games не рассказывали, что светящиеся текстуры тоже работают с системой глобального освещения Lumen и освещают мир игры. Светящиеся текстуры — это текстуры, которые имеют фиксированный, не зависящий от освещения цвет, и поэтому они выглядят так, будто светятся. Неоновые вывески, экраны, лампы, диодные полосы на персонажах, световые мечи — это все примеры светящихся текстур. Обычно в играх сами они ничего не освещают, а просто горят. Чтобы они действительно бросали свет, к ним прикрепляют точечный источник света. Это классический подход, но создает несколько проблем. Во-первых, это много работы: на каждую маленькую лампочку дизайнер вручную должен повесить источник света и выставить ему соответствующий цвет, интенсивность и угол обзора. Во-вторых, большое количество источников света сильно влияет на производительность (особенно в старых играх без отложенного рендеринга). В-третьих, отражения выдают все эти хитрые трюки, в них очень часто видны конусы точечных источников света, что разрушает иллюзию погружения. Lumen, как и другие методы глобального освещения при помощи трассировки пути, такой ерундой не занимается — все, даже самые маленькие, светящиеся текстуры автоматически влияют на свет в мире игры.
Другая важная часть работы с кино привела к интеграции в Unreal Engine 5 инструментов для визуальных эффектов, которые можно использовать в играх не по прямому назначению, но крайне креативно. Так программа Houdini, которую в кино и рекламе обычно используют для создания сложный физических симуляций (видите взрывы, воду, атмосферные эффекты, то это почти наверняка сделано в Houdini), во время разработки The Matrix Awakens генерировала облако точек, из которого UE5 генерировал весь город в игре — улицы, разметку на ней, тротуары, дома, велосипедные стоянки, парковки, знаки дорожного движения, просто все.
Система эффектов Niagara тоже черпает вдохновение из кино и вышеупомянутого Houdini. Она уже несколько лет доступна в Unreal Engine 4, но пока игры не используют технологию в полной мере. Обычно спецэффекты в играх вроде огня, дыма, дождя и т.д. используют альфа-текстуры — анимированные 2D-картинки с прозрачностью, которые всегда повернуты к игроку. Особенно это заметно в фоторежимах. Альфа-текстуры имеют множество недостатков. Они не могут быть динамически изменены, они очень требовательны к видеопамяти и ее пропускной способности (дым в CSGO может уронить фреймрейт с 1000 до 300 FPS даже на RTX 3090 с 24 Гб памяти GDDR5x), все анимации — это отдельные текстуры, которые разработчики должны подготовить заранее. Niagara позволяет сделать практически любой эффект из динамических частиц и объемов. Динамические системы частиц с аппаратным ускорением существуют во многих современных движках, вроде Frostbite и Luminous Engine, но пока используются ограниченно и, обычно, дополняет альфа-текстуры, а не заменяют их.
К слову, Star Wars Battlefront II использовал систему частиц для генерации бегущих толп гражданских и статистов, изображающих сражения за границей игровой зоны, а Battlefield 2042 — для создания стай стервятников и десантных вертолетов за картой. По сути, это та же идея, что и генерация облака точек в Houdini с последующей генерацией города в Unreal Engine 5. Такие неожиданные процедурные решения станут гораздо популярнее в ближайшие годы.
Вместе с Niagara работает и система физики и разрушений Chaos. Она тоже доступна с последних версий Unreal Engine 4, но в UE5 получает поддержку асинхронных симуляций, симуляций жидкостей (в том числе, газов) и физики автомобилей.
Но в отличие от Frostbite, который требует сложную коллаборацию инженеров и дизайнеров, Unreal Engine 5 сделан для максимального удобства разработки. Двумя кликами можно поменять цвет или материал текстуры, и она тут же, прямо в движке, будет реалистично взаимодействовать со светом. За несколько секунд можно изменить уровень и тут же, прямо в окне движка, его опробовать. В игру можно импортировать высокодетализированные модели и текстуры, сделанные для кино, и UE5 сам отмасштабирует их до нужного размера. Создать атмосферу с физически корректным солнцем и объемными облаками дело на 8 кликов (мы считали). Лучи от света еще на 4 клика. А время, которое разработчики не тратят на технические задачи, они могут потратить на наполнение игры.
Еще один пример таких «ускорителей»: одно из последних нововведений Unreal Engine работает и в UE4, но сделано для UE5 — движок Metahuman Creator. По сути, это генератор персонажей как в ролевых играх, который может создавать практически бесконечные вариации персонажей, выглядящих как настоящие люди, благодаря смешиванию разных типов лиц в одно. Естественно, это идеальный инструмент для RPG, в которых можно (кхе-кхе-Skyrim-кхе-кхе) часами сидеть в редакторе и все равно получить на выходе самого страшного главного героя игры на свете. Но еще интереснее возможность процедурной генерации NPC, которые могут выглядеть совершенно уникально, не отнимая у разработчиков десятки часов на моделирование, текстурирование и риггинг для анимации. Попробовать Metahuman Creator можно даже без Unreal Engine прямо в браузере, нужен только аккаунт EGS.
В Unreal Engine 5 есть множество нововведений, о которых игрок никогда не узнает, вроде улучшенной телеметрии, которая показывает сколько времени уходит на разные задачи движка, что существенно упрощает оптимизацию. Кодирование в реальном времени, которое позволяет писать код на C++ в консоли и сразу же после компиляции видеть результат.
Unreal Engine 5 становится настолько всеобъемлющим комплексом инструментов для создания игр, что порой сложно понять, зачем нужны все остальные движки. Студии могут сделать себе движок под что-то конкретное — только шутеры как Frostbite, только игры с большим открытым миром как Decima (Horizon, Death Stranding), только симуляторы совершенно случайных отравлений борщом как Glacier и массовых расправ над демонами от первого лица как id Tech. Но Unreal Engine 5, как и его предшественник, в теории может все, на всех платформах и любом современном железе.
Но развитие технологий в игровой индустрии приводит к полномасштабному обмену опытом. Любая прорывная технология через 2-5 лет оказывается в играх всех интересующихся и во всех игровых движках. Самое главное, что как и приход трассировки лучей в реальном времени, Unreal Engine 5 должен упростить техническую нагрузку на разработчиков, чтобы они могли больше времени потратить на сюжет и игровой процесс, а не на запекание текстур и насилие над мозгом инженеров из техподдержки.