Homepage | Asset Store | Join Us On Discord
Utility Intelligence is a robust and powerful Utility-Based AI Framework. It seamlessly integrates Utility AI, Behavior Tree, and Finite State Machine into a unified and coherent framework. Each method is used where it performs optimally, leveraging their strengths while eliminating their weaknesses.
- Utility AI is used for decision-making. It allows agents to make the best decisions based on the current situation.
- Behavior Tree is used to create and execute decision tasks. It allows agents to execute the tasks of their chosen decision sequentially or simultaneously.
- Finite State Machine is used to manage the decision states and transitions between decisions. It allows agents to manage their decisions effectively and switch smoothly from the current decision to the chosen decision once it’s been made.
Utility Intelligence allows agents to make decisions based on scores. Therefore, designers can adjust the decision-making process 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 from game design, thereby keeping your AI System manageable and scalable as its complexity increases.
Utility Intelligence offers an intuitive and powerful Editor with many robust features that allow you to create complex AI Behaviors and Logic with ease.
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.
- Undo & Redo: Undo & Redo every user actions (Ctrl + Z & Ctrl + Y)
- 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:
- Built-in Inputs
- Built-in Input Normalizations
- Built-in Action Tasks
- Built-in Target Filters
- Built-in Blackboard Variables
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.
- And much more to discover…