Как создавали «Ведьмака 3»: технологии и графика
История разработки самой влиятельной action-RPG в индустрии. Часть 4.
Мы продолжаем цикл материалов о создании знаковой, особенно в нашем пространстве, игры «Ведьмак 3». О работе над нарративом, принципах хорошего повествования и проблемах разработки, можно прочесть здесь.
Сейчас же речь пойдет о технологической стороне игры: как разработчики создавали красивую картинку, какие технологии использовались, и получилось ли добиться единого опыта для всех игроков, вне зависимости от платформы.
Движок REDengine 3
CD Projekt RED всегда позиционировала себя как студия на передовой графических технологий. После неудачного опыта с движком Aurora поляки взялись за создание своего движка REDengine — и долгие годы удачно работали с ним, адаптируя под свои нужды.
Когда речь зашла про консольный порт «Ведьмака 2», программисты не просто сократили оригинальный рендер для версии Xbox 360. Они переписали его с нуля, что позволило добиться отличного результата. Устаревшее «железо» консоли не тянуло графические навороты, поэтому в данной версии игры была ограничена дальность прорисовки, снижено качество текстурных карт, а разрешение кадрового буфера составило всего 1280x672. Однако конечный результат все равно получился выше всех похвал.
«Ведьмак 3» сразу разрабатывался не только на ПК, но и на новые (для того времени) консоли — Xbox One и PlayStation 4. Это порождало у игроков и технических специалистов массу вопросов. Как минимум, получится ли у студии сделать приблизительно одинаковую картинку на всех платформах, и сможет ли команда добиться прогресса в ПК-версии.
Для «Ведьмака 3» разработали новую версию движка — REDengine 3. По плану на нем также должен был работать Cyberpunk 2077, но в итоге RPG-шутер вышел заметно позже и уже на следующей версии REDengine.
Среди основных преимуществ движка: поддержка 64-битного рендеринга с HDR-тонированием цвета, полностью тесселированное окружение и алгоритм потоковой передачи данных. Тесселяция сделала поверхность земли, скал и архитектуру более объемными. А потоковая передача данных значительно улучшила производительность движка в бесшовном открытом мире.
Игровой мир The Witcher 3 в 25 раз больше, чем у предшественника, и свобода передвижения в любом направлении — новинка для серии. Теперь Геральт умеет залезать на возвышенности с помощью прыжка, плавать под водой, путешествовать на лодке, а также скакать на лошади из одного конца карты в другой. Ожидаемо, что эти фичи и огромные пространства без подзагрузок исключали разработку игры под устаревшие PlayStation 3 и Xbox 360.
Для создания живописных ландшафтов и их обитателей используется HDR-рендеринг, а также улучшенная лицевая анимация и усовершенствованная система мимики в диалогах. Благодаря последней рот NPC при разговоре двигается в соответствии с произнесенными словами. REDengine 3 поддерживает объемные облака, туман и дым, а также текстуры сверхвысокого разрешения. Его рендерер может создавать впечатляющий набор кинематографических эффектов.
Еще в движке реализовали новую передовую систему потоковой загрузки, которая позволяет The Witcher 3 плавно переходить от небольших мест вроде деревни к обширным открытым локациям, не прерывая игровой процесс экранами загрузки, которые рушат погружение. Модернизированный движок достигает этого, незаметно подгружая новые локации в фоновом режиме прямо во время игры.
Сотрудничество с NVIDIA
Для большей реалистичности созданного мира CD Projekt RED сотрудничала с NVIDIA над интеграцией технологии GameWorks в «Ведьмака 3». Самой удивительной функцией GameWorks в тот момент была HairWorks, которая в реальном времени рендерит и обсчитывает поведение отдельных прядей волос персонажей, а также шерсти монстров и животных.
HairWorks придает фирменной белой гриве Геральта дополнительный объем и пышность. Кроме того, борода героя растет по мере прохождения. Ее можно оставить в покое, пока Геральт не превратится в мудрого старца, а можно регулярно подстригать у цирюльника — и делать модные стрижки.
Технология меняет и облик обитателей мира: Плотва, грифоны, бесы и масса других монстров выглядят совсем иначе из-за реалистичной симуляции меха с тысячами прядей динамических тесселированных волос.
Мир «Ведьмака 3» приобретает дополнительный уровень реалистичности благодаря технологии GameWorks HBAO+, которая создает высококачественные рассеянные тени на каждом персонаже, объекте, поверхности и листве в игре. Все это позволяет создать более яркий мир, в котором каждая деталь выделяется естественным образом.
Также команда разработчиков реализовала постпроцессное сглаживание — технологию, которая значительно уменьшает неровные края объектов в окружении, и блюм — эффект постобработки, который добавляет свечение к ярким областям изображения и реалистично отбрасывает свет на различные поверхности. Среди других новинок движка — глубина резкости и блюр.
Кроме того, NVIDIA внедрила в игру свой физический движок PhysX. Технология PhysX Clothing обеспечивает максимально реалистичное движение одежды персонажей, паруса кораблей и даже конских хвостов. В свою очередь, PhysX Destruction позволяет реалистично разрушать объекты и декорации без заметного снижения производительности. Именно благодаря ей использование знака Аард превращает деревянные заборы в щепки, а бочки взрываются с оглушительным грохотом.
Технологии и оптимизация
Что касается разработки игры на различные платформы, CD Projekt RED отлично справилась с оптимизацией для более слабого «железа», которое в том поколении было у Xbox One. На выставке E3 2014 авторы показали геймплейное демо, снятое на Xbox One. Ролевой экшен про Геральта почти все время работал со скоростью 30 кадров в секунду и не отпугивал разрывами картинки. Очень даже неплохой результат для первой мультиплатформенной игры студии, причем за год до релиза.
Сверхмощные ПК смогут достигать более высоких разрешений, и на них игра, вероятно, будет работать быстрее. Но план состоит в том, чтобы сделать игровой процесс одинаковым для всех игроков и обеспечить всем равные возможности.
Достичь этого совсем не просто, и команда столкнулась с несколькими проблемами оптимизации игры для консолей.
Динамические тени очень затратны, эффекты постобработки также очень затратны, так что это просто вопрос оптимизации и разумного использования архитектуры.
У создателей, разумеется, был опыт с DirectX API на ПК, поэтому работа над версией для Xbox One была чуть проще.
Тот факт, что мы можем использовать DX11 на Xbox One и ПК, упрощает некоторые задачи. Нам приходится прикладывать немного больше усилий при разработке для PlayStation 4, но нет ничего, с чем мы не справились бы, и что могло бы создать проблемы.
Программисты добавили в движок плагин Umbra 3, после чего рендеринг геометрии на каждой платформе стал управляться на основе видимости. Например, детали окружения вроде зданий или леса динамически удаляются, если их заслоняет другой объект. Это эффективный способ управления на таком масштабном ландшафте, и в результате всплывающие объекты сведены к минимуму. В каком-то смысле это предвестник технологии Mesh Shading, который позже полноценно реализовали лишь в недавнем Alan Wake 2.
Также команда переработала систему анимации, чтобы игроку было проще изучать окрестности. В репертуар Геральта добавлены анимации прыжков, преодоления препятствий, захватов и ныряний, что позволяет ему перемещаться по миру более гибкими способами. Движения больше не кажутся жестко заскриптованными, чем грешила предыдущая игра студии.
Мы используем анимацию IK (инверсивной кинематики), чтобы вы могли реалистично хватать предметы, передвигаться по местности и так далее.
Эта технология (ранее похожая встречалась в God of War: Ascension) позволяет каждому шагу и захвату уступа работать динамически, в зависимости от особенностей рельефа. Учитывая, что авторы The Witcher 3 создали ландшафт с выраженной вертикальностью, от фьордов и болот до средневековых городов, новая система анимации попросту необходима, чтобы избежать неестественных заскриптованных движений. Ну и тогда еще не было готовых библиотек вроде Motion Matching.
Обновлению подверглись и персонажи. Для Геральта и других важных героев использовали тональную компрессию и шейдеры кожи, которые повысили реалистичность каждого лица в движении. Выделяются и другие детали: от того, как подпрыгивают волосы Геральта, когда он скачет на лошади, до моделирования ткани на струящихся платьях.
Важным апдейтом стало освещение. В The Witcher 3 добавлены погодные системы и циклы смены времени суток, характерные для огромного мира (где определенные монстры появляются в конкретные часы). Например, во время игры легко можно засмотреться, как низкое солнце пробивается сквозь просветы в деревьях, а каждый луч света рассеивается по экрану (даже в версии Xbox One). Картинка стала куда ближе к фотореализму и радует своей глубиной и насыщенностью. На ПК же изображение вообще чудесное — игра стала одной из самых красивых в 2015 году.
Версия для Xbox One из-за слабого «железа» работает в разрешении 900p, которое динамически масштабируется до 1080p. В дополнение к эффектам постобработки в игре используется временное сглаживание — подход, при котором текущий и предыдущий кадры смешиваются вместе, чтобы уменьшить визуальный шум при движении камеры. Это шаг вперед по сравнению с аналогичной технологией прошлого поколения, где наблюдалось очевидное двоение.
В следующий раз мы расскажем, что вырезали из игры и историю создания полюбившегося массам гвинта. А вам понравилась техническая реализация оригинальной версии «Ведьмака 3»? Или ремастер 2022 года во всем лучше?