A* and HPA*
A* Theory and Research:
-
http://en.wikipedia.org/wiki/A*_search_algorithm,
-
http://www.policyalmanac.org/games/aStarTutorial.htm,
-
http://www.gamasutra.com/features/20010314/pinter_01.htm,
-
http://www.policyalmanac.org/games/binaryHeaps.htm,
-
http://www.gamasutra.com/features/gdcarchive/2000/pottinger.doc,
-
...
-
http://www.geocities.com/jheyesjones/astar.html,
-
http://theory.stanford.edu/~amitp/GameProgramming/,
-
http://www.gamasutra.com/features/19970801/pathfinding.htm,
HPA* Theory and Research:
-
http://aigamedev.com/theory/near-optimal-hierarchical-pathfinding,
-
http://www.cs.ualberta.ca/~mmueller/ps/hpastar.pdf,
Abstractions needed for implementation
-
choice of heuristic 4 (admissible + not admissible, see 1.4 impl **)
-
structure of node, extra nodes for current search, 1.4 (map./road)
-
open / closed set storage 1.1, 1.2,
-
Linked list
-
Heap, 1.2,
-
Matrix, 1.3
-
preprocess inacessible areas / islands / dead ends
-
variations, depth-first iterative deepening(lanctot-06-path-finding), IDA*(lanctot-06-path-finding), ..
-
tie breakers, 1.4 (heuristics)
-
early exit, 1.4 (impl.)
-
resume / interrupt + state, 1.4 (impl.)
-
reuse last open / closed (e.g for other units), 1.4 (impl.)
-
hierarchical, 1.4 (Maps)
-
take from http://theory.stanford.edu/~amitp/GameProgramming/ImplementationNotes.html#S1
-
path storage / compression, 1.4 (space)
Good Demo heuristic tests:
-
search algortihms: http://www.gamasutra.com/features/19970801/pathfinding.htm
-
heuristic compare: http://theory.stanford.edu/~amitp/GameProgramming/Heuristics.html