A* algorithm

CO2301 - Games Development 1
Week 13 - Revision Lecture
AI Revision
Gareth Bellaby
1
Exam format
●2 hours. 10 minutes reading time.
●Only semester 1 material - AI + maths.
●All of the material from semester 1 is
examinable.
2
Exam format
● Section A and Section B.
● Section A
● Answer all of the questions
● Maths (Vector maths and graph theory)
● Pathfinding definitions and terms
● Section B
● 4 questions.
● Choose 2.
● Longer questions
3
Topic List
● There's a list of words and topics I gave at the
beginning of doing the AI.
● "AI - to be learnt".
● Learn all of these phrases and their meanings.
4
Revision
●Read
●Read around the subject
●Write out own notes
●Condense notes
●Group study is invalulable
5
Characteristics of the exam
questions
●Describe the topic, e.g. what is a game
agent?, What is a FSM?
●Be prepared to give an example, e.g. give
an example of a game agent, provide an
example of a FSM.
●Provide an example of use. How would it be
used? Why would it be used?
6
Prepare to draw a diagram
●Be prepared to draw a diagram for every
topic.
NPC hit
points
Player
distance &
LOS
Attacking
No hit
points
Attacks
Idle
Start
Dying
7
Game Agent
think
sense
act
memory
(optional)
8
Game Agents
● Autonomous or semi-autonomous.
● Perceives the world and acts upon the world.
● Agents are situated in the world.
● Agents interact with the world.
● Suits genres such as FPS, but also think about
games such as Viva Pinata.
9
Game Agents - sensing
● Perceiving the world in a similar (or analogous) way to
that of the player.
● Seeing.
An efficient vision algorithm would only consider:
● objects that the agent is interested in
● objects within the viewing distance of the agent
● objects within the viewing angle of the agent
● objects within the unobscured LOS of the agent
● Hearing.
● Similar considerations to seeing, but need to
discuss sound propagation, ambient sound, etc.
● Communication with other agents.
10
Finite State Machine
● Finite State Machine is a machine which represents
behaviour as:
● states
● transitions between states
● actions. The actions can occur within a state, on
entry to a state, on exit from a state.
● Need a start state and an end state.
● You need to consider FSMs as a diagramatic
technique.
● I provided a bunch of examples. Make sure you
understand them and write similar examples of your
own.
11
Pathfinding
● What is pathfinding?
● 7 algorithms:
● Crash and Turn
● Breadth-first algorithm
● Depth-first algorithm
● Hill-climbing algorithm
● Best-first algorithm
● Djikstra's algorithm
● A* algorithm
12
Pathfinding
● Don't need to learn the algorithms off by heart
but you do need to able to describe and discuss
them.
● You must be aware of the fundamental
characteristics of each of the search
techniques.
● You must be able to explain and discuss the
algorithms.
● Each of the search
compared to the others.
techniques
can
● What are the relative advantages
disadvantages of each of the searches?
be
and
13
Pathfinding
● Description: The characteristics of the algorithm.
● Is the algorithm guaranteed to find a solution?
● If the algorithm guaranteed to find the optimal
solution?
● Efficiency: speed, size of tree.
● Heuristic: blind or directed?
● Cost: does the algorithm employ cost?
● Application: Where would you use the algorithm?
What are the advantages and disadvantages of
the algorithm?
14
Pathfinding
● Simplest algorithm is "Crash and Turn": move
towards objective, if crash into an obstacle turn
and move around its perimeter until you can
move towards the objective again.
● Simple to implement.
● Can be effective in simple situations
● Guaranteed to work so long as all objects are
convex.
● Think about using in combination with other
methods.
15
Breadth-first algorithm
● Expands all of the nodes, layer by layer.
● Exhaustive search.
● Guaranteed to find solution, if one exists.
● Guaranteed to find the optimal solution.
● Inefficient because every node searched. The
problem of combinatorial explosion.
● Does not employ a heuristic.
● OK for small problems where size is
manageable. Useful if you definitely want to
search all of the nodes.
16
Depth-first algorithm
● Only one node expanded. Single path followed.
● Need to include backtracking, otherwise it is pretty useless.
● Not guaranteed to find a solution. (But variants such as
using a limiting wall and employing backtracking are
guaranteed to do so).
● Not guaranteed to find the optimal solution.
● Overcomes combinatorial explosion because a smaller tree
is generated.
● Does not employ a heuristic.
● May get lucky and, on average, faster than breadth-first.
● Used for problems in which optimality not important.
● Can be used in conjunction with other searches, e.g. for
opportunistic searches.
17
Hill-climbing algorithm
● Current node examined to find the best successor. Path
follows best successor.
● Better than depth and breadth.
● Basic algorithm is not guaranteed to find a solution.
● Foothills.
● Plateaus.
● Ridges.
● However, it is guaranteed to find a solution if backtracking is
used, together with the option to move to a worse successor
if no other alternatives exist.
● Not guaranteed to find optimal solution.
● Uses a heuristic.
● Variants include randomness, jumps.
● Useful for climbing a hill! (Or equivalent).
18
Best-first algorithm
● All unexpanded nodes recorded. Best overall
node chosen.
● Uses a heuristic.
● Better than depth, breadth and hill-climbing.
● Guaranteed to find a solution.
● Not guaranteed to find the optimal solution, e.g.
on a map with terrain costs.
● Useful for maps with no costs or equivalent kinds
of problems.
● Can be employed in a game with moving
obstacles.
19
Djikstra's algorithm
● Uses cost.
● Choose the successor node with the lowest cost.
Cost is accumulated along each route.
● Guaranteed to find a solution.
● Guaranteed to find the optimal solution.
● Very efficient for maps in which all of the costs can
be pre-generated.
● For a game with a large map can be inefficient
because potentially a large number of alternatives
may be considered.
● Inefficient with moving obstacles since cost would
have to be regenerated.
20
A* algorithm
● Uses cost and heuristic.
● Choose the successor node with the lowest
summed cost + heuristic. Cost is accumulated
along each route.
● Guaranteed to find a solution.
● Guaranteed to find the optimal solution.
● An efficient algorithm.
● A commonly used games algorithm. Compare
with Djikstra's. If cost can be pre-generated and
stored efficiently then Djikstra's will be the
better choice, otherwise use A*.
21
A* algorithm
● Admissability, , i.e. the
overestimates the distance.
heuristic
never
● Graceful decay of admissability. Be strict about
admissability at the beginning of the search but
as the search is assumed to get closer to the
destination relax the admissability criterion.
22
Search
● Combinatorial explosion: the problem whereby
rules in combination give rise to a large number
of alternatives.
● Dealing with the complexity of the real world.
● Simplification.
representation
Using
a
less
detailed
● Level-of-detail, e.g. different sized grids for
pathfinding, rule based system can have
different levels.
23
Search
● Representations: grids,
points-of-visibility.
waypoints,
regions,
● Map design.
24
Game characteristics
perfect information
imperfect information
2-player
n-player
simple physical world complex
physical
world
timing - precise time timing - variable time
periods
periods
precise goals
imprecise goals
25
Maths
● Maths:
● vectors:
● length
● normalisation
● dot product
● cross product
● angle
vw  v
w cos 
26
Targeting
● Test of "in front of", or "behind".
● x is the gun's x-axis.
● w is the vector from the gun to the target.
● x • w > 0 if the target is to the right
● x • w = 0 if the target is straight ahead.
● x • w < 0 if the target is to the left
● Also "to left of", or "to right of".
● Deriving the local axis, e.g. local x-axis.
27
Targeting
● Construct a LookAt function. You need to be
able to write down how the function is
constructed. You need to understand:
● length of a vector
● normalise a vector
● dot product
● cross product
● the relevant axes
● Write down the procedure in full
28
Interpolation and splines
● Path smoothing is the process of smoothing out
the angular route produced by the search
method. So implemented after the search has
been calculated.
● Be able to define and describe the terms.
● Describe and discuss what a spline is.
● Describe and discuss interpolation.
● Describe and discuss the characteristics of the
Catmull-Rom and Bézier curve.
● Interpolation of the tangents.
29
Interpolation and splines
● Path smoothing.
● Smoothing is implemented through the use
of interpolation - calculating points in
between our known points.
● Looked at a method of generating a curve
called the Catmull-Rom spline.
● Generate tangents based on the position of
the sample points.
30