VisAI splits AI functionality into 3 core pieces. Behaviour, Decision, and Action.
Behaviours are the Structure of an AI, giving you a comprehensive way to plan dynamic AI behaviour.
Decisions are the Thought of the AI, giving you complete control over the way your AI plans its next move.
Actions are the Instructions for the AI, giving you a straightforward way to bring life to your AI.
On this page, we’ll be focusing on Decision, the Thought. Let’s get started!
Decisions are the thought of the AI. They give you the ability to determine what the AI should be doing in a very straightforward and powerful way.
Though there are different ways to design decisions, you’ll likely be using Priority Score’s and Influence.
When creating Decisions, you’ll create a function that returns a Priority Score, which determines how important a Behaviour, Goal, or Plan is to the AI. This gives the AI an idea of what’s most important to it at any given time.
Influence is how you’ll determine a Priority Score. You’ll check data available to the AI, and based on your findings, will Influence the Priority Score to a high or low score.
Example 1:
Say you wanted to build an AI that would run away and look for health when it was damaged to a certain degree. The Decision would check the AI’s health, and if low, would Influence the Decision to have a higher Priority Score. If not, it would Influence the Decision to have a lower Priority Score.
Example 2:
Say you wanted an AI to follow a schedule. The Decision to do something would be as simple as checking the time, and determining if it was within a set range. If it was within the desired range, the decision would Influence the Priority Score to be higher. If not, it would Influence the Decision to have a lower Priority Score.
Modern Decision Making
The key to decision making with VisAI is using your imagination, and the data available to you. How would you make a decision for the Behaviour/Goal/Plan you’re making? Your AI decision will likely think similarly. Be sure to optimize your code by using local and/or static variables in decisions.