I'm using a grid map for a top-down RTS, and using a* for pathfinding. Specifically, I've found one implementation which is heavily optimised, and I've been using it for a while, but now I've realised I only checked it with infantry and not with vehicles, which take more map space, and so I can't rely on the algorithm - what would be "hugging a cliff" for infantry would be passing through it for a vehicle.
So, I'm trying to decide what to do. I see three options. a. The obvious thing is write my own A* implementation, but this is both very time consuming and I presume I won't reach near the optimised speed of the algorithm I found. (rewriting the algorithm is out of the question - I just don't have the time to try to read it and understand it).
b. corrections - read the path generated by the algorithm, and either correct it at every step or when receiving the path recalculate it for width.
c. Hold variable sized maps, that are different representations of the free space on the map, on account of size.
Option C sounds to me the simpolest, but is likely to be too memory heavy, even if there're only three-four size categories. Between options a & b, I'm not sure what is likely to take more calculation time - a non-optimised A*, or running over & correcting a path.