Не только движок: какие технологии применяют в разработке ААА-игр

От очевидного до невероятного.

Не только движок: какие технологии применяют в разработке ААА-игр

Мощь Unreal Engine или Unity велика, но разработчики ААА-игр всё равно прибегают к десяткам дополнительных инструментов — как виртуальных, так и физических — для экономии времени и упрощения создания игр: от программ для процедурной генерации деревьев и физических движков, до специальных установок для записи объёмного звука и «оцифровки» объектов.

Не только движок: какие технологии применяют в разработке ААА-игр

Не хватает разрушаемости? Havoc, где ты там! Нужны красивые волосы? Жертвуем десятком fps ради работы NVIDIA HairWorks. Требуются красивые взрывы и дым? Классикой уже давно стал HoudiniFX. И это — лишь самые «яркие» примеры.

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

Такие программы обычно называют «промежуточным ПО». Они работают отдельно с последующим импортом результата в проект игры или же интегрируются прямо в игровой движок через «плагин-переходник». И их куда больше, чем вы могли подумать.

Рассказываю про «секретики» разработчиков — от знаменитых технологий до маленьких, но полезных решений.

Физические движки

Физика в играх давно стала стандартом. А между тем Havoc, которому в этом году исполняется 25 лет, использовали при создании уже более 350 игр и список продолжает расти. В нём мелькнули как крупные проекты, вроде Fallout 4 и Helldivers 2, так и семейные аркады, вроде Mario + Rabbids Kingdom Battle и Crash Bandicoot N. Sane Trilogy.

Но «физический движок» — это довольно общий термин. На деле подобное ПО используется для самых разных целей: симуляции гравитации, сжатия и растяжения объектов, рэгдолл-физики; как обширная (и высоко оптимизированная!) библиотека коллизий (столкновений); для создания навигационной сетки и взаимодействия ИИ NPC с физическим миром игры (Havoc Navigation).

Причём, будучи физическим движком, Havoc временами «стремится» к лаврам движка обычного, в своих возможностях копируя многие привычные функции того же Unity. Например, «из коробки» доступна настройка мимики персонажей, управление звуком, вызовы и анимация различных объектов.

На его фоне PhysX, в начале десятых активно продвигаемый NVIDIA, выглядит куда скромнее, как по функционалу, так и по доступному инструментарию. Многим он запомнился по игре Warframe, но широкого распространения так и не получил. Да и последняя версия SDK PhysX датируется 2019 годом, так как в свете активного развития ИИ интересы компании, похоже, несколько сменились. О чём говорит и «качество» его работы в видеокартах 5000 серии NVIDIA.

Но и до этого NVIDIA не стремилась «класть все яйца в одну корзину». Компания выпустила отдельный SDK для проработки волос, известный по третьему «Ведьмаку» — HairWorks. Вместе с ним она создала ПО для симуляции жидкостей (Flow), визуальных эффектов на основе частиц (FleX), а также дыма, пыли и тумана (Turbulence) в реальном времени. Правда, описанные инструменты известности не получили, в конце концов став плагинами для Unreal Engine и Unity.

Кстати, забавно, что в противовес всему «хайпу» вокруг волос Геральта, технология от AMD для симуляции волос и шерсти TressFX какой-то значимой известности так и не приобрела. Я и сам о ней узнал буквально во время работы над материалом.

Хотя оно и не удивительно, если верить новостям о том, как в Tomb Raider 2013 года при её использовании проседал фреймрейт обладателей видеокарт NVIDIA — технология не была достаточно оптимизирована для «железа» конкурента AMD, а наблюдая за сообщениями игроков, разработчики решили не спешить с интеграцией TressFX в свои проекты.

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

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

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

из материала Eurogamer «Куда пропала Euphoria»

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

Впрочем, оно и логично: чем сильнее «вау»-эффект, тем, обычно, выше трудозатраты и меньше прибыль. Поэтому разработчикам постоянно приходится искать баланс между «полезностью» тех или иных инструментов и их «ресурсоемкостью».

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

Этим ПО пользуется как модельеры и 3D-артисты, так и, благодаря возможности моделирования реалистичного поведения ткани в реальном времени, разработчики AAA-игр.

В Cyberpunk 2077 для создания облика персонажей использовали именно Marvelous Designer и даже так разработчикам, для реалистичного и хорошо выглядящего результата, пришлось прибегать к хитростям.

Самым моим любимым приёмом при создании реалистичных складок было использование двух слоёв. Для нижнего слоя, я часто использовал пресет жёсткой ткани, например, Leather_Cowhide в качестве основного, тогда как для верхнего слоя я использовал мягкие пресеты, такие как Nylon_Featherweight — с немного увеличенным параметром Shrinkage, чтобы завершить детали складок. Для таких элементов как кабели, воротники и молнии я бы рекомендовал использовать Trim_Full_Grain_Leather, который вы можете экспортировать в любой пакет 3Д моделирования и затем использовать его чтобы закончить модель.

