Tuesday, 9 October 2012

Multi-layer Finite State Machines

So I was chatting to a friend in White Space today about my Honours project, a very vague and confusing topic to begin with, however I described as wanting to look at the evolution of behaviour in NPCs in response to new and untrained situations.

Anyway, my friend Russell - described his theory of a strong NPC behaviour routine as taking the form of a three layer finite state machine, as part of comprehending his approach I labelled these layers like this.

  • Objective Layer
    This state machine holds ultimately what you're trying to achieve, for example "Get up and go to work"
  • Step Layer
    This next level of abstraction looks at the steps necessary to complete the Objective Layer, for example "Get Dressed" and "Leave House".
  • Action Layer
    The final layer deals with the individual actions required to achieve the next step, for example "Get out of bed", "Walk to wardrobe", "Drive to work"

I have to admit that I really like the robust nature of this system and feel it could work quite well with what I intend to do, in combination with other AI procedures to produce a classification of unique experiences or so.