One way by which the finite state machine could be improved upon is to extend the FSM system to become a fuzzy state machine (FuSM). One of the criticisms regularly levelled at FSMs is the predictability of the state transitions (Brownlee, 2002). FuSMs can make it more difficult to predict these state transitions by using fuzzy variables to influence state changes. Fuzzy state machines can consider several states to be the current state, if not all of them. Each state is given a value between zero and one and the state with the highest value is chosen to be the current state. States are assigned values by the fuzzy logic system which takes in various inputs, fuzzifies them, applies fuzzy rules and defuzzifies to obtain a value for the state. However, while FuSMs may sound good in theory, Houlette (Houlette, 2003) indicates that there is little information beyond theory and small pieces of literature detailing implementations of them available. Hierarchical and polymorphic FSMs could also be employed to further increase the functionality of the FSM.
FSMs were the only other AI technology that was compared with GOAP during this project. FSMs may not be the best AI technology available at present but they remain highly popular. A further extension to the experiments carried out for this project could be to investigate and compare other AI techniques with GOAP. Technologies such as fuzzy logic, scripted AI, neural networks, rule based systems, Bayesian techniques and genetic algorithms are amongst the techniques that could be created as comparative AI.
The GOAP system that was developed used only Boolean symbols for the world state symbols. If the system were extended to incorporate variable world state symbols then this could massively increase the power of the system. As Orkin explains in his discussion of GOAP (Orkin, 2005), variables allow for the passing of values between different goals and actions. Although the inclusion of variable support was a little out of the scope for this project, future work could design an extension to the system that would allow for their use.
Using world state symbols when combined with action’s preconditions and effects can have its limitations. Suppose there is an action with preconditions weaponLoaded= true