ApexGameTools_FSM_20160621

Finite-State Machine / Behavior Tree / Utility AI

Morten Reinholdt Apex Utility AI

A short update on our work.

We are currently working on a couple of full demos for the Utility AI; an RTS demo and a Sims-like demo.

I just wanted to share a little mid-time research.

The following images are the same AI implemented using a Finite-State Machine / Behavior Tree methodology and the Utility AI methodology. Basically, the AI is a perpetual AI for people oscillating between sleeping and working … almost like life :-)

The difference in complexity for solving the same tasks is quite significant. We actually implemented the FSM first. However when we were about to extend the number of desires from two (2) to four (4) the pain of updating conditions for the state machine / tree was simply unbearable. So the full features AI will be Utility AI only 😉

During the development we also experienced the pain of debugging an FSM. We had forgot to set the score on a Qualifier. Consequently, the default action kept getting triggered, leading to a failure of the people picking up work tasks as they were supposed to do. We thought we had checked all scores on all Qualifiers, but due to the size of the tree we had missed one. This would not have happened in a Utility AI.

Finite-State Machine / Behavior Tree :

ApexGameTools_FSM_20160621

Apex Utility AI – FMS implementation

 

Utility AI:

ApexGameTools_UtilityAI_20160621

Apex Utility AI – Utility AI implementation

 

Enjoy.

The demos are available soon.