Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline...
Transcript of Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline...
![Page 1: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/1.jpg)
Principles of Computer Game Design and Implementation
Lecture 23
![Page 2: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/2.jpg)
We already learned
• Decision Tree
2
![Page 3: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/3.jpg)
Outline for today
• Finite state machine
3
![Page 4: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/4.jpg)
4
Creating & Controlling AI Behaviors
Behavior: A Sequence of Actions
The patrol and guard behavior is defined as a sequence of actions
Sense
Think
Act
![Page 5: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/5.jpg)
So, Basically…
• An agent goes through a sequence of states
• Arrows indicate transitions
5
![Page 6: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/6.jpg)
6
Finite-State Machine (FSMs)
• Abstract model of computation
– Formally:
• Set of states
• A starting state
• An input vocabulary
• A transition function that maps inputs and the current state to a next state
![Page 7: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/7.jpg)
7
FSMs In Game Development
Deviate from formal definition1. States define behaviors (containing code)
• Wander, Attack, Flee
• As longer as an agent stays in a state, it carries on the same action
2. Transition function divided among states• Keeps relation clear
3. Extra state information• For example, health
![Page 8: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/8.jpg)
Recall: User Control V Modelling
• In these examples, user controlled completely the state of the world or there was no user input.
– How to mix user control and physical modelling?
• Game states
User Auto
Motion simulation stops
User initiates motion simulation
User controlsthe world
8
![Page 9: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/9.jpg)
9
Finite-State Machine:UML Diagram
Wander Attack
Flee
See Enemy
Low
Hea
lth
No E
nemy
No Enemy
Initial state
![Page 10: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/10.jpg)
State Actions
• Actions is what player sees– Movement
– Animation
• Instead of one action can consider– onEntry
• Executed when FSM enters the state
– onExit
– onUpdate• Runs every tick while FSM is in the state
10
Sense
Think
Act
![Page 11: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/11.jpg)
11
Finite-State Machine:Approaches
• Three approaches
– Hardcoded (switch statement)
– Scripted
– Hybrid Approach
![Page 12: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/12.jpg)
12
Hard-Coded FSMenum State {wander, attack, flee};
State state;
…
switch (state )
{
case wander:
Wander();
if( SeeEnemy() ) { state = State.attack; }
break;
case attack:
Attack();
if( LowOnHealth() ) { state = State.flee; }
if( NoEnemy() ) { state = State.wander; }
break;
case flee:
Flee();
if( NoEnemy() ) { state = State.wander; }
break;
}
![Page 13: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/13.jpg)
Hard-Coded FSM: Weaknesses
• Maintainability– Language doesn’t enforce structure
– Can’t determine 1st time state is entered
• FSM change -> recompilation – Critical for large projects
– Cannot be changed by game designers / players
• Harder to extend– Hierarchical FSMs
– Probabilistic / fuzzy FSMs
13
![Page 14: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/14.jpg)
14
Finite-State Machine:Scripted with alternative language
BeginFSMState( STATE_Wander )OnEnter
Java codeOnUpdate
Java code
if(seeEnemy()) ChangeState(STATE_Attack);
OnExit
Java code
State( STATE_Attack )OnEnter
Java codeOnUpdate
Java code to execute every tickOnExit
EndFSM
![Page 15: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/15.jpg)
15
Finite-State Machine:Scripting Advantages
1. Structure enforced
2. Events can be handed as well as polling
3. OnEnter and OnExit concept exists
4. Can be authored by game designers
– Easier learning curve than straight C/C++
![Page 16: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/16.jpg)
16
Finite-State Machine:Scripting Disadvantages
• Not trivial to implement
• Several months of development
– Custom compiler• With good compile-time error feedback
– Bytecode interpreter• With good debugging hooks and support
• Scripting languages often disliked by users
– Can never approach polish and robustness of commercial compilers/debuggers
![Page 17: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/17.jpg)
17
Finite-State Machine:Hybrid Approach
• Use a class and C-style macros to approximate a scripting language
• Allows FSM to be written completely in C++ leveraging existing compiler/debugger
• Capture important features/extensions– OnEnter, OnExit– Timers– Handle events– Consistent regulated structure– Ability to log history– Modular, flexible, stack-based– Multiple FSMs, Concurrent FSMs
• Can’t be edited by designers or players
![Page 18: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/18.jpg)
Transitions
• Internal
– Independent of environment
– E.g. out of ammo
• External
– Event-driven
• Immediate
• Deferred
– E.g. to wait till animation sequence stops
18
![Page 19: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/19.jpg)
19
Transitions
![Page 20: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/20.jpg)
20
Transitions
![Page 21: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/21.jpg)
• Compare
• With
Decision Trees in Transitions
21
Computationally-expensive test performed twice
Computationally-expensive test performed once
![Page 22: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/22.jpg)
Generalisation: Hierarchical FSM
• Often, there are several “levels” of behaviour
– Complications from “insignificant details”
22
Enemy dead
Enemy close
DefendAttack
Reload, aim, shoot Run, stub
Machine might be large. Very large.
![Page 23: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/23.jpg)
Clean Up FSM Example
• A robot cleans a floor space
• Unless it recharges, it breaks23
![Page 24: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/24.jpg)
Recharging Clean Up FSM Example
24
Get power
But what to do after charging???
![Page 25: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/25.jpg)
Recharging Cleaner FSM
25
Three states just to remember where to come back
![Page 26: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/26.jpg)
Hierarchical Approach
26
Clean up
H
Hierarchical state
Get power
[No power]
[Recharged]
![Page 27: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/27.jpg)
Hierarchical Recharge
27
Clean up
H
[No power]
[Recharged]
H
Get power
Use mains Use solar
[Day]
[Night]
[No trash]
![Page 28: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/28.jpg)
Algorithm
• Based on the notion of a current state
– Every state stores the current state of its sub FSM
• Hierarchical evaluation
– If transition is applicable to higher-level current state
• Change state
– Else
• Execute the OnStay method
• Apply transition to the sub FSM
28
![Page 29: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/29.jpg)
Example
29
Clean up
H
[No power]
[Recharged]
H
Get power
Use mains Use solar
[Day]
[Night]
Events:• No power• Recharged• Seen trash• No power• …
![Page 30: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/30.jpg)
Stack-Based FSMs
• This idea can be extended to allow storing past states using a stack
• Every time a machine is “suspended” the current state is pushed into the stack
• Every time it is “resumed” the state is popped from the stack
– E.g. several machines and a switch between them
30
![Page 31: Principles of Computer Game Design and …Lecture 23 We already learned •Decision Tree 2 Outline for today •Finite state machine 3 4 Creating & Controlling AI Behaviors Behavior:](https://reader033.fdocuments.us/reader033/viewer/2022042312/5edad3eb09ac2c67fa685ec5/html5/thumbnails/31.jpg)
31
Finite-State Machine In Game Development: Summary
• Most common game AI software pattern– Natural correspondence between states and behaviors
– Easy to diagram
– Easy to program
– Easy to debug
– Completely general to any problem
• Problems– Explosion of states
– Too predictable
– Often created with ad hoc structure