UE5-сцена: 100 000 ИИ и 12K снарядов за 10 мс на гейм-треде — Game Design Radar
← Все посты

UE5-сцена: 100 000 ИИ и 12K снарядов за 10 мс на гейм-треде

18.12.2025
UE5-сцена: 100 000 ИИ и 12K снарядов за 10 мс на гейм-треде

Инди-разработчик Allie Bri поделилась прогрессом по интерактивной симуляции толпы в Unreal Engine 5: сцена с 10 000 врагов и более чем 12 000 снарядов в секунду при времени гейм-треда около 10 мс на 100 000 AI-агентов.

Ключевые технические решения

Текущая версия проекта — результат многолетних экспериментов и оптимизаций. Ранее попытки разработчика упирались примерно в 10 000 сущностей, после чего нагрузка на CPU становилась критичной. Теперь система стабильно обрабатывает порядок 100 000 AI благодаря ряду архитектурных решений.

Многопоточность и параллелизм

Логика проекта активно использует многопоточность и параллельные вычисления. Основной упор сделан на:

  • минимизацию взаимозависимостей данных между потоками;
  • корректное выравнивание данных под кэш (cache alignment);
  • data-oriented design — хранение и обработку данных в формах, удобных для CPU и кэшей, а не для объектно-ориентированной структуры кода.

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

Потенциал дальнейшей оптимизации

Разработчик отмечает, что текущая версия ещё не предел. Возможные направления улучшений:

  • использование более оптимизированных структур ускорения (acceleration structures) для пространственных запросов и поиска соседей;
  • перенос части вычислений на GPU (GPU computing) для разгрузки CPU;
  • дополнительные низкоуровневые оптимизации в рамках выбранного data-oriented подхода.

Оптимизация визуала: health bars

Отдельно выделена реализация индикаторов здоровья. Вместо стандартных UI-виджетов используются:

  • импортированный quad-полигон как Instanced Static Mesh;
  • простой материал с использованием World Position Offset (WPO), чтобы планка разворачивалась к камере как billboard.

Такой подход позволяет выводить большое количество индикаторов над персонажами с минимальными накладными расходами рендеринга и без затрат, характерных для UMG/Widget-систем.

Выводы

  • Грамотный data-oriented дизайн и работа с кэшем позволяют масштабировать AI до сотен тысяч сущностей.
  • Многопоточность и продуманное разбиение данных критичны для высокой производительности на CPU.
  • Даже UI-элементы (health bars) нужно проектировать с учётом производительности — через instancing и простые материалы.
  • В проекте остаётся значительный запас для роста за счёт GPU-вычислений и улучшенных структур ускорения.