Index of /Kuliah2016-2017/KecerdasanBuatanUntukGame

Artificial Intelligence in 
Game Design
Map Representation and 
Path Finding

Path Creation
Strategy
“Where to move to”

Path Planning
“How to get there”

Movement
“Get there”

Current 
location

Idea: Specify goal location and let AI find path from current position to goal

Waypoints

• Path = graph structure
• Vertices = waypoints on path
• Edges between waypoints directly reachable from one 
another

Current 
location

Waypoints and Costs
• Goals: 
– Provide waypoints that let characters reach all 
locations on level
• Can SEEK any location from some waypoint

– Minimize number of waypoints
• Cost of path planning = O(number of waypoints)2

• Key idea:
– Waypoint creation done offline (during game design)
– Path planning  done many times during gameplay


Defining Waypoints
• Defining waypoints manually
– Usually at points where direction change necessary
• Corners
• Intersections
• Doors

– Character must be able to directly seek waypoint from any 
adjacent waypoint
– Character must be able to directly seek all points in map from 
some waypoint

Defining Waypoints Manually

Defining Waypoints
• Convenient to generate waypoints automatically
• Simplest case: simple 2D grid (square or hex)
– Some points impassible (water, mountains, etc.)


Defining Waypoints Automatically
• Can often use floor tiles
– Used by level designer to 
create level
– Used to define visibility, 
lighting areas, where sounds 
can be heard, etc.
– Usually triangular or 
rectangular

Defining Waypoints Automatically
• One waypoint per tile
– Usually in center

• Link waypoints in adjacent
tiles
• May still need to tweak 
manually
– Make sure all points directly 
reachable from a waypoint

– Add strategic waypoints 
(cover, shadow, etc.)
– Make special waypoints for 
door entry, exit, etc.

Triangular Mesh Generation
• Automatically generating triangular tiles that cover level
– Connect some two adjacent walls to form a triangle
– Continue connecting adjacent walls and/or adjacent borders
– Continue until all walls are part of some triangle

Waypoint Cleanup
• Can automatically 
remove some “redundant” 
waypoints
– Not an endpoint
(degree > 1)
– All adjacent points can 
directly reach each 
other without using 

that waypoint
– Often based on 
visibility (ray tracing)

Path Creation
• Path = list of adjacent 
waypoints
73

27

21

73

45

• Move along path using 
FollowPath steering
Desired 

path

– Seek “close enough” to 
next path waypoint

27
45
21

Path Creation
• Initial waypoint =
– Waypoint in same tile as 
character
– Closest waypoint to character

• May need to test each
– Avoid going backward initially
– Less of a problem with small
tiles


• Seek that first waypoint

Goal:
ATM

Should 
seek 
this 
first

Path Creation
• Reaching goal =
– Character in same tile as 
goal
– Character at waypoint 
nearest goal

• Arrive at goal from that 
last waypoint


Goal

Hierarchical Paths
• Simple maps at different levels of detail
– Better than single map with thousands of points
– Single best solution to minimizing pathfinding costs

• Connect points on high­level  maps to entrances/exits on 
low level maps

Hierarchical Paths
• Requires hierarchical  representation of location
Me
At podium
Room 301
Meshel Hall

Path to room 301 exit
Path from 301 exit to Meshel Hall exit
Path from Meshel Hall exit to 

Kilcawley Center entrance

Holy Grail
Under seat D001

Path from Kilcawley Center entrance 
to Computer Lab entrance

Computer Lab
Kilcawley Center

Path from Computer Lab entrance 
to seat D001

Path Planning
Good path

• May have several
possible paths from 
current location to goal

• Need to find “best” path
– Otherwise character 
does not look intelligent!

Bad path

Goal

Edge Costs

Good path
Cost = 22

• “Best” path defined 
by edge costs
– Time to travel path
– Distance, etc.

6


4
4

3

5
4
Goal

• Best path = path with 
smallest total cost

7

5

4

Bad path
Cost = 47

5

4
5

2
3

4

4

Terrain­based Costs
• Can base cost on terrain type





Grass = 1
Desert = 2
Forest = 3
River = 20

• Often multiply by edge 
distance
– 5 miles of desert = cost of 10
– 8 miles of grass with ¼ mile river
= cost of 8 + 5 = 13

Other Edge Costs
• Danger
– Cost of traveling through enemy territory = 5 * normal cost
– Important part of 
tactical movement

Other Edge Costs
• Visibility
– Dark = factor of 3
– Fog = factor of 2
– Can also add to
danger

Long path now 
best

Character Edge Costs
• Different characters may have different edge costs





Grass = 2
Desert = 2
Forest = 10
River = 30






Grass = 1
Desert = 3
Forest = 2
River = 10

• Squad cost = max(individual  costs)

Non­Symmetric Edge Costs
• Often harder to go one 
direction than another
– Stairs
– Jumping from one level 
to lower level

• Will have different
costs in each direction
– Two directed edges
instead of one directed 
edge
– No second edge in “one 
way” path

1
4

2

Turning Costs
• Some characters require time to realistically  make a 
direction change
– Part of edge cost
– Separate edge from location to same location
Align

Arrive

3
5
4

Seek

Inflection Points
• Waypoints often near convex corners
– Shortest path in wide areas
– Better than putting waypoint in center of area

Path given by 
floor tiles

Faster path

Inflection Points
• Put waypoint at each convex corner
• Move out some safeRadius from corner
• Connect waypoints visible from one another

safeRadius

safeRadius

Inflection Points



Potential problem: “jagged” areas could create too many waypoints
Solution: Only add waypoints for obstacles between critical areas 
(such as doors)
– Recursively add waypoints until critical areas connected

Irrelevant inflection points

Inflection Points
• Automatic creation of 
waypoints on 
arbitrary racing track

Path Smoothing
• Problem: Grid­based floor tiles with waypoints at center
– Jagged” paths
– Too many unnecessary turns
– Better to create path using non adjacent nodes

Path Smoothing
• Recursive algorithm:
– Draw line between start and goal
– Stop at obstacle
– Continue