/SUSS

Steve's UtilityAI SubSystem (for Unreal Engine 5)

Primary LanguageC++MIT LicenseMIT

Steve's UtilityAi SubSystem for Unreal Engine 5

Principles

I suggest you watch this video to become familiar with the concepts of Utiliy AI: Introduction to Utility AI

In SUSS, this is implemented as follows:

  • An AI can perform one of a number of Actions, which are the concrete steps associated with a decision.
  • Potential Actions are scored against each other, and one of them will be picked based on this score (plain best, or weighted random with a cut-off)
  • Actions are scored within potentially multiple Contexts (e.g. doing Action 1 to Target A, or to Target B)
  • Contexts are generated by Queries e.g. currently perceived targets, available attack abilities
  • Actions are scored by one or more Considerations, the results of which are multiplied together
  • Considerations are calculations taking an Input derived from the Context and applying a Curve
  • Inputs can be character attributes (e.g. health, ammo), or any other value which can be derived from a Context
  • Curves can be algorithmic (linear, quadratic, exponential etc) or a custom curve asset
  • Actions can belong to Priority Groups to provide a preference hierarchy for actions

These things together mean you can make your AI agents make intelligent decisions in a way that's much easier to extend and incrementally add complexity to than many alternative approaches.

SUSS comes with quite a few utilities but you can create your own versions of any of these elements in order to define your AI exactly as you want.

Next steps: