Enter the AI Article Writing Contest!', "Writing", "http://ai-depot.com/Contest" ); include('../Include/Header.php'); include('/usr/home/alexjc/public_www/Include/Utils.php'); Menu(); ?>

Finite State Machines (FSM)


Finite state machine is a technique I have been hearing about for some time, probably since I first got interested in first person shooter (FPS) computer games. I never really thought about what the term meant, all I knew was that it was related to the way enemies work in these types of games. As I have progressed through my Information Technology course at university I have found myself increasingly looking back on concepts and techniques I have previously come across with questions, finite state machines being one of these topics.

Finite state machines are said to have been "so widely used" and "so simple", yet they have not been covered in my course so far in programming or artificial intelligence subjects. I turned to common knowledge resources on the Internet (forever my jump start for new technologies and techniques) for a suitable definition within the scope of artificial intelligence, and was not satisfied. This essay is the product of my research on the topic of finite state machines in the context of artificial intelligence as a control technique, and through that research my goal was to learn something and through writing this essay hopefully be able to teach something.


The intent of this essay is to provide a useful and practical introduction of the technique of Finite State Machines (FSM) within the context of artificial intelligence (AI) as a control technique. The emphasis in this essay will be on practicality both in definition and explanation, rather than an emphasis on heavy theoretical and mathematical concepts behind the technique.

This essay will start with a light theory section describing the technique in terms of its elements and usage. The section will introduce the main types of finite state machine and popular enhancements to the basic concept. The second section will provide two "real world" examples from the computer game domain. These examples will provide insight into how the technique could be used to model specific systems and the type of control it can provide

The final section will take a detailed look at the finite state machine framework implemented in a production quality and commercially released product. It will provide insight into usage of finite state machines in a broader system and how that system could be implemented to support multiple concurrent finite state machines in the same environment

Remember you can visit the Message Store to discuss this tutorial. Comments are always welcome!. There are already replies in the thread, why not join in?