Documentation | Discussions | Join Us On Discord
Utility Intelligence is a robust and powerful Utility AI Framework. It allows agents to make decisions based on scores. Therefore, designers can adjust decision-making by tweaking the decision scores, without needing support from developers to change the behavioral structure, as required in Behavior Trees and Finite State Machines.
-> Designers and developers can work independently without affecting each other.
- Designers: Focus on adjusting the decision scores to ensure the best decision is chosen in any situation.
- Developers: Focus on creating and executing new decisions based on the game design document.
Utility Intelligence is designed with modularity in mind, making it easy to manage and customize your AI Behaviors, as well as adapt to constant changes in game design, thereby keeping your AI System manageable and scalable as its complexity increases.
Additionally, Utility Intelligence offers an intuitive and powerful Editor with many robust features that allow you to create complex AI Behaviors and Logic with ease.
❓What is Utility Intelligence?
💡Why use Utility Intelligence?
🤔Why use Utility AI instead of Behavior Trees and FSMs?
💎HIGHLIGHT FEATURES
🛠️An intuitive and powerful Editor
We offer an intuitive and powerful Editor with many robust features that allow you to create complex AI Behaviors and Logic with ease:
- Status Preview: Preview the score of each decision and which decision is chosen based on the input values and response curves directly in the Editor, without having to play the game.
- Consideration Editor: See how the input and the response curve will affect the consideration score without having to visualize it in your head.
- JSON Editing: Manually edit the Intelligence Data in JSON format using your Text Editor then import it to the Intelligence Asset
- Runtime Status: View the current status of multiple components during runtime. It is similar to Status Preview but includes additional runtime information, such as the best target for each decision, and the current status of considerations and action tasks.
- Runtime Editing: Tweak your AI Behaviors during runtime for testing purposes without having to replay the game.
- Runtime Editor: The Utility Intelligence Editor can function both at editor time and at runtime in builds. This feature enables users to adjust variables in the Utility Intelligence Editor to observe how they affect the agent’s decisions for testing purposes in builds.
- Lockable Editor: Lock the Intelligence Editor on a specific Utility Agent, allowing users to modify variables from other Game Objects through the Inspector Window and see how they affect the decision scores in the Intelligence Editor.
- Field Attributes: Show/hide and group your fields in the Intelligence Editor.
- Dark & Light themes: The Utility Intelligence Editor supports both Dark and Light themes and will automatically match the theme of the Unity Editor.
🧩Modular System Design
- Considerations: Our modular consideration system allows you to adjust the score of each decision by adding, removing, or changing considerations, ensuring that the best decision is chosen in any situation.
- Target Filters: Our modular target filter system allows you to filter the targets for each decision by adding, removing, or changing target filters, ensuring that the decision is scored and executed with the appropriate targets.
- Action Tasks: Our modular task system, created using Behavior Tree, allows you to easily customize and adjust each decision's behavior by adding, removing, or changing action tasks, making it easy to adapt to constant changes from game design.
- Blackboard Variables: Share information between multiple components such as inputs, input normalization, and action tasks using Blackboard Variables.
🎁Many example scenes
We offer many example scenes to show you how to use Utility Intelligence to create AIs for your games:
- StraightArrowOnly
- StraightArrow vs CurvedArrow
- Chaser vs Evader
- Chaser & Patrol vs Evader & FindEnemy
- Swordsman vs Swordsman
- Axeman vs Axeman
- Archer vs Swordsman
- Crossbowman vs Swordsman
- Team vs Team
- Runtime Editor
🎯Many built-in components
We offer many built-in components to help you create game AIs more easily and quickly, saving you a significant amount of time:
🚀High performance
- Zero GC.Alloc after Init
- We offer many optimization tricks to help you discard unnecessary calculations and improve your AI’s performance:
- Discard considerations if the decision cannot possibly beat the other ones.
- Discard decisions and decision makers if they cannot possibly beat the other ones.
- Cache the calculated results from inputs, input normalization, considerations, decisions and reuse them in other places.
- Adjust the decision-making interval, such as 0.1s or 0.5s, depending on your game's needs.
- Distribute the decision-making task across multiple frames to balance the workload, reduce computational burden per frame, and avoid performance spikes.
⚡Many oscillation reduction tricks
We offer many oscillation reduction tricks to minimize the oscillation between decisions:
- Momentum Bonus
- Decision Weight
- Keep running the decision tasks until they are finished
🎉What's more:
- Full source code included
- Responsive support
- High-quality documentation
- Online documentation
- Offline documentation in PDF with a well-designed layout. You can also upload it to AI chatbots to ask them any questions you have about Utility Intelligence.
- -> No more struggling with low-quality documentation that makes you feel frustrated and wastes your time.
- And much more to discover...
📢THIRD PARTY NOTICES
This package uses some components from the following projects. For more details, see ThirdPartyNotices.md file included in the package.
- Curvature under BSD-3 license.
- Trove Utility AI under MIT license.