Fuzzy State Machines (FuSMs)

  • FuSMs are based on fuzzy logic but don’t really represent fuzzy logic
    Because essential Fuzzy Logic steps (like Fuzzification, Defuzzification) not included here
  • They are useful for systems that could be in more than one state at the same time
  • Similarities between FSM and FuSM:
    • FSM with prioritized transitions:
      • Calculating activation level for each state and go to the highest activation state
      • Adding fuzziness to the FSM
    • Probabilistic FSMs:
      • Probabilities are assigned to each transition state and then can be changed within game
    • Markov Models:
      • Transition logic is completely probability based
    • Actual Fuzzy Logic Systems:
      • When there are many fuzzy variables a problem arise called: combinatorial explosion
        • This problem could be solved using Comb’s Method but the accuracy is decreased
  • Example of fuzzy problem in games: shooting while moving!
  • Here there are some states that should be computed as digital not fuzzy (like attack state) so some of the states are calculated in fuzzy and others are calculated in digital approach
  • Structure of FuSM:
    • FuSMState Class: Enter(), Exit(), Update(), CalculateActivation()
    • FuSMMachine Class
    • FuSMAIControl Class
  • The states get perception variables from FuSMAIControl Class to calculate the activation level
  • Activation Level: measure of how fully active the state need to respond to the perceptions
  • It’s recommended to have separate perception system in the Control Class in bigger games
  • Each Fuzzy State has no information about other states in it. Each state is only concerned with the perception checks that directly deal with itself only
  • M_powerUpNear is not needed in FuSM but it’s necessary in FSM so it can fire GetPowerUp State
  • Pros of FuSM Systems:
    • Used in parallel independent systems
    • No transition events between states
    • Adding new state is moirĂ© easily , because each state is only concerned about itself!
    • Allows more range of behavioral personality to be exhibited by the AI-System
    • No existence of the oscillation problem
  • Cons of FuSM Systems:
    • FuSMs are not as general a problem solver as FSMs
    • Bad FuSM lead to the problem of oscillation and this could be solved by having totally opposite states in your machine
      • This states should be inconsistent in activation
  • Extensions to this paradigm:
    • FuSMs with a limited numbers of current states
      • Fuzzy states could be tagged with subtypes, and the highest propriety subtype would win for that particular subtype category
    • An FuSM used as a support system for a character:
      • Used in facial expressions (333)
    • An FuSM used as a single state in large FSM
    • Hieratical FuSMs:
      • Categorizing FuSMs in subtypes
      • FSM where each state in a FuSM, this becomes in effect a fuzzy system that can switch out its entire fuzzy state system based on game events or perception changes
    • Data-Driven FuSMs
  • Design Considerations:
    • Types of Solutions:
      • Used is strategic and tactic types
      • Could be used in RTS games: combine output of several fuzzy states such as resource gathering, diplomacy, combat, defense
    • Agent Reactivity: very reactive
    • System Realism:
      • Seems realistic
      • By adjusting current behavior not completely changing it this adds realism to the Game AI
    • Genre:
      • FuSMs could be used as the perception system of a game
    • Platform: there are no restrictions at all!
    • Development Limitations:
      • Easy to understand and implement but there’s no support for dynamic product

Entertainment Limitations: flexible and able to meet the entertainment requirements

Leave a comment