• Ei tuloksia

§5 Path Finding

N/A
N/A
Info
Lataa
Protected

Academic year: 2022

Jaa "§5 Path Finding"

Copied!
2
0
0

Kokoteksti

(1)

1

§5 Path Finding

§5 Path Finding

„

„

common problem in computer games common problem in computer games

„

„routing characters, troops etc.routing characters, troops etc.

„„

computationally intensive problem computationally intensive problem

„

„complex game worldscomplex game worlds

„„high number of entitieshigh number of entities

„

„dynamically changing environmentsdynamically changing environments

„

„real-real-time responsetime response

Problem statement Problem statement

„

„

given a start point s given a start point

s

and a goal point and a goal point r

r, find a

, find a path from

path from s

s

to r to

r

minimizing a given criterion minimizing a given criterion

„

„

search problem formulation search problem formulation

„

„find a path that minimizes the costfind a path that minimizes the cost

„„

optimization problem formulation optimization problem formulation

„

„minimize cost subject to the constraint of the pathminimize cost subject to the constraint of the path

The three phases of path finding The three phases of path finding

1.

1.

discretize the game world discretize the game world

„„ select the waypoints and connectionsselect the waypoints and connections 2.

2.

solve the path finding problem in a graph solve the path finding problem in a graph

„

„ let waypoints = vertices, connections = edges, let waypoints = vertices, connections = edges, costs = weights

costs = weights

„

„ find a minimum path in the graphfind a minimum path in the graph 3.

3.

realize the movement in the game world realize the movement in the game world

„

„ aesthetic concernsaesthetic concerns

„

„ user-user-interface concernsinterface concerns

Discretization Discretization

„„

waypoints (vertices) waypoints (vertices)

„„doorways, corners, obstacles, tunnels, passages, …doorways, corners, obstacles, tunnels, passages, …

„

„

connections (edges) connections (edges)

„

„based on the game world geometry, are two based on the game world geometry, are two waypoints connected

waypoints connected

„„

costs (weights) costs (weights)

„

„distance, environment type, difference in altitude, …distance, environment type, difference in altitude, …

„

„

manual or automatic process? manual or automatic process?

„„grids, navigation meshesgrids, navigation meshes

Grid Grid

„

„ regular tiling of polygonsregular tiling of polygons

„

„square gridsquare grid

„

„triangular gridtriangular grid

„

„hexagonal gridhexagonal grid

„

„ tile = waypointtile = waypoint

„

„ tile’s neighbourhood = tile’s neighbourhood = connections

connections

Navigation mesh Navigation mesh

„„

convex partitioning of the game world geometry convex partitioning of the game world geometry

„„convex polygons covering the game worldconvex polygons covering the game world

„

„adjacent polygons share only two points and one adjacent polygons share only two points and one edge

edge

„„no overlappingno overlapping

„„

polygon = waypoint polygon = waypoint

„„middlepoints, centre of edgesmiddlepoints, centre of edges

„

„

adjacent polygons = connections adjacent polygons = connections

(2)

2 Solving the convex partitioning

Solving the convex partitioning problem

problem

„„ minimize the number of polygonsminimize the number of polygons

„

„points: npoints: n

„

„points with concave interior angle (notches): rpoints with concave interior angle (notches): r≤ ≤ nn− 3− 3

„

„ optimal solutionoptimal solution

„

„dynamic programming: Odynamic programming: O((rr22nnlog log nn))

„„ HertelHertel––Mehlhorn heuristicMehlhorn heuristic

„

„number of polygons ≤ 4 × optimumnumber of polygons ≤ 4 × optimum

„

„running time: Orunning time: O((nn+ + rrlog rlog r))

„

„requires triangulationrequires triangulation

„

„running time: running time: OO((nn) (at least in theory)) (at least in theory)

„

„Seidel’s algorithm: O(Seidel’s algorithm: O(nnlg* lg* nn) (also in practice)) (also in practice)

Path finding in a graph Path finding in a graph

„

„

after discretization form a graph G after discretization form a graph

G

= (V = (

V,

, E

E)

)

„

„waypoints = vertices (Vwaypoints = vertices (V))

„„connections = edges (Econnections = edges (E))

„

„costs = weights of edges (weightcosts = weights of edges (weight: : EE→ → RR++))

„

„

next, find a path in the graph next, find a path in the graph

Graph algorithms Graph algorithms

„

„

breadth breadth- -first search first search

„

„running time: Orunning time: O(|(|VV| + || + |EE|)|)

„„

depth depth- -first search first search

„

„running time: Θrunning time: Θ(|(|VV| + || + |EE|)|)

„„

Dijkstra’s algorithm Dijkstra’s algorithm

„„running time: Orunning time: O(|(|VV||22))

„

„can be improved to Ocan be improved to O(|(|VV| log || log |VV| + || + |EE|)|)

Heuristical improvements Heuristical improvements

„

„

best- best -first search first search

„

„order the vertices in the neighbourhood according to order the vertices in the neighbourhood according to a heuristic estimate of their closeness to the goal a heuristic estimate of their closeness to the goal

„

„returns optimal solutionreturns optimal solution

„

„

beam search beam search

„

„order the vertices but expand only the most order the vertices but expand only the most promising candidates

promising candidates

„

„can return suboptimal solutioncan return suboptimal solution

Viittaukset

LIITTYVÄT TIEDOSTOT

 to provide a glance into the world of computer games as seen from the perspective of a computer

discretize the game world.  select the waypoints

 Although this is the de facto approach in (commercial) computer games, are there alternatives. 

Three perspectives for decision- making in computer games.  level

deeper games: human-like bots, interactive stories software construction practices: game programming is no longer a reservate for wizards, nerds and geeks off-the-shelf components:

™ a measure of how much data is lost by a measure of how much data is lost by the network during the journey from the network during the journey from source to destination

„ a game that is carried out with the help of a a game that is carried out with the help of a computer program.

„ Although this is the Although this is the de facto de facto approach in approach in (commercial) computer games, are there (commercial) computer games, are there