With regards to finite-state machines in game AI development, there are some observations to point out. AdvantagesFinite-state machines are so incredibly simple. They're easy to implement, visualize, design, debug, and work with in pretty much any other stage of the development pipeline. Their theory is extremely well understood. We have formal definitions of finite-state machines, which can be optimized and manipulated by various algorithms. It's also clear that finite-state machines can deal with regular languages only. Finite-state machines have been proven to work well with computer games, and are in fact one of the most popular AI techniques. This is because of the fact that they can be used for control, and almost anyone can create them. DisadvantagesThe pitfalls of finite-state machines seem insignificant compared to avalanche of benefits, although there are quite a few:
The disadvantages of finite-state machines can be easily taken into account during the design (and selection of the right solution), so these issues have not affected finite-state machines as the most popular game AI technique. |