1 ai for computer game developers finite state machines path finding and waypoints a-star path...
TRANSCRIPT
1
AI for Computer Game Developers
Finite state machinesPath finding and waypointsA-Star path finding
2
Finite State Machine An abstract machine that can exist in one
of several different and predefined states. Define a set of conditions that determine
when the state should change. Characteristics
Easy to understand Easy to implement and debug
An Example Ghosts in Pac Man Finite states
roaming freely, chasing the player, or evading the player
Chasing
Evading
Th
e p
layer
eats a
pow
er
pill
3
Outline
Basic State Machine Model Generic finite state machine Example- Ghost finite state
machine Finite State Machine Design
Structures and classes Behavior and transition functions
Ant Example
4
Generic Finite State Machine Diagram
S1 S2
S3Si
t1
t2
t3t4
t5
Four possible states: {Si, S1, S2, S3}
Transition functions: {t1, t2, t3, t4, t5}
5
Ghost finite state machine diagram
Three possible states: roam, evade, chase
Four transition functions: see true, see false, blue true, blue false
Roam(Initial state)
EvadeChase
seetrue
seefalse
seefalseblue
true
seetrue
blue true
seefalse
seetrue
blue true
See true:
Ghost see the player
Blue true:
The player eats a power pill
6
Model Ghost Behavior (1)
Roam
blue = true?
YesEvade
No
seePlayer?Yes
Chase
No
7
Model Ghost Behavior (2&3)
Current state: Chase
Chase
blue = true?
Yes Evade
No
seePlayer?
Yes
Roam
NoChase
blue = true?
Yes
Evade
No
seePlayer?Yes
Roam
No
Current state: Roam
8
Finite State Machine to describe Avatar behaviors
9
Network or Hierarchical of FSM to describe the logic of the whole game
Uncertainty by random numbers
Attack orRetreat?
10
Finite State Machines Advantages
Fast data structure, dynamic memory or current state
Non-deterministic FSM can make behavior unpredictable (by random numbers)
Dis-advantages Number of states can
grow very fast Number of arcs can
grow even faster
How may states can I go from here?
11
Pathfinding
Problem Dependent Destination: moving or stationary? Obstacles? Terrain shape Shortest path Aim: move around or reach a
destination?
12
Outline
Basic Pathfinding Random Movement and Obstacle
Avoidance Tracing Around Obstacles Breadcrumb Pathfinding Path Following Wall Tracing Waypoint Navigation
13
Basic Pathfinding
Simple path movement
Unnatural-looking path
Line-of-Sight path movement
More natural-looking path
Starting point
Destination
Starting point
Destination
14
Basic Pathfinding-Problems with Obstacles
Obstacles
The function of obstacle avoidance is necessary element in pathfinding
15
Random Movement and Obstacle Avoidance
Simple and Effective Method Suitable Environment
Few obstacles Example: A game environment
with sparsely placed trees
No
Move in Random Direction
Follow Straight Path
to Player
Player in Line of Sight?
YesPlayer’s position
16
Tracing Around Obstacles
Find a Path around Large Obstacles
Suitable Environment Large obstacles Example: a mountain range in a
strategy or role-playing game Methods
Basic Tracing Improved Tracing Tracing with Line of Sight
17
Basic Tracing - when to stop tracing?
Follow the edge of the obstacle in an attempt to work way around it
Destination
18
Improved Tracing
Avoid looping back to the starting point
Calculate a line from the tracing starts and the desired destination. Continue tracing until the line is crossed Switch to simple path finding state
Destination
19
Tracing with Line of Sight Algorithm
20
Breadcrumb Pathfinding
Memorize the previous play’s steps Each member follow the leader’s
breadcrumb Suitable Environment
Move groups of computer-controlled characters
Advantages Seemed more intelligent More effective and efficient
21
Breadcrumb Trail
Recording
the player positions
Dropping breadcrumbs
Finding and Following
the breadcrumbs
Record 15 steps
22
Detect and Follow Breadcrumb Trail
Are neighbors are breadcrumbs?
YesFollow the breadcrumb
No
Randomly move one step
Current position
Find neighbors:
Eight possible directions
Detect Breadcrumbs
Follow shortest path
Following the exact footsteps of the player would be rather unnatural. It is more intelligent to follow the detected shortest path.
23
Path Following-Containment Problem
Starting point
Destination
Pathfinding
Pathfinding Moving from a starting
point to a desired destination
Path following No obvious destination More of a containment
problem: containing the computer-controlled role to the road area
E.g., a car-racing game requires the computer-controlled cars to navigate a roadway Path
Following
24
Path Following-Direction Analysis
Terrain Analysis Detect Possible Directions Weighting Directions Update Position
It would look unnatural if the computer-controlled object simply moves randomly on the road. We need to analyze the surrounding terrain and decide on the best move.
25
Terrain Analysis and Direction Analysis
(x-1, y+1)
(x, y+1)
(x+1, y+1)
(x-1, y)
(x, y) (x+1, y)
(x-1, y-1)
(x, y-1)
(x+1, y-1)
Are the eight neighbors contained in the terrain?
Terrain analysis Consider tile-based
environment
Determine possible directions
12
3
4
56
7
8
26
Weighting Directions
12
3
4
56
7
8
Current direction
(+2)
(+1) (+
0)
(+0)
(-1)(+0)
(+0)
(+1)
Current direction Up and left: direction 1
Weighting directions Direction 1: +2
Continuing current direction is most preferred
Directions 2 and 8: +1 The next two best
possibilities Directions 3 and 7: 0 Direction 5: -1
Complete opposite direction is the most undesirable
27
Direction Determination
Among possible directions
Choose one with maximum weight
Move in the selected direction
Update position Improve robustness
Examining more than just the adjacent tiles
Road Path
28
Wall Tracing
Exploration Technique Environment
Many small rooms Maze-like game Example: computer-controlled
characters explore the environment to search of the player, weapons, treasures,…
29
Example Environment
Randomly moving about the environment is one often used solution which offers a certain level of unpredictability. However, this also can result in getting stuck in small rooms for long periods of time.
30
Wall Tracing Methods
Move in Random Directions Systematically Explore the
Entire Environment Left-handed approach
If possible, always move left Completely explore the
environment Conceptually easy More effective
12
3
4
56
7
8
Left
Back
Straight
Right
Directions in view of players
31
Left-handed Strategy
Straight?
Possible Next Step
Impossible
Left?Possible Next Step
Impossible
Right?possible Next Step
Impossible
Back? Next Step
32
Wall-tracing Path
Left-handed movement method The character enters every room in the
game environment The method is prevented from allowing
the character to reach every single room
33
Waypoint Navigation
Pre-calculate Paths Reduce Pathfinding Time
and CPU Load Method
Placing some nodes in the game environment
Finding paths between nodes
34
Placing Nodes
Rules of placing nodes Every point is in the line of sight of
at least one node Every node is in the line of sight of
at least one other node
Labeling nodes
35
Finding Path
From A to E: A -> B -> C -> E
A path can be found from any room to any other room.
Step 1. Calculate which node is nearest and in the line of sight
Step 2. Follow the connections
How does the computer know the connections among the nodes?
36
Building a Path
Node Table Establish the
connections between nodes
Find a Shortest Path between Two Nodes
- B B B B B B
- -
-
-
-
-
A B C D E F G
A
B
C
D
E
F
G
37
Completed Node Table
- B B B B B B
A - C C C C C
B B - D E E E
C C C - C C C
C C C C - F F
E E E E E - G
F F F F F F -
A B C D E F GA
B
C
D
E
F
G
The first step to take from node C to node F.
Filling in the table is to determine the first node to visit when moving from any starting node to any ending node.
Start
End
38
Finding the Path
Goal B G
B -> G Table intersection ->C Move ->CC -> G Table intersection ->E Move ->EE -> G Table intersection ->F Move ->FF -> G Table intersection ->G Move ->G
B -> C -> E -> F -> G
39
A* Algorithm
One of the most widely used pathfinding algorithms
It is guaranteed to find the best path between any two points
Relatively efficient algorithm Can be used whenever possible unless
dealing with some special-case scenario E.g., if a clear line of sight exists with no
obstacles between the starting point and ending point, a faster line-of-sight movement algorithm would be better.
Difficult to be understood by new game developers
40
Steps in A* Algorithm
Defining and Simplifying the Search Area
Starting the Search among a reasonable number of nodes
Path Scoring to Determine the Best Path
Finding a Dead End Incorporating the Terrain Cost Influence Cost Mapping
41
Defining the Search Area
Simplifying the Search Area
Placing nodes Reduce the nodes Maintain a list of
connections A* Algorithm is more
suitable to tiled environment
Each tile serves as a node
Simplifying the search area
Tiled search area
42
Starting the Search
Goal: Find the shortest path between any two nodes
Suitable Environment A small tiled environment Each tile is a node Some nodes contain obstacles
Search Method Begin at the starting point and spread
to the adjacent tiles
43
Search Strategy
open list – keep track of the tiled needed to be checked
closed list – the tiles that already were checked and no longer to be examined
Link – from neighbors to the currently considered tile
open list <- starting point;
For each element in open list
Check each adjacent node of this element;
If it is valid, add it to open list and calculate cost;
Add the current element in open list to closed list;
Build a link from current element to valid adjacent nodes;
44
Search Scenario
A tiled search area
? ? ?
? ?
? ? ?
Adjacent tiles to check
Obstacle area
Starting point Destination
45
After Checking all adjacent tiles Add to closed list
Building a link
open
open
openopen openopenopen
open
open
open
openopen
open
open openopen
Searching Process
46
Scoring Each Tile
Starting point
Given tile
Destination
cost1 cost2
Determined by heuristic
Score = Cost from Start + Heuristic
Cost to move from the starting tile to any given tile Cost to move from the given tile to the destination tile
47
Calculating Path Score
c (cost) = s + h
s – the number of steps from the starting tile to the given tile;
h – the number of steps from given tile to the destination.
openopenopen
open
open
open
openopenc = 1 + 4 = 5
Minimum {c} = 4
48
Examining the Tiles with Minimum Cost
openopenclosed
open
open
open
openopen
open
open
open
Currently considered tile
The starting point is added in the closed list.
The tile with minimum cost is examined currently.
There are three valid tiles in neighbors of current tile, which are added to open list.
49
Spread to Adjacent Tiles
closed
closed
closed
closed
closed
closed
closed
closed
closed
open
open
openopen
open
open
Current tile
closed
closed
closed
closed
closed
closed
closed
closed
closed
closed
closed
closed
closed
closed
open
Current tile
open open
open
50
Completed Path
closedclosedclosed
closed
closed
closed
closed
closed
closed
closed
closed
closed
closed
closed
closed
closed
closed
closed
open
open
closed
closed
closed
closed
closed
The path is found when the destination is added in the open list.
51
Finding a Dead Path
Monitor the open list – if no member in the open list to examine, then reach a dead path.
It is always that no valid path exists between any two given points. How do we know when we have reached a dead end?
52
Terrain Cost
Shortest Path = Fastest Path? Which is faster?
A long walk along a road A shorter walk through a swamp
Consider Terrain Cost
Total Cost from Start = Cost from Start + Terrain Cost
Score = Total Cost from Start + Heuristic
53
Types of Terrains and Costs
Open Terrain
Cost = 1
Grassland Cost = 3
Swampland
Cost = 5
Other terrains: hills, rivers, …
Previously, the cost of moving from one node to another was always 1.
54
Finding Lowest-Cost Path
Orig
inal
path
The lowest-cost path is not necessarily the shortest path.
Lowest cost
Shortest
path
55
Influence cost Mapping
Influence cost mapping – a way to vary the cost of the A* nodes depending on what is happening in the game, such as enemy…
Building a Influence Map Position Orientation
The influence map cost will be added to each node’s value when calculating possible paths.
56
Building a Influence Map
Influenced by the enemy firing zone
The tiles in the line of fire still are passable, just at a high cost.
If no other path is possible, or if the alternate paths have a higher cost, the game character will pass through the line of fire.
57
Influenced by What the Character Does
Influenced by the number of kills
Each time the player makes a kill, that node increases in cost (e.g., possible places of NPC appearance).