Upload
tress
View
51
Download
1
Embed Size (px)
DESCRIPTION
Pathfinding and Movement. Michael Moll September 29, 2004. A Character Has to Move. Amount of processing time per cycle for AI is low While movement is obviously a vital part of a game, it’s not exactly the most interesting task performed - PowerPoint PPT Presentation
Citation preview
Pathfinding and Movement
Michael Moll
September 29, 2004
A Character Has to Move
• Amount of processing time per cycle for AI is low• While movement is obviously a vital part of a
game, it’s not exactly the most interesting task performed
• With A* as an example, plenty of algorithms to find paths, but probably less considered, but more important is
How will we represent space we move through??
Overview
• Alternative Search Space Representations– Grids– Graphs– Meshes…
• Ok, we know what the world looks like, how can we move through it?– A*– Precomputed Pathfinding with Navigation Sets– Potential Fields
Search Space Considerations
• Scope of articles in book and presentation are 2-D worlds
• Main consideration for search spaces are memory requirements and if they facilitate fast searches (using whatever algorithm we choose)
• Since all of these are basically graphs, bigger worlds will require more nodes, more edges more memory, longer searches
Path Optimality
More Considerations
• Representation must take into account way an character moves (size, etc)
• How will we create the search space?
• Can they be automatically generated?
• Scripting paths should use different structure
Regular Grids
Regular Grids
• How do we generate?• Advantages
– Random access lookup (O(1)) to determine what tile lies at any coordinate
– Complete
• Negatives– Usually requires large number of nodes to accurately
represent world– Path Quality
- Agent can only walk in four cardinal directions? That’s no fun.
- Let them walk diagonals! Still not much fun
Regular Grids
NWSE Diagonals
String-PullingCatmull-Rom Spline
Grids as Graphs
• Everything else we look at will be a graph
• Grids are graphs too– Each cell is a node and edges are adjoining
cells
• Maybe we should just handle grid as a graph – Undirected graph could tell us about
topography, etc, whereas array can’t
Grids as Graphs
Corner Graphs
• Waypoints around obstacles
Corner Graphs
• How do we generate?– Identify convex corners, can character walk in straight line
between? Add edge if possible
• Advantages– Less memory– Faster generation
• Negatives – Character will “walk on a rail” hugging edges of obstacles
instead of walking through open space– And what about different sized characters?– Lookup is O(n2), have to check every node in graph against
every other. Imagine a world with a boat load or corners!
Corner Graphs
Corner Graphs
Waypoint Graphs
• Place nodes in middle of rooms instead of at convex corners
• How do we generate? – Place nodes wherever we want (suits 3-D worlds
But requires hand tuning to be effective )
• Advantages– Reduce memory footprint from regular grids, reduce
wall hugging from corner graphs– Work well in “human” architectures
• Negatives– Still O(n2)– Path Quality vs. Simplicity– Works poorly in open areas
Waypoint Graphs
Waypoint Graphs
Circle-Based Waypoint Graphs
• Add radius parameter to indicate open space near waypoint
Circle-Based Waypoint
• Advantages– Only look at overlapping circles, alleviating
O(n2) problem from before– Easier to obtain optimal paths– Works well in open terrain
• Negatives– Doesn’t work as well in human architectures
that aren’t circle friendly
Space-Filling Volumes
• Use rectangles or 3-D Boxes instead of circles
Space-Filling Volumes
• How do we generate?– Seed and Grow– Make Grid and Merge
• Very similar to circle-based, but handles angles better
Navigation Meshes
• Enough with the graphs already!
• Let’s try and cover walk able surfaces with convex polygons
• Character can travel between adjoining polygons
Navigation Meshes
Navigation Meshes
• How do we generate? – By hand (time consuming)
• Automated tools to analyze and optimize geometry of world
• Too complex and not represented as a single polygon mesh, instead may be overlapping, etc
Navigation Meshes
• Advantages– Quickly find optimal paths independent of
character shapes and capabilities– Handle indoor and outdoor terrains well
• Negatives– Can become complex and expensive memory
wise– Difficult to generate
Problem with N-Sided Meshes
Interacting with Pathfinding
• What about dynamic objects in world?
• All the representations discussed have been static and obviously can’t handle a dynamic world directly
• These representations need to be able to provide information to system determining path– Waypoint Graphs and Corner
Graphs don’t illustrate walk able surfaces
– Meshes and Grids do map every walk able surface
– Space-filling volumes and Circle Waypoints provide some representation of walk able areas
Further Options for Representation
• Any other ideas of what we can do to make job of path finding algorithm easier?
• Prof. Munoz has mentioned this before….
• Hierarchical Representations– Choose most suitable
scheme for given world, and break up into more manageable pieces
• Any other ideas of what we can do to make job of path finding algorithm easier?
• Prof. Munoz has mentioned this before….
• Hierarchical Representations– Choose most suitable
scheme for given world, and break up into more manageable pieces
Path finding
• Now that we have world represented, how do we plan movement?– A*, Depth-First, Dijkstra
• Dynamic path finding is expensive
– Precompiled solutions can eliminate runtime cost, but memory expensive
• Article suggests technique of Navigation Set Hierarchy
Transition Table• Main element in pre computed solutions is a
lookup table• Each entry represents next step to take from
one node to some goal node
Transition Table
Transition Table
• Do not need full search of nodes at run time, just series of lookups
• Fast, but becomes memory expensive as size of world grows– How expensive? n2
• …solution to shrink transition tables?
Hierarchy!
Navigation Set
• Self-contained collection of nodes that requires no links to external nodes to complete a path
• Nodes can be members of more than one set
• Goal: Find someway to partition large Navigation Sets into smaller ones
Complete Hierarchy
Interface Nodes and Sets
• Need to account for paths that cross navigation sets
• Any node that connects to a node in another navigation set is an interface node
• Have a second layer of nodes in addition to navigation sets, called interface set
• Interface set itself is a navigation set– Therefore, can make transition table for it too
Complete Hierarchy
• 21 nodes– 1 Navigation Set = 441 Table Entries (21*21)– 4 Navigation Sets = 183 Table Entries (7*7 + 7*7 + 7*7 + 6*6)
Constructing the Hierarchy
Two goals to process– How many tables to create?
• Amount of data needed is 1/n of original size + interface set• As size of navigation sets increase, cost of interface set
becomes less a factor
– Where to place boundaries?• Keep interface nodes as low as possible
Constructing the Hierarchy
Path finding
• Determine best paths leading from source node to boundary of source set
• Determine best path from source set boundary to goal set boundary
• Determine best path from goal set boundary to goal node
• Compile list of complete paths and choose one with least cost
Cost
• Amount of searching is limited to number of interface nodes in goal and source sets only
• Cost of searching between sets does not scale up with increases in navigation set size– Dependent on number of interface nodes
Applications of Navigation Set Hierarchy
• Interfacing heterogeneous navigation regions
• Navigation data on demand
• Extending beyond two tiers
Potential Fields
• Used by Scared Little Girl in Robocode
• Reactive approach to path finding– Setup virtual potential or force field around
objects– Must define field and agents reaction to field
• Interactions in general are explicitly stated and movement “emerges”– Paths are not planned explicitly
Potential Fields
• Think of world as matrix– Each point tells has value to represent
strength of field under it– Possibly assign potential based on distance
from goal• Might get stuck behind obstacle
– Result/Goal: “Glide down gradient/path of least resistance”
Potential Fields
• Advantages?– Works in continuous space! No need to make
grid, place waypoints, etc
• Disadvantages?– Can be trapped in local minima– It’s emergent, not sure what it will do
Commercial Implementations
• How advanced is Half-Life 2's path finding? Is it still based around triangulations, or is it more focused on waypoints, or both... or?
• Steve Bond: I guess the best answer to this question is "A character who wants to get somewhere will find a way to get there". Half-Life 2's path finding supports swimming, flying, jumping, climbing ladders, and opening doors.
Commercial Implementations
• Unreal Tournament– Waypoints with pre computed paths
• Navigation Points placed throughout world
– Assumes world is generally static• Run local path finding on top of global path finding• Local path finder constants queries physics engine
to find dynamic objects
Commercial Implementations
• Area Awareness System– Designed for Quake 3, used in Doom 3– Does not use waypoints, instead 3-D bounded
hulls, called areas• Cost of moving from one point to another within a
hull (reachable area) is minimal• Reachability can also be determined if a hull
touches another
– http://www.kbs.twi.tudelft.nl/docs/MSc/2001/Waveren_Jean-Paul_van/thesis.pdf
Commercial Implementations
• Half Life 2– Waypoint Based
• Call of Duty– Based off of Quake 3 AAS – Path finding handled by Conduit Engine
Sources• AI Game Programming Wisdom 2• H. Munoz-Avila & T. Fisher, Strategic Planning for Unreal
Tournament Bots.• First Person Shooter Architecture AI,
http://wiki.beyondunreal.com/wiki/First_Person_Shooter_AI_Architecture
• Bryan Stout, Smart Moves: Intelligent Pathfinding, http://www.gamasutra.com/features/19970801/pathfinding.htm
• JMP van Wavern, The Quake III Arena Bot, http://www.kbs.twi.tudelft.nl/docs/MSc/2001/Waveren_Jean-Paul_van/thesis.pdf
• Stefan Baert, Motion Planning Using Potential Fields, http://www.gamedev.net/reference/programming/features/motionplanning/
• John Spletzer, Lecture Notes from An Introduction to Mobile Robotics, 9/16/03