Гжегож Хойнацки, художник по персонажам CD Projekt Red
Не только движок: какие технологии применяют в разработке ААА-игр
Не только движок: какие технологии применяют в разработке ААА-игр

Довольно часто разработчикам приходится «перескакивать» с объектами труда из одной программы в другую для достижения результата. Так что «промежуточным ПО», как я уже упоминал, может быть как отдельная программа, так и плагин для игрового движка или ПО для 3D-моделирования.

Визуальные эффекты и звук

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

Под «мамонтом» я, конечно, подразумеваю легендарный Houdini, который используется ВЕЗДЕ. И под «ВЕЗДЕ» я подразумеваю буквально всю индустрию трёхмерный технологий.

«Игра престолов», «Веном», мультфильмы Pixar, DreamWorks Animation, Disney, рекламные ролики, синематики игр и, конечно же, визуальные эффекты в самих играх.

Вообще, если зайти на сайт SideFX, можно увидеть множество знакомых проектов, для создания которых использовался Houdini. А регулярные «шоукейсы» и «рилы», которые выпускает компания на своём канале, лишь подкрепляют создаваемое впечатление «монополиста» в сфере создания визуала.

Инструменты компании SideFX стали стандартом индустрии, их используют крупные компании вроде EA, Ubisoft, Blizzard, Naughty Dog и множество других студий, в том числе для создания не только AAA-игр, но и инди-проектов.

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

И визуальными эффектами, конечно, дело не ограничилось: различные физические эффекты, инструменты процедурной генерации ландшафта и структур, целые рабочие пространства, позволяющие пройти полный путь разработки от наброска до готового пространства. Прибавить к этому возможность тесной интеграции с Unity и Unreal Engine, и становится ясна причина столь высокой распространенности этого инструментария в индустрии.

Но всё же помимо Houdini существуют и другие инструменты для создания визуала. Просто они, зачастую, «специализируются» на определённых типах эффектов, а также создаются в виде плагинов для популярных игровых движков и программ 3D-моделирования, интегрируясь в рабочую среду.

А так… Список можно продолжать долго: Fume FX, Phoenix FD, Maya fluids, Phoenix FD и Rayfire, MassFX. Какие-то из перечисленных программ применяются для создания эффектов в реальном времени (вроде Rayfire), а какие-то экономят 3D-художникам десятки часов при создании синематиков к игре.

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

И вновь разработчики, в попытках создать действительно «сочный и яркий» звук, вынуждены выходить за пределы игрового движка и прибегать к стороннему ПО. Логотип одного из них, кстати, наверняка вам знаком.

Wwise долгое время была настоящим спасением для разработчиков, когда требовалось не просто «озвучить» игру, но и сделать так, чтобы звук стал частью игрового процесса.

Не только движок: какие технологии применяют в разработке ААА-игр

Эта программа позволяет создавать сложные звуковые ландшафты, которые адаптируются к игровым событиям и действиям игрока. Эффект «погружения» в воду, изменение звука в зависимости от того, в каком помещении вы находитесь, реакция окружения на те или иные действия игрока — всё это сложный процесс, симулировать который и помогает Wwise.

Ну, это помимо того, что в программе можно создавать, настраивать и обрабатывать звуковые эффекты и музыку. И конечно же, Wwise интегрируется в различные игровые движки со всем своим инструментарием. Звук в Batman: Arkham Knight, BioShock Infinite и Prey создавался с помощью именно этого ПО.

Правда, в последние годы возможности актуальных версия Unity и Unreal Engine выросли, поэтому популярность программы постепенно идёт на спад.

Прямым конкурентом WWise является FMOD, которую также можно встретить в десятках игр. Программы развивались параллельно и, в целом, имеют довольно схожий функционал.

Инструменты процедурной генерации и библиотеки ресурсов

Вот так вот вероломно под одним подзаголовком «укладываются» сразу три направления. Почему? По одной простой причине — их достаточно мало, но упомянуть о них я обязан.

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

Из «процедурки» хотелось бы упомянуть легендарную SpeedTree — простенькую программу для генерации растительности, которая прошла тернистый путь от плагина, созданного для генерации деревьев на поле для гольфа, до отдельного самодостаточного инструмента, который сейчас используют не только и в кино, и в играх. У них даже свой сайт есть, где они модельки деревьев продают.

А так — эту программу до сих пор используют Epic Games, Sony Interactive Entertainment, Microsoft Game Studios, CD Projekt RED, Square Enix, FromSoftware и Activision. А «высаженные» с её помощью деревья можно встретить в Assassin’s Creed Valhalla, Red Dead Redemption 2, Days Gone, Tom Clancy’s Ghost Recon Breakpoint.

