AI Optimizer Subsystem helps to optimize the game by reducing cost of Actors that are away from Players.
Its main purpose is to be used with AI agents.
However it also can be used to optimize any actor in the game depending on your needs.
It could be simulating physics actor that you only want to persist when is near the player,
or a pickup actor that should only persist when player is close to it etc.

AI Optimizer DISABLED - 1500 AI Characters ~9 FPS

AI Optimizer ENABLED - 1500 AI Characters ~50 FPS

AI Optimizer Subsystem consists of 3 main classes

  • Subsystem - It's like a Manager that holds references to all registered subjects & Invokers, does the calculations, spawns and despawns subjects, caches its data etc.
  • Subject ( AI Character ) - Actor that is meant to be optimized.
  • Invoker ( Player ) - Actor to whom system makes calculations from all Subjects to decide what optimizations should be applied.

Subsystem can be accessed with pressing Left Mouse Button -> AIOptimizer Subsystem.
There are few functions that can be used, but most of them are being called automatically.
They will be described in SubjectComponent section.

In C++ Subsystem can be accessed with this code