Долгое время разработчики DOOM: The Dark Ages сталкивались с проблемой, которая постепенно превращала проект в тяжеловесный архив: старая архитектура движка не справлялась с современными требованиями — каждый новый уровень, текстура и освещённая сцена добавляли гигабайты к финальному весу игры. В какой-то момент команда приняла непривычное решение — использовать трассировку лучей не только ради визуала, но и как инструмент для сокращения объёма контента. Эта статья объясняет, почему так произошло, как именно трассировка помогла уменьшить размер игры и какими компромиссами пришлось пожертвовать.
Что пошло не так с движком
Накопление данных: текстуры, lightmap и дубли
В традиционном подходе к освещению разработчики заранее «запекают» свет и тени в lightmap — специальные текстуры, которые содержат информацию о статичном освещении сцен. Для масштабного проекта это быстро превращается в лавину больших файлов: отдельные lightmap для каждого уровня, множества объектов и вариаций освещения. К тому же для качества используют высокие разрешения и огромные атласы текстур, что ещё сильнее раздувает объём.
Сложная геометрия и оптимизационные патчи
Движок, заложенный в основе DOOM: The Dark Ages, изначально создавался под другой набор задач. При попытке добавить современные эффекты команда вынуждена была применять патчи и наработки поверх базовой архитектуры: дублирование геометрии для разных LOD, отдельные версии моделей для освещения, обходные решения для отражений. Всё это увеличивало не только размер игры, но и поддержку, затрудняя дальнейшие оптимизации.
Почему трассировка лучей стала решением
Отказ от массивных lightmap в пользу динамического освещения
Трассировка лучей позволяет рассчитывать освещение в реальном времени, без необходимости хранить большие lightmap на диске. Вместо сотен мегабайт запечённых текстур сцены получают динамическое освещение, которое вычисляется на лету. Это означает, что можно убрать множество больших файлов из релиза, заменив их компактными шейдерами и настройками материалов, которые занимают гораздо меньше места.
Унификация материалов и минимизация ассетов
С переходом на трассировку разработчики могли пересмотреть способ хранения материалов: вместо нескольких версий той же текстуры под разные условия освещения и отражений достаточно одной базовой карты свойств (albedo, roughness, metallic) и универсальных алгоритмов расчёта. Это уменьшает количество дублирующихся текстур и моделей, снижая общий вес проекта.
Плюсы и минусы такого выбора
Преимущество очевидно — уменьшение дискового пространства за счёт отказа от тяжёлых предзаписанных данных. Однако трассировка потребляет ресурсы GPU во время запуска игры и в процессе рендеринга. Команда внедрила гибридную систему: на мощных видеокартах активна трассировка, на слабых остаётся оптимизированная растеризация с уменьшенным числом lightmap и агрессивной стриминговой загрузкой ассетов. Такой компромисс позволил сохранить доступность игры, не возвращаясь к старой модели тяжёлых данных.
Как внедрение изменило процесс разработки и релиза
Оптимизация пайплайнов и пересоздание ассетов
Перекладка на динамическое освещение потребовала пересмотра инструментов художников: многие текстуры были переработаны в компактные PBR-карты, переосмыслена система LOD и стриминга уровня. Частично это — затратная по времени работа, но она дала долговременные плюсы: единый формат материалов и меньше версий одного ассета упрощают дальнейшие обновления и патчи.
Технические ограничения и планы на будущее
Трассировка лучей вносит дополнительные требования к железу, поэтому команда разработала адаптивные настройки: отключаемые эффекты, динамическое качество трассировки и гибкая система загрузки ассетов. В будущем планируется расширять спектр аппаратных оптимизаций и улучшать гибридный рендеринг, чтобы ещё сильнее снизить зависимость от предзапечённых данных и сделать игру компактнее без потери визуальной выразительности. Заключение Переход на трассировку лучей в DOOM: The Dark Ages — не просто дань моде на современные визуальные технологии.
В данном случае это прагматичный шаг, вызванный необходимостью избавиться от архитектурных недостатков и огромного числа предзаписанных данных, раздувающих объём игры. Решение потребовало переработки ассетов и гибких настроек для разных конфигураций железа, но в итоге позволило сократить вес релиза и упростить дальнейшую поддержку проекта, сохранив при этом впечатляющую картинку.