Ещё один инструмент процедурной генерации, ещё более незаметный в игровом процессе — Motion Matching. Его нельзя увидеть, но легко «почувствовать» и именно глубокая интеграция этого инструмента в проект позволила разработчикам из Naughty Dog получить столь восторженные отзывы об анимациях в игре The Last of Us Part II.

Традиционный захват движений предполагает запись определённых действий с актёров, одетых в специальные костюмы. Аниматоры используют эти данные, «режут» их на фрагменты, а затем имплементируют в игру для каждого конкретного эпизода. Motion Matching, в свою очередь, — это сбор огромного массива данных анимации, на основе которого создаётся база. При этом не разработчики, а сама игра, в зависимости от контекста, решает, какую анимацию из этой базы использовать для каждого конкретного случая.

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

Джон Линнеман, журналист Digital Foundry

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

В противовес «локальности» перечисленных выше инструментов, совсем иначе дела обстоят на рынке текстур и материалов, используемых для текстурирования и создания визуала ААА-проектов.

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

На подобных сайтах можно найти всё — от футуристичных архитектурных ансамблей до моделей грибов
На подобных сайтах можно найти всё — от футуристичных архитектурных ансамблей до моделей грибов

Раньше самым популярным решением в этой отрасли был сайт Quixel Megascans. Но недавно он, вместе с Unreal Marketplace, SketchFab и ArtStation, объединились в единую экосистему, создав при этом инструмент для быстрой интеграции с Unity и Unreal Engine. Так что теперь разработчикам стало ещё проще импортировать в проекты текстуры, объекты и целые заготовки локаций.

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

Инструменты оптимизации

Давным-давно… Ну, на деле, действительно довольно давно, в конце девяностых-начале нулевых, разработчики сталкивались со множеством трудностей, пытаясь, во-первых, оптимизировать размер игр (всё же Steam тогда ещё не был популярен а вот дискеты — очень даже), а во-вторых, добиться того, чтобы на разных устройствах игра работала одинаково хорошо.

Не только движок: какие технологии применяют в разработке ААА-игр

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

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

Одним из важнейших решений, которые пришли на рынок, стал формат кодирования Bink от RAD Game Tools, который был адаптирован как раз под устройства с низкой производительностью. При этом он позволял без дополнительных оптимизаций использовать себя на разных консолях, содержа в себе не только сами файлы, но и необходимые аудио- и видеокодеки. По сути, разработчиков избавили от необходимости перепаковывать сотни аудио- и видеофайлов под конкретную оболочку консоли.

Думаю, многие видели этот логотип, особенно в играх десятилетней и более давности
Думаю, многие видели этот логотип, особенно в играх десятилетней и более давности

Учитывая упор на оптимизацию без потери качества, это ПО получило просто чудовищное распространение — на октябрь 2019 года Bink использовался в более чем 14 000 игр для 14 разных игровых платформ.

RAD Game Tools, помимо Bink, выпустили и Oodle — семейство технологий для сжатия данных. Этот набор позволял сжимать файлы игры, снижая время загрузки уровней и даже оптимизировать сетевые пакеты, экономя столь дорогой в те временам интернет.

Не только движок: какие технологии применяют в разработке ААА-игр

Годы спустя, когда характеристики компьютеров и консолей подросли, а на смену дискетам пришли компакт-диски, разработчики столкнулись с другой проблемой — подгрузка 3D-моделей в память сильно снижала производительность. Решение простое — просто уменьшить количество полигонов. Но тогда возникала другая проблема — падение качества картинки.

Тогда-то и пришли к LODам — уровням детализации, которые позволяли на близкой дистанции подгружать «подробную» модель, а вдалеке — упрощенную. Вот только и те, и другие модели требовалось ещё сделать, с чем справлялась автоматизированная система понижения полигонов Simplygon. Её использовали довольно долго, например, в The Witcher 3, Paragon и Hellblade: Senua’s Sacrifice. А в 2017 году права на программу приобрела Microsoft, после интегрировав в Unreal Engine и Unity.

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

А что насчёт реальности?

Но неужели всё, что используют разработчики игр — это программы и плагины? Как дела обстоят с захватом данных из реального мира?

Ну, тут всё одновременно просто и довольно мудрёно. Естественно, все мы уже десятки раз видели ролики о захвате движений для анимаций и синематиков, показывающих рабочий процесс.

Тут тоже есть свои хитрости и интересные экземпляры. Например, несмотря на то, что мы привыкли к записи движений в студии, это необязательное условие. Существуют «полевые» комплекты. Например, Xsens MVN Motion Capture Suit, который позволяет захватывать весь спектр движений без сложного студийного оборудования.

Не только движок: какие технологии применяют в разработке ААА-игр

