I have been reading up on Potential Fields, Influence Maps and Behavioral Trees for the past week. What I have determined so far is that:
- Potential Fields are used for path finding
- Influence Maps are used for determining information within zones (risk, historical, rainfall, fire hazard, traffic, anything really)
- Behavioral Trees are used to organise and control states of an agent
Behavioral Trees are essentially an evolution on Hierarchical Finite State Machines (HFSM’s). I would like to play around with implementing these ideas in code. It will be difficult to manage the time between MBA, work, and this. I do feel that it is possible. Essentially I will start with developing the path finding using potential fields to get to goals. I will then implement the behavioral trees to assist in identifying what these goals will be and how they will transition between states given priority and then I will go on to implementing some form of an influence map to assist the agent in making better decisions in the behavioral tree.
Here are the three resources I am going to use as a base:
- Potential Fields – http://aigamedev.com/open/tutorials/potential-fields/
- Behavioral Tress – http://altdevblogaday.com/2011/02/24/introduction-to-behavior-trees/ (although I am not going to worry about the data oriented design for now)
- Influence Maps – http://aigamedev.com/open/tutorial/influence-map-mechanics/
I will blog my progress as I achieve certain milestones or when something interesting happens. I have been meaning to look into potential fields for some time now and hope that this will kick-start me to actually give it some attention.
Potential Field Posts:
Influence Map Posts:
On a side note: I want to also fiddle with some Navier-Stokes for fluid simulation. Here is an actionscript port of a fluid solver using Navier-Stokes based on this academic paper “Real-Time Fluid Dynamics for Games”.