0AD Pathfinder Design [pdf]
github.com
github.com
Basically, grab some graph paper. Put your left index finger on start. Right index finger on end.
Move your fingers towards each other, avoiding obstacles as you go.
Wherever they happen to meet, the path formed by the trail of both your fingers combined is the path to use.
That's the general idea. It's important to trace from both simultaneously, otherwise you run into some degeneracies.
> (Since our maps are large and open [] and must support dynamic generation [] and dynamic modification [], a grid is likely better than a nav mesh)
Can someone explain why this is the case? I feel like using a grid will result in them generating the equivalent of a fresh nav mesh every time they want to pathfind, as opposed to using a cached navmesh (generated when terrain is loaded) which they can modify in place every time a dynamic event occurs (building placed).
https://github.com/spring/spring/tree/9bec15418279f1ecd87a55...
Always fascinating is the actual Edge-Case Handling (UnitsStuck). Setting Collission off and sending Units back shortest path can yield unexpected results there.
Regards