Wise Feline Utility AI for Unity

Wise Feline is a utility AI and influence maps system which allows you to make immersive AI with ease. It works great for agents in complex situations and has a great visual debugger.

Why use Utility AI?

Utility AI is easier to manage than state machines and behavior trees and you can make your characters, environments and even cameras behave in a more natural and less dry/scripted manner.

Behavior trees are more managable than FSMs (Finite state machines) but they can become easily very complex too and when they have to handle complex behaviors, the trees become almost impossible to read and understand. They also depend on the order of nodes which makes them even harder to understand and modify.

Finite state machines, while being the oldest approach used have their own drawbacks too. You need to explicitly create all state transitions and you have to anticipate all things which can happen. Their complexity can easily go out of hand too.

Utility AI works based on actions and their importance score at each tick and this means you can change your agent’s behavior based on the environment very easily. you can make your character more brave by having score considerations which give a higher score if friendly forces are around and … Not that it is impossible to achieve the same thing with other approaches but it is very hard. With utility AI agents can have awesome environmental awareness and go persoanl and team transformations which feel very realistic from the player’s viewpoint.

Since actions and utilities is the way that us human think and evaluate situations with, designers can map human experiences much easier to the game agents. Why think of selector nodes and decorator nodes and state transitions, if you can think about in what situations is this action important and how much?

Features

There are only a few concepts to learn, mainly actions, considerations and agents. Each agent has a set of actions to choose from and each action is scored by scoring a set of considerations which show how important the action is at the moment.

You only need to derive from ActionBase and ConsiderationBase to create new actions and considerations and then drive your agent inside your action code. You only have to attach a single new component to your AI agents to be driven by utility AI.

There is a window to design your AI by setting consideration curves and choosing how much a consideration affects an action for a specific agent and also to debug action scores at runtime. You can examine what score exactly each action got at each frame and how to modify the curves to get the result you want. Your agent doesn’t set enemies on fire as much as you want? make the curve for the Love Of Fire consideration more steep!

The ultimate version contains an influence maps module which allows you to do spatial queries like where in the map doesn’t contain enemies but lots of trees are there for cutting? Where can I throw my grenade to apply the most damage? Where are the paths which cargos usually use so I can ambush them?

Each action which needs a target is scored once per target and the best target is chosen. The targetting system is flexible and allows you to find the targets for each action in any way you want. Do you want to use a manager class which knows all the targets? a sphere cast? some custom made system? it is just a callback in Wise Feline and we won’t limit you. There is only an upper limit of number of targets per action which you can use so the system doesn’t spend too much time looking at too many objects.

The ultimate version of the package contains a growing list of modules which currently contains an AI Tag system which allows you to tag objects and query for objects in a sphere and check their tags pretty fast. Do you want to find all foods around an NPC so he/she can eat one of them? Just search for objects tagged food around its position and find them without doing raycasts and using a fast octree. Add tags like enemy, leader or target to objects at runtime so other AIs can dynamically do something to it. The usecases are endless and unlike unity tags, these tags are not only queriable using spatial queries but also don’t have limits on their count.

We are adding influence maps and other modules as well.

The asset doesn’t use heavy APIs and doesn’t use lots of memory, also since you can choose how often different AI systems from finding targets to calculating scores run per agent, you can optimize the system for your game. Do you want far away agents to run less often? Do you want them to change their targets less often? just change two values in the Brain component based on their distance to the player and that’s it.

We don’t know all of your project needs so the asset ships with all source code including the editor code and UI toolkit based UI.

The asset doesn’t use any super complex useless abstractions. It uses scriptable objects for storage and everything can easily be added to and even examined by editor scripts outside the systems. None of the classes are big and everything is documented fairly well and systems are designed in a way that makes it easier to change a class’s internals without the need to change the classes using it.

Both versions of the package contain a blackboards module which help you share information between different parts of your AI and make reusable actions and considerations.

There is extensive API documentation and a manual which describes how to code for the system with a complete example scene which we will add to over time.

We provide fast email support and take feature requests seriously. We also do custom development for your projects and can help you ease into the awesome world of utility AI.

Features comparison

  • FEATURES
  • Base Utility AI
  • Black Boards
  • premade actions and considerations
  • Action Priorities
  • Different action selection modes
  • Influence maps
  • AI tags
  • Octree
  • Lite version
  • YES
  • YES
  • NO
  • NO
  • NO
  • NO
  • NO
  • NO
  • ultimate version
  • YES
  • YES
  • YES
  • YES
  • YES
  • YES
  • YES
  • YES

The Lite version of the package with less modules and without influence maps which is upgradable to the ultimate version is available here.

Discord | Documentation | Forum Thread

A video tutorial from one of our users

Wise Feline allows you to create complex immersive agents which can act correctly in complex situations which even the designers did not think of. Big games including the sims, guild wars 2 and many others use a form of utility AI and influence maps which both exist in this package.

The ultimate version of the package contains a growing list of additional modules which the Lite version doesnt have.

For the list of modules check features.

With Wise Feline you don’t need to create huge and hard to follow state machines and behavior trees and instead you can give all of your actions a scoring mechanism which tells the system how important each action is at a moment in time. Because all actions are considered all the time, your AI will never be out of good options and it chooses the best action for the situation in a pretty intuitive way.

Your designers no longer have to add specific transitions in state machines or conditions and nodes in behavior trees. By tweaking importance and utility of actions relative to each other in a utility AI system, they can easily change the behavior of the agents in an intuitive way and check why something behaves the way it does in the visual debugger.

Because all actions are considered all the time and you can add as many actions as you want with as many scoring conditions as you want, Wise Feline is perfect for games with emergent gameplay, open world games, virtual worlds, metaverses and MMOs but it can be used not only for agents in almost all genres but you can even use it to drive things like lighting, cameras, VFX and …

State Machines and behavior trees still can be the tool of choice if you want very specific strict behavior which should be scripted exactly but if you want your agents to behave and think like humans or always choose something from their entire set of actions instead of only being able to go to specific states from a single state, Utility AI is your best bet.