![Page 1: 1 CO2301 - Games Development 1 Week 4 Finite State Machines + Maths Gareth Bellaby](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a4d1b757f8b9ab0599b6c0c/html5/thumbnails/1.jpg)
1
CO2301 - Games Development 1Week 4
Finite State Machines + Maths
Gareth Bellaby
![Page 2: 1 CO2301 - Games Development 1 Week 4 Finite State Machines + Maths Gareth Bellaby](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a4d1b757f8b9ab0599b6c0c/html5/thumbnails/2.jpg)
2
PracticalPractical
• Finish game agents next week.
• Check list of things to have completed in the worksheet for next week.
• Keep your code - a good side project.
![Page 3: 1 CO2301 - Games Development 1 Week 4 Finite State Machines + Maths Gareth Bellaby](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a4d1b757f8b9ab0599b6c0c/html5/thumbnails/3.jpg)
3
Part A:
Finite State Machines
![Page 4: 1 CO2301 - Games Development 1 Week 4 Finite State Machines + Maths Gareth Bellaby](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a4d1b757f8b9ab0599b6c0c/html5/thumbnails/4.jpg)
4
Finite State MachinesFinite State Machines
A FSM is a machine which models states, transitions between states, and actions.
State Transition Diagram.
![Page 5: 1 CO2301 - Games Development 1 Week 4 Finite State Machines + Maths Gareth Bellaby](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a4d1b757f8b9ab0599b6c0c/html5/thumbnails/5.jpg)
5
Convention being usedConvention being used
• Box represents a state.
• Line represents a transition between states, single-direction only.
• An arrow with a dot at the end indicates the start state.
• A state can just be an start state (nothing leads into the state).
• A state can just be an end state (nothing leads from the state).
![Page 6: 1 CO2301 - Games Development 1 Week 4 Finite State Machines + Maths Gareth Bellaby](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a4d1b757f8b9ab0599b6c0c/html5/thumbnails/6.jpg)
6
FPS MonsterFPS Monster
Idle
Attacking
Dying
Attacks No hit points
Player location
NPC hit points
Simple monster that reacts when the player comes into range and is in line-of-sight. Note different convention.
Start
![Page 7: 1 CO2301 - Games Development 1 Week 4 Finite State Machines + Maths Gareth Bellaby](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a4d1b757f8b9ab0599b6c0c/html5/thumbnails/7.jpg)
7
FPS enemyFPS enemy
Wander
Attack
Flee
See Enemy
Low HealthNo Enemy
Taken from Intro to Game Development
No Enemy
Start
![Page 8: 1 CO2301 - Games Development 1 Week 4 Finite State Machines + Maths Gareth Bellaby](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a4d1b757f8b9ab0599b6c0c/html5/thumbnails/8.jpg)
8
UMLUML
UML lends itself well to the design of a FSM.
![Page 9: 1 CO2301 - Games Development 1 Week 4 Finite State Machines + Maths Gareth Bellaby](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a4d1b757f8b9ab0599b6c0c/html5/thumbnails/9.jpg)
9
CharacteristicsCharacteristics
Two type of machine:
•Actions occur within a state
•Actions occur during a transition
In the games industry the distinctions between the two types of FSMs are blurred.
It is common to see a FSM in which actions occur within a state and in which actions occur during a transition.
![Page 10: 1 CO2301 - Games Development 1 Week 4 Finite State Machines + Maths Gareth Bellaby](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a4d1b757f8b9ab0599b6c0c/html5/thumbnails/10.jpg)
10
Simple Strategic RTSSimple Strategic RTS
Explore (early game)
Build (middle game)
Attack
Resource Level
Numerical Superiority
Numerical Inferiority
Start
![Page 11: 1 CO2301 - Games Development 1 Week 4 Finite State Machines + Maths Gareth Bellaby](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a4d1b757f8b9ab0599b6c0c/html5/thumbnails/11.jpg)
11
Thief (approximately...)Thief (approximately...)
Not alert
Suspicious
FullyAlerted
Minor Sound
Suspicious Sound/Sight
Definite Sound/Sight
Definite Sound/Sight
Timer
Timer
Suspicious Sound/Sight
Suspicious Sound/Sight
Start
![Page 12: 1 CO2301 - Games Development 1 Week 4 Finite State Machines + Maths Gareth Bellaby](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a4d1b757f8b9ab0599b6c0c/html5/thumbnails/12.jpg)
12
Your gameYour game
Patrol
Move to thief
LOS and distance OR sound
Out of range
Reach waypoint
LOS and distance OR sound
StartMove to previous (?)
waypoint
![Page 13: 1 CO2301 - Games Development 1 Week 4 Finite State Machines + Maths Gareth Bellaby](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a4d1b757f8b9ab0599b6c0c/html5/thumbnails/13.jpg)
13
Your gameYour game
Patrol
Move to thief
LOS and distance OR sound
distance > 12
LOS and distance OR sound
Start
distance < 1
Thief killed
![Page 14: 1 CO2301 - Games Development 1 Week 4 Finite State Machines + Maths Gareth Bellaby](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a4d1b757f8b9ab0599b6c0c/html5/thumbnails/14.jpg)
14
CapabilitiesCapabilities
• A game actor may have more than one FSM. One FMS could be swapped out and replaced by another.
• A FSM could cause a cause in another FSM, e.g. a guard alerting another guard.
• Probabilities
• Randomness
• Extra information
• Extra actions
![Page 15: 1 CO2301 - Games Development 1 Week 4 Finite State Machines + Maths Gareth Bellaby](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a4d1b757f8b9ab0599b6c0c/html5/thumbnails/15.jpg)
15
Characteristics of FSMsCharacteristics of FSMsTo summarise, FSMs are:
• Flexible
• Appropriate
• Comprehensible and straightforward
Can become unwieldy especially:
• if FSM is piled upon FSM
• lots of interconnecting FSMs (feedback)
• Additions, special cases, etc. undermine the structure.
![Page 16: 1 CO2301 - Games Development 1 Week 4 Finite State Machines + Maths Gareth Bellaby](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a4d1b757f8b9ab0599b6c0c/html5/thumbnails/16.jpg)
16
Part B:
Cross Product and derving a "look at" function
![Page 17: 1 CO2301 - Games Development 1 Week 4 Finite State Machines + Maths Gareth Bellaby](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a4d1b757f8b9ab0599b6c0c/html5/thumbnails/17.jpg)
17
NoteNote• Use lookAt function to point to next waypoint in
sequence.
• When you read the next waypoint increment waypoint number. If greater than max set back to 0.
• Do not wait until you reach the waypoint!
• Floating point inaccurancies mean that an equality test will most likely fail.
• You will end up pointing at the waypoint (and hence point down, or with the model upside down).
• Instead, check within a radius (N.B. a range)
![Page 18: 1 CO2301 - Games Development 1 Week 4 Finite State Machines + Maths Gareth Bellaby](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a4d1b757f8b9ab0599b6c0c/html5/thumbnails/18.jpg)
18
TopicsTopics
1.Vectors and dot product2.Test for "in front" or "behind".
![Page 19: 1 CO2301 - Games Development 1 Week 4 Finite State Machines + Maths Gareth Bellaby](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a4d1b757f8b9ab0599b6c0c/html5/thumbnails/19.jpg)
19
Topic 1Topic 1
Vectors and dot product
![Page 20: 1 CO2301 - Games Development 1 Week 4 Finite State Machines + Maths Gareth Bellaby](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a4d1b757f8b9ab0599b6c0c/html5/thumbnails/20.jpg)
20
RelevanceRelevance
• You will have an exam for CO2301: Games Development 1 at the end of this semester.
• You will be examined on the first half of the module.
• All of the AI material is examinable.
• However, so is all of the maths taught in this half of the module.
• All of this lecture is examinable, including all of the equations.
![Page 21: 1 CO2301 - Games Development 1 Week 4 Finite State Machines + Maths Gareth Bellaby](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a4d1b757f8b9ab0599b6c0c/html5/thumbnails/21.jpg)
21
Length of a vectorLength of a vector
The length of a vector can be calculated from its components.
222
oflength
zyx
vv
![Page 22: 1 CO2301 - Games Development 1 Week 4 Finite State Machines + Maths Gareth Bellaby](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a4d1b757f8b9ab0599b6c0c/html5/thumbnails/22.jpg)
22
The normalised vectorThe normalised vector•A normalised vector is a vector whose length is 1.
•Also known as the unit vector.•A vector is normalised by dividing each of its components by its length:
vvv
vv
zy,x ,
ˆof form normalised The
![Page 23: 1 CO2301 - Games Development 1 Week 4 Finite State Machines + Maths Gareth Bellaby](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a4d1b757f8b9ab0599b6c0c/html5/thumbnails/23.jpg)
23
The dot productThe dot productThe dot product gets its name from the symbol used: a single dot between two vectors.
wv
●Pronounced "V dot W", or say "the dot product of V and W".
●The dot product takes two vectors and produces a single result.
zzyyxx wvwvwvwv
![Page 24: 1 CO2301 - Games Development 1 Week 4 Finite State Machines + Maths Gareth Bellaby](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a4d1b757f8b9ab0599b6c0c/html5/thumbnails/24.jpg)
24
Cosine of the angleCosine of the angle
cos wvwv
●The dot product expresses the relationship of the angle between two vectors.
●Given any two vectors we can derive the angle between them.
wvwv1cos
●The angle can be found using the inverse cosine operation (arcos)
![Page 25: 1 CO2301 - Games Development 1 Week 4 Finite State Machines + Maths Gareth Bellaby](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a4d1b757f8b9ab0599b6c0c/html5/thumbnails/25.jpg)
25
Simplified if normalisedSimplified if normalisedIf v and w are normalised then the length of v is 1 and the length of w is 1.
The equation becomes:
cosˆˆ wv
●(but only If v and w are normalised!)
![Page 26: 1 CO2301 - Games Development 1 Week 4 Finite State Machines + Maths Gareth Bellaby](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a4d1b757f8b9ab0599b6c0c/html5/thumbnails/26.jpg)
26
Cosine WaveCosine Wave
image of sine and cosine waves
● Image taken from Wikipedia
![Page 27: 1 CO2301 - Games Development 1 Week 4 Finite State Machines + Maths Gareth Bellaby](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a4d1b757f8b9ab0599b6c0c/html5/thumbnails/27.jpg)
27
Topic 2Topic 2
Test for "in front" or "behind".
![Page 28: 1 CO2301 - Games Development 1 Week 4 Finite State Machines + Maths Gareth Bellaby](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a4d1b757f8b9ab0599b6c0c/html5/thumbnails/28.jpg)
28
In front or behind?In front or behind?•You have a gun (or guard or whatever).
• Let the facing vector (the orientation) of the gun be v.
• Let the vector from the gun to the target be w.
•Do not need to calculate the exact angle. Instead you can use the sign to classify angle
•||a|| and ||b|| are always non-negative, so sign depends on cos a, therefore
• v • w > 0 if angle < 90°
• v • w = 0 if angle = 90° (orthogonal)
• v • w < 0 if angle > 90°
![Page 29: 1 CO2301 - Games Development 1 Week 4 Finite State Machines + Maths Gareth Bellaby](https://reader035.vdocuments.site/reader035/viewer/2022062504/5a4d1b757f8b9ab0599b6c0c/html5/thumbnails/29.jpg)
29
In front or behind?In front or behind?
• Therefore if v • w < 0 then the target is behind the gun.
• See Van Verth, also his web site.
• For this particular test the length of the vectors doesn't matter so you don't have to normalise the vectors.
• This makes this a very inexpensive test and so extremely useful.
• Use it to test whether two vectors are orthogonal.