Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sinbad/suss
Steve's UtilityAI SubSystem (for Unreal Engine 5)
https://github.com/sinbad/suss
Last synced: about 2 months ago
JSON representation
Steve's UtilityAI SubSystem (for Unreal Engine 5)
- Host: GitHub
- URL: https://github.com/sinbad/suss
- Owner: sinbad
- License: mit
- Created: 2024-02-29T17:36:44.000Z (10 months ago)
- Default Branch: master
- Last Pushed: 2024-04-12T16:24:08.000Z (9 months ago)
- Last Synced: 2024-04-13T17:14:43.529Z (9 months ago)
- Language: C++
- Size: 407 KB
- Stars: 15
- Watchers: 4
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: License.txt
Awesome Lists containing this project
README
# 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](https://www.gdcvault.com/play/1012410/Improving-AI-Decision-Modeling-Through)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 actionsThese 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:
* [Main classes](doc/MainClasses.md)
* [Settings](doc/Settings.md)
* [Brain Config](doc/BrainConfig.md)
* [Brain Update Tick](doc/BrainUpdate.md)