Research about Pathfinding, AI and Voronoi diagrams
Posted: 05 Nov 2005, 00:11
Updated 27/01/2006 - new links added at the bottom of this post.
I've been promising for a while to post these materials, which detail ideas on how to improve the pathfinding engine and AI of TA Spring.
I'm hoping that one day we can renovate Spring's pathfinding engine using the system described in document #1 to move units, and the one described in document #3 to create the "backbone path" doc #1 talks about. We'll need to have a some system to account for the dynamically modifiable terrain in Spring, though.
Let me emphasize that all these papers are really worth reading (even if you skip over the code/formulas-heavy sections). I selected them after a long research, and wading through masses of other documents. These are actual recent scientific papers, which describe ideas that are common to both the RTS gaming and robotics fields. Please take time to analyse them, and post your comments.
Most of these links are directly to pdf files, so you might want to right-click and save as instead of opening them in your browser.
I'll briefly comment each set of files, and add more links/comments as I get the time.
Core ideas for a new pathfinding engine
1. Finding paths for Coherent Groups using Clearance
2. Automatic Construction of High Quality Roadmaps for Path Planning
The first document is the best, it shows how you can move a whole group of units while calculating only one path, and keeping the group together. The promise of low CPU use is very interesting for Spring!
The second document covers similar topics, but it has some ideas that complement the first paper, such as how to move the path away from obstacles to have sufficient clearance.
3. The Visibility-Voronoi Complex and it's applications
A very technical paper, but that shows an interesting way of quickly calculating smooths paths with different clearances from obstacles. Of course these calculations are based on polygonal obstacles, not real-world terrain such as you can have in Spring. Therefore we'd need to have an algorithm that analyses a Spring map (before the game) and divides it in regions that have roughly the same kind of traversability all over them (ranging from "impassable" to "flat ground without obstacles").
Chapter 3 in the following paper describes some elements of this kind of terrain analysis algorithm:
4. Terrain-Based Information Fusion and Inference
The last part of the paper also has interesting considerations about Avenues of Approach - AI programmers, this could be of use if you want your computer opponent to make intelligent attack choices.
5. Formation-Based Pathfinding With Real-World Vehicles
A somewhat dated paper, but I find it interesting because it deals with the problem of moving vehicles with speed and turning angle constraints. You have to deal with this if you use steering behavior for something else that moving dots. It even talks about vehicles backing and making three-point turns, which would be a nice addition to Spring pathfinding.
AI and Terrain analysis/decomposition ideas
6. How qualitative spatial reasoning can improve strategy game AIs
This is a must-read: it covers in summary plenty of good ideas for both AI and pathfinding. From page 5: "Much effort has been put into developing search techniques such as A*. Much less effort has been put into creating better descriptions of space to search through."
MORE LINKS
A nice applet that allows you to make polygonal shapes and see the resulting voronoi diagram on-the-fly. The page is in german. Click the word "start" - you need to have Java installed. (If you can't find the link to start the program just click here.)
Voronoi.com - the voronoi diagram and its applications.
Good reading! (And better implementing...)
I've been promising for a while to post these materials, which detail ideas on how to improve the pathfinding engine and AI of TA Spring.
I'm hoping that one day we can renovate Spring's pathfinding engine using the system described in document #1 to move units, and the one described in document #3 to create the "backbone path" doc #1 talks about. We'll need to have a some system to account for the dynamically modifiable terrain in Spring, though.
Let me emphasize that all these papers are really worth reading (even if you skip over the code/formulas-heavy sections). I selected them after a long research, and wading through masses of other documents. These are actual recent scientific papers, which describe ideas that are common to both the RTS gaming and robotics fields. Please take time to analyse them, and post your comments.
Most of these links are directly to pdf files, so you might want to right-click and save as instead of opening them in your browser.
I'll briefly comment each set of files, and add more links/comments as I get the time.
Core ideas for a new pathfinding engine
1. Finding paths for Coherent Groups using Clearance
2. Automatic Construction of High Quality Roadmaps for Path Planning
The first document is the best, it shows how you can move a whole group of units while calculating only one path, and keeping the group together. The promise of low CPU use is very interesting for Spring!
The second document covers similar topics, but it has some ideas that complement the first paper, such as how to move the path away from obstacles to have sufficient clearance.
3. The Visibility-Voronoi Complex and it's applications
A very technical paper, but that shows an interesting way of quickly calculating smooths paths with different clearances from obstacles. Of course these calculations are based on polygonal obstacles, not real-world terrain such as you can have in Spring. Therefore we'd need to have an algorithm that analyses a Spring map (before the game) and divides it in regions that have roughly the same kind of traversability all over them (ranging from "impassable" to "flat ground without obstacles").
Chapter 3 in the following paper describes some elements of this kind of terrain analysis algorithm:
4. Terrain-Based Information Fusion and Inference
The last part of the paper also has interesting considerations about Avenues of Approach - AI programmers, this could be of use if you want your computer opponent to make intelligent attack choices.
5. Formation-Based Pathfinding With Real-World Vehicles
A somewhat dated paper, but I find it interesting because it deals with the problem of moving vehicles with speed and turning angle constraints. You have to deal with this if you use steering behavior for something else that moving dots. It even talks about vehicles backing and making three-point turns, which would be a nice addition to Spring pathfinding.
AI and Terrain analysis/decomposition ideas
6. How qualitative spatial reasoning can improve strategy game AIs
This is a must-read: it covers in summary plenty of good ideas for both AI and pathfinding. From page 5: "Much effort has been put into developing search techniques such as A*. Much less effort has been put into creating better descriptions of space to search through."
MORE LINKS
A nice applet that allows you to make polygonal shapes and see the resulting voronoi diagram on-the-fly. The page is in german. Click the word "start" - you need to have Java installed. (If you can't find the link to start the program just click here.)
Voronoi.com - the voronoi diagram and its applications.
Good reading! (And better implementing...)