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 highlevel 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
Terrainbased 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)
NonSymmetric 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: Gridbased 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
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 highlevel 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
Terrainbased 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)
NonSymmetric 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: Gridbased 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