Epic Games решает проблему заиканий в Unreal Engine – новая технология PSO Precaching
Проблема заиканий и подтормаживаний в играх на Unreal Engine давно беспокоит игроков. Такие крупные проекты, как A Plague Tale: Requiem, Senua’s Saga: Hellblade II и Black Myth: Wukong, сталкивались с резкими просадками кадров, особенно на ПК. Основная причина – компиляция шейдеров в реальном времени, вызывающая кратковременные зависания во время геймплея.
Ранее разработчики использовали метод предварительного кеширования Pipeline State Objects (PSO), но он требовал много ресурсов и не всегда работал в динамических сценах. Теперь Epic Games представила PSO Precaching – технологию, которая предварительно загружает нужные шейдеры при загрузке уровня или появлении объекта в кадре.
Как это работает?
Новая система анализирует игровые сцены, определяя, какие PSO понадобятся, и загружает их до начала рендеринга. Это снижает вероятность заиканий, так как игра не делает внезапных запросов к видеокарте во время геймплея.
На примере Fortnite – в одном матче используется до 10 000 PSO, а потенциальное их количество может исчисляться миллионами. PSO Precaching позволяет заранее подготовить только нужные данные, обеспечивая более плавную картинку.
Однако Epic Games признает, что новая система не решает проблему полностью. Глобальные шейдеры, используемые в пост-обработке (тени, размытие в движении, отражения), все еще могут вызывать подвисания. Разработчики продолжают оптимизацию, в том числе автоматическое управление размером кеша PSO, чтобы снизить нагрузку на память.
Epic Games рекомендует разработчикам использовать последние версии Unreal Engine, анализировать зависания во время разработки и избегать устаревших API вроде DirectX 11, которые не имеют эффективных инструментов борьбы с заиканиями.
Если новая технология оправдает ожидания, будущие игры на Unreal Engine смогут работать без проблем с заиканиями, а игрокам не придется ждать патчей для исправления производительности.