Epic Games активно работает над решением проблем с компиляцией шейдеров в Unreal Engine 5, однако пользователям придётся мириться с рывками и подтормаживаниями ещё какое-то время. Причина кроется не только в самом движке, но и в процессе разработки современных игр.
На недавнем ивенте Unreal Fest в Орландо компания Epic не только продемонстрировала будущие возможности Unreal Engine 5 на примере технического демо The Witcher 4 от CD Projekt RD, но и провела различные учебные сессии для разработчиков. Особой популярностью пользовались семинары, посвящённые устранению притормаживний при компиляции шейдеров и основным причинам проблем с производительностью в играх на UE.
Согласно комментариям в социальных сетях, корень проблемы – сам Unreal Engine, и в этих утверждениях есть доля правды. Современные высокобюджетные игры с продвинутой графикой используют десятки тысяч шейдеров, многие из которых крайне сложны, и графические процессоры не могут их обрабатывать до завершения компиляции.
Ранее в этом году Epic опубликовала блог, указывающий, что метод компиляции шейдеров (или, точнее, объектов состояния конвейера – pipeline state objects) в старых версиях UE был неидеальным. Для Unreal Engine 5.2 и новее рекомендуется использовать PSO precaching, который можно применять вместе со старым методом.
Ни одно решение не идеально на 100%, хотя Epic продолжает работу над улучшениями. Учитывая прогресс, есть повод полагать, что механизм, полностью устраняющий рывки при компиляции шейдеров все же появится в будущем.
Однако после презентации Obsidian о создании графики для Avowed стало очевидно, что проблемы с производительностью будут присутствовать ещё некоторое время из-за особенностей разработки крупнобюджетных игр. Obsidian начала создавать Avowed на Unreal Engine 4, затем перешла на Unreal Engine 5 в процессе разработки, а финальная версия игры вышла на UE 5.3.2 в феврале.
К моменту релиза UE 5.5 уже была доступна, так почему Obsidian не использовала самую последнюю версию для лучшей производительности? Один из возможных ответов – размер команды: всего 140 человек участвовало в разработке Avowed (100 внутренних сотрудников, 40 внешних), но только 15 из них входили в техническую команду, а графическим программированием занимались лишь четверо.
Obsidian также выбрала Xbox Series S в качестве эталонного железа, т.е. платформы, вокруг которой формировались ожидания по производительности. Разработчики стремились к 30-40 кадрам в секунду на этой консоли, с возможностью до 60 fps на Series X и ПК. Сравнивая разницу в разрешении и используемых техниках рендеринга, очевидно, что достижение желаемого уровня графической детализации на Series S было сложной задачей, потребовавшей значительных временных затрат.
Последняя версия движка, UE 5.6, наполнена улучшениями производительности (технология Nanite Foliage, показанная в техническом демо The Witcher 4, появится только в 5.7), но если игра выпускается на версии 5.4 или старше, она не может использовать эти преимущества.
Кроме того, многие улучшения в UE 5.6 требуют не просто включения одной опции. PSO precaching, например, активирован по умолчанию, но программистам всё равно необходимо разработать стратегию решения проблем с компиляцией шейдеров и написать код для корректной работы всей системы.
Сессии Epic по улучшению производительности UE на Unreal Fest были переполнены (на семинар о компиляции шейдеров было невозможно попасть), что ясно показывает: разработчики осознают, как игровое сообщество воспринимает Unreal Engine. Есть надежда, что AAA и AA игры, которые мы увидим в ближайшем будущем, будут использовать последние версии UE, и проблемы с компиляцией шейдеров и рывками при перемещении станут историей.
До тех пор остаётся надеяться, что разработчики, использующие Unreal Engine, полностью учтут рекомендации Epic, а компании дадут программистам время и возможность должным образом изучить доступные инструменты. Оптимизация – это не волшебная кнопка, и, требует гораздо больше времени, чем обычно доступно.
Источник новости: shazoo.ru