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.