AI Research Project
Utility AI is a modular based behavioral AI where instead of a predetermined sequence of checks like the common behavior tree, actions are decided on their relative usefulness in a given situation. Each action is scored based on the agent’s current needs and the ability of the action to satisfy the need. It’s an architecture of unpredictability where you are providing suggestions of what to do next that makes it more fuzzy logic than the binary nature of common game AI.
The goal for this project was the creation of an AI system that would execute a utility based AI, the creation of the algorithms necessary for making basic decisions and a demo with a visual representation of the decisions selected.
- Converting behaviors into mathematical equations. Each decision has it’s own mathematical model based on the desired effect. Converting the raw data to usable concepts in a way that can be compared to others.
- Using response curves.
- Normalizing the utility value between 0 and 1 to compare decisions.
- Combining utility values.
- Creating a system to manage agents, the actions they can take, selecting the “best” action and executing it.
- Relative utility selection. Eliminating low utility – actions that should not be taken. Select based on a weighted random of the top choices – reasonable random.
- Manager: interfaces with the game world and manages the list of agents.
- Agent: selects and executes the action to take.
- Action: each available action an agent can take. Contains the behavioral math to compute the utility value.
- State: the execution of the action.