Steve Rabin
Principal Lecturer
DigiPen Institute of Technology
JPS+: Over 100x Faster than A*
JPS+ now with Goal Bounding:
Over 1000x Faster than A*
Slides:
www.gameaipro.com
Coming out April 2015
however, back in
June 2014
however,
2 months ago
Two Primary Techniques (Node Pruning)
Avoid Avoid
Redundant Wrong
Paths Directions
StarCraft Maps:
JPS+
400
350
300
250
200
150
100
50
0
StarCraft Maps:
Subgoal Graph
1800
1600
1400
1200
1000
800
600
400
200
0
StarCraft Maps:
JPS+ Goal Bounds
6000
5000
4000
3000
2000
1000
0
StarCraft Maps:
Comparison
400 1800 6000
350 1600
5000
1400
300
1200 4000
250
1000
200 3000
800
150
600 2000
100
400
1000
50 200
0 0 0
JPS+ Subgoal Graph JPS+ Goal Bounds
StarCraft Maps:
Comparison
6000
5000
4000
3000
1800 2000
1600
1400
1200
1000
1000
800
400 600
400
200 200
0
JPS+ Subgoal Graph JPS+ Goal Bounds
0 0
1 value 4 values Goal
JPS+ Per Edge Per Edge Bounding
Grids, NavMesh, Graphs
Avoid Avoid
Redundant Wrong
Paths Directions
1 value 4 values Goal
JPS+ Per Edge Per Edge Bounding
Grids, NavMesh, Graphs
5000
4000
3000
1800 2000
1600
1400
1200
1000
1000
800
400 600
400
200 200
0
JPS+ Subgoal Graph JPS+ Goal Bounds
0 0
Future Work
Can Goal Bounding work with Subgoal?
Can the precompute be done in O(n)?
Are there better bounds than a box?
How much does it actually speed up A* on a
NavMesh?
Questions?
steve.rabin@gmail.com
Slides at:
www.gameaipro.com