Или, к примеру, продукция Faceware, которая уже больше десяти лет выпускает различное ПО и специальные инструменты для захвата лица в реальном времени, причём даже без маркеров.

Помимо графики «из реальности» в игры переходит и звук. И ААА-студии уделяют ему огромное внимание не только на просторах игрового движка, но и в реальности.

Поэтому для записи некоторых аудиофайлов используется специальные бинауральные микрофоны, которые учитывают строение человеческой головы (и даже ушей!) для того, чтобы учесть расстояние между ушами, «звуковую тень» и отражения звука от головы и ушных раковин. Вот уже что можно назвать «АСМР на максималках».

Манекен для бинауральной записи; второй микрофон заслонён
Манекен для бинауральной записи; второй микрофон заслонён

Наконец, последним инструментом для «записи реальности», о котором я упомяну, станет фотограмметрия, то есть создание 3D-моделей и их текстурирование с помощью фотографий. Вообще, технология не нова и хитростей в ней также на отдельную статью.

Не только движок: какие технологии применяют в разработке ААА-игр

Например, существует такой приём как фотометрическое стерео, когда один и тот же объект освещают под разными углами, делая при этом снимки. С помощью такой хитрости можно получить карты нормалей (объёма) и альбедо более высокого кадра. Приём этот использовался в том числе при создании текстур поверхности в Battlefield V.

Сейчас на рынке представлены как программные решения, позволяющие объединить фотографии в 3D-объект (Meshroom, Agisoft Metashape, Substance 3D Sampler, 3DF Zephyr), так и специальные устройства, вроде фотограмметрических шкал Shining 3D, которые позволяют добиться высочайшей точности без трудозатрат. Но, пожалуй, при создании больших локаций, вроде гоночных трасс, нельзя обойтись без LiDAR-сканеров, которые используют лазерное сканирование для создания высокодетализированных 3D-моделей. В общем-то, к этому и прибегла Electronic Arts при разработке F1 25.

Не только движок: какие технологии применяют в разработке ААА-игр

Будущее геймдева

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

Но потенциал «бездушных машин», на деле, куда выше. Например, NVIDIA Omniverse Avatar Cloud Engine (ACE) предлагает быстрое и универсальное решение для оживления интерактивных аватаров в масштабе. Разработчики игр могут использовать ACE для бесшовной интеграции ИИ NVIDIA в свои приложения, включая NVIDIA Riva для создания выразительных голосов персонажей с помощью речи и перевода ИИ, или Omniverse Audio2Face и Live Portrait для 2D и 3D анимации персонажей с помощью ИИ.

Да, «анимация на лету», когда-то бывшая мечтой, всё ближе к статусу рабочей технологии. Крупные игроки рынка уже выпускают свои аналоги. У Unreal Engine это MetaHuman Animator, а у Unity — Ziva Dynamics.

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

К слову, они же (ну, не они, а другие модели) вполне могут заняться и озвучкой игры и созданием звуковых эффектов. Компания Altered AI предлагает более 20 голосов ИИ-актеров, способных менять тональность в зависимости от контекста.

Технология была использована на ранней стадии разработки игры Good Luck Have Fun, чем помогла разработчикам создать черновик дубляжа, над которым далее работали реальные актеры озвучки. Ну и, конечно же, уже сейчас энтузиасты выпускают «нейросетевые дубляжи» в случае, если разработчики не записали озвучку на их языке.

Использовать нейросети планируют и для тестирования. Этим занимается, к примеру, Electronic Arts, которая имеет в своей структуре целое подразделение SEED (Search for Extraordinary Experiences Division), они заняты разработкой нейросети для контроля качества и тестирования игр.

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

Не только движок: какие технологии применяют в разработке ААА-игр

Возможно, нас частично спасёт DirectStorage — технология для прямой загрузки данных с накопителя в видеопамять в обход оперативной памяти, но хорошо работает она только с быстрыми SSD. Снижение нагрузки на процессор, возможно, позволит перебросить часть его ресурсов на обработку частиц.

А может, свою лепту в спасение наших ПК внесут Neural Texture Compression и сеточные шейдеры. Первая технология позволяет сжимать текстуры высокого разрешения до семи раз с помощью нейросетей, экономя гигабайты на жёстком диске и в видеопамяти, а вторые, по сути, являются частичным перерождением Umbra и окклюзивного обрезания.

Пример оптимизации 3D-модели с помощью NTC: образец, базовый уровень сжатия, максимальный уровень сжатия
Пример оптимизации 3D-модели с помощью NTC: образец, базовый уровень сжатия, максимальный уровень сжатия

Mesh Shaders меняют количество полигонов в зависимости от расстояния до камеры и наличия объектов между ней и объектом, по сути заменяя собой LODы.

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

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

Написал NikRedArrow
Специально для торговой площадки FunPay
85
16
7
2
2
37 комментариев