Blog

XML-Parsed Behavior Tree

This project was completed for my Artificial Intelligence course. The goal was to parse an XML file into readable states and actions. The requirement was, when prompted with a state, a program would output a random action in that state. For example if a state Attack had two actions, Melee and Ranged, the program would have a 50/50 chance of outputting one of the actions. 

My professor challenged us to take it a step further and have actual agents fight each other. I aimed to complete the challenge in Unity3D. 

I created an editor tool for parsing the XML file into visible state and action nodes. The tool allowed me to assign events to actions and states. The action for the state would be to choose and action, while the action for the action would be to perform an action. Phew, hopefully that explanation made perfect sense. What it boiled down to was that I had a system for "easily" assigning methods to each action through the convenience of scripted events. When it was all said and done, I could sit back and watch my agents attack each other with varying skills until there was one winner left standing.

The video below should clear up exactly what was done.


Darren O'Neale