1 / 57

Finite State Machine for Games

Finite State Machine for Games. Fall 2012 Ref: Chenney, CS679 lectures AI Game Programming Wisdom 2. Outline . AI and Game Introduction/examples Design Intuition State-based Implementation Extending Stack-based Fuzzy-state machine. What is AI? (and is NOT).

margot
Download Presentation

Finite State Machine for Games

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Finite State Machine for Games Fall 2012 Ref: Chenney, CS679 lectures AI Game Programming Wisdom 2

  2. Outline • AI and Game • Introduction/examples • Design • Intuition • State-based • Implementation • Extending • Stack-based • Fuzzy-state machine

  3. What is AI? (and is NOT) • AI is the control of non-human entities in a game • The other cars in a car game • The opponents and monsters in a shooter • Your units, your enemy’s units and your enemy in a RTS game • But, typically does not refer to passive things that just react to the player and never initiate action • That’s physics or game logic • For example, the blocks in Tetris are not AI, nor is a flag blowing in the wind

  4. AI in the Game Loop • AI is updated as part of the game loop, after user input, and before rendering

  5. AI Update Step • The sensing phase determines the state of the world • May be very simple - state changes all come by messaging • Or complex - figure out what is visible, where your team is, etc • The thinking phase decides what to do given the world • The core of AI • The acting phase tells the animation what to do AI Module Sensing Game Engine Thinking Acting

  6. AI gets called at a fixed rate AI by Polling • Senses: • looks to see what has been changed in the world • then acts on it • Generally inefficient and complicated • Different characters might require different polling rate

  7. does everything in response to events in the world Event Driven AI • Events triggered by a message • basically, a function gets called when a message arrives, just like a user interface) • Example messages: • You have heard a sound • Someone has entered your field of view • A certain amount of time has passed, so update yourself

  8. AI Techniques in Games • Basic problem: Given the state of the world, what should I do? • A wide range of solutions in games: • Finite state machines, Decision trees, Rule based systems, Neural networks, Fuzzy logic • A wider range of solutions in the academic world: • Complex planning systems, logic programming, genetic algorithms, Bayes-nets • Typically, too slow for games

  9. Expressiveness • What behaviors can easily be defined, or defined at all? • Propositional logic: • Statements about specific objects in the world – no variables • Jim is in room7, Jim has the rocket launcher, the rocket launcher does splash damage • Go to room8 if you are in room7 through door14 • Predicate Logic: • Allows general statement – using variables • All rooms have doors • All splash damage weapons can be used around corners • All rocket launchers do splash damage • Go to a room connected to the current room

  10. Finite State Machines (FSMs) • A set of states that the agent can be in • Connected by transitions that are triggered by a change in the world • Normally represented as a directed graph, with the edges labeled with the transition event • Ubiquitous in computer game AI

  11. Formal Definitions (N. Philips) • "An abstract machine consisting of a set of states (including the initial state), a set of input events, a set of output events, and a state transition function. • The function takes the current state and an input event and returns the new set of output events and the next state. Some states may be designated as "terminal states". • The state machine can also be viewed as a function which maps an ordered sequence of input events into a corresponding sequence of (sets of) output events. • Finite State Automaton: the machine with no output

  12. FSM with Output: vending machines • OJ & AJ for 30 cents • State table

  13. Vending Machine: state diagram

  14. FSM and Game • Game character behavior can be modeled (in most cases) as a sequence of different “mental state”, where change is driven by the actions of player/other characters, … • Natural choice for defining AI in games

  15. FSM Examples

  16. PacMan State Machine PacMan eats a Power Pill Timer <= 0 Timer <= 0 Collision with GhostBox Collision with PacMan

  17. Actions of States Roam; If PacMan gets close, PathTo (PacMan) Timer--; PathAwayFrom (PacMan) Timer— Move back-and-forth PathTo (GhostBox)

  18. Dead Ex: predator vs. prey • Prey (laalaa) Idle (stand,wave,…) Sees predator Flee (run) No more threat captured

  19. Predator (Raptor) Idle (stand) Tidle > 5 Tdining>5 Hungry (wander) Dining Prey captured Prey in sight Pursuit (run) Tpursuit > 10

  20. Idling LaaLaa This page illustrates: hierarchical state, Non-deterministic state transition Target arrived Wander (set random target) 20% Stand Tstand>4 30% R Wave 50% Twave>2

  21. FSM Design

  22. Quake2 Examples Intuitive thinking: model the events and state changes Quake2 uses 9 different states: standing, walking, running, dodging, attacking, melee, seeing the enemy, idle and searching. Incomplete design

  23. Quake: Rocket

  24. Shambler monster

  25. FSM Advantages • Very fast – one array access • Expressive enough for simple behaviors or characters that are intended to be “dumb” • Can be compiled into compact data structure • Dynamic memory: current state • Static memory: state diagram – array implementation • Can create tools so non-programmer can build behavior • Non-deterministic FSM can make behavior unpredictable

  26. FSM Disadvantages • Number of states can grow very fast • Exponentially with number of events: s=2e • Number of arcs can grow even faster: a=s2 • Propositional representation • Difficult to put in “pick up the better powerup”, “attack the closest enemy” • Expensive to count: Wait until the third time I see enemy, then attack • Need extra events: First time seen, second time seen, and extra states to take care of counting

  27. FSM Control System Implementation

  28. FSM Implementation

  29. Previous Example

  30. Code 1 Ad hoc implementation

  31. Code 1p

  32. Code 2 Structure, Readable, maintainable

  33. Hierarchical …

  34. FSM Extensions

  35. Advanced Issues • Hierarchical FSM • Non-deterministic FSM • Swapping FSM

  36. Hierarchical FSMs • What if there is no simple action for a state? • Expand a state into its own FSM, which explains what to do if in that state • Some events move you around the same level in the hierarchy, some move you up a level • When entering a state, have to choose a state for its child in the hierarchy • Set a default, and always go to that • Or, random choice • Depends on the nature of the behavior

  37. Stack-based FSM Pushdown automaton (PDA) History stack: Remember previous state; create characters with a memory …

  38. Goal-based vs. State-based There is also a slight derivative to the state-based engine, but it used in more complicated games like flight simulators and games like MechWarrior. They use goal -based engines - each entity within the game is assigned a certain goal, be it 'protect base', 'attack bridge', 'fly in circles'. As the game world changes, so do the goals of the various entities.

  39. Polling FSM update frequency Easy to implement and debug Inefficiency (Little Red example) Event-driven Publish-subscribe messaging system Game engine sends event messages to individual FSMs An FSM subscribes only to the events that have the potential to change the current state Higher efficiency, non-trivial implementation Processing Models

  40. Efficiency and Optimization • In AI, FSM is the most efficient technology available • Yet, there is always room for improvement • Level of Detail: depending on the condition (e.g., distance with player), use different FSM, or different update frequency

  41. References • Web references: • www.gamasutra.com/features/19970601/build_brains_into_games.htm • csr.uvic.ca/~mmania/machines/intro.htm • www.erlang/se/documentation/doc-4.7.3/doc/design_principles/fsm.html • www.microconsultants.com/tips/fsm/fsmartcl.htm • http://www.angelfire.com/dragon/letstry/tutorials/dfa/ • Game Programming Gems Sections 3.0 & 3.1 • It’s very very detailed, but also some cute programming

  42. Well, the sad news … Behavior trees

  43. Additional Materials

  44. Intuitive Design • Say, a simple teletube baby has three states: idle, run, and wave • Scenario: • When an idle laalaa sees a butterfly, it waves to it. When the butterfly flies away, it returns to idle • When an idle laalaa sees a mouse, it flees away. When the mouse is no longer in sight, it returns to idle

  45. Laalaa flee mouse ~mouse How to make sure the design complete? I.e., all states and transitions are considered Is there any systematic way to develop an FSM? idle butterfly wave ~butterfly

  46. Quake Bot Example (first-cut) • Types of behavior to capture: • Wander randomly if don’t see or hear an enemy • When see enemy, attack • When not see enemy and hear an enemy, chase enemy • When die, re-spawn (new a bot from start) • Events: see enemy, hear enemy, die • States: wander, attack, chase, spawn

More Related