Skip to content

Why use Utility Intelligence?

High-quaility documentation

The documentation is written with care and is regularly improved to help you learn Utility Intelligence as easily as possible.
Besides the online version, we also have a PDF version for offline reading. You can feed it to any AI chatbot, and then ask it any questions you have about Utility Intelligence.
-> No more struggling with low-quality documentation that makes you feel frustrated and wastes your time.

I created this video to show you how to learn Utility Intelligence with DeepSeek. I like it because its deep thinking mode is incredible. If you don’t like DeepSeek, you can use any other AI chatbot you prefer.

But don’t forget to share your knowledge about Utility Intelligence in the channel: knowledge-base on our Discord server. I will select the most valuable content to include in our documentation. This will give your AI Assistant a larger knowledge base and be smarter.

Utility AI is better than Behavior Trees and Finite State Machines

I’ve written an article to explain why Utility AI is better than Behavior Trees and Finite State Machines for creating game AIs, you can read it here: Why use Utility AI instead of Behavior Trees and Finite State Machines to create AIs for your games.

Easy to debug

If you use Behavior Trees or Finite State Machines as your decision-making solution, you might find it hard to debug why your agents make wrong decisions at runtime as complexity increases.

With Utility Intelligence, you can preview which decision is chosen by modifying input values, such as health, energy, distance to target, and attack cooldown, directly in the Editor, without having to play the game.

Easy to maintain and scale

if you use Behavior Trees or Finite State Machines for decision-making, the cost of maintaining the behavioral structure will increase as the complexity of AI Behaviors increases. It is because the temporal coupling between decisions.

In Utility Intelligence, we use Utility AI for decision-making, which means decisions are made based on their scores. Therefore, there is no coupling between decisions, and they are independent of each other.

-> It’s easy to add, remove and change decisions, as well as adjust decision-making by tweaking the decision scores, without worrying about causing significant changes to the behavioral structure, as in Behavior Trees and Finite State Machines.

-> This ensures that your AI system remains manageable and scalable as its complexity increases.

Boost team productivity

Since decisions are made based on their scores, 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.

Higher Performance

Utility AI allows us separate decision-making from decision-execution, turn them into two distinct processes, and run each process at a different frequency.

For example, we can run the decision-execution process every frame while running the decision-making process only every 0.1s or every 0.5s by adjusting the decision-making interval to suit your game’s needs.

Moreover, you can even distribute the decision-making process across multiple frames to balance the workload, or manually run the decision-making process when necessary. This approach significantly improves your game’s performance.

This is difficult to achieve if you use Behavior Trees (Finite State Machines) because decision-making is closely tied to decision-execution by nature in these systems and it’s hard to separate.

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.

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:

Many optimization tricks

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, 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

Last update : February 15, 2025
Created : September 1, 2024