Or continue right here, since it's a rather relevant subject for this thread?
Note that pathfinding is very variable, things will either jerk a lot or the units will have different response times (if one decides to try frame-distributed computing).
I guess that free roaming will pose a lot of problems regarding collision detection, so let's stick to a chessboard-approach (tiles, simply).
Also, buildings can plop up near anywhere, so any techniques requiring preprocessing is out of the question. Maybe one could put a limit on how close buildings may be built, or let units be able to walk on the edge of buildings? That'd solve pretty much everything, but it sure is a pretty crude solution
An unstable method is to refine paths. First, build a shortest path from A to B without considering any obstacles on the way. Start tracing the path until an obstacle is hit. Extruding two normals from the path close to the point where the obstacle was hit, look for some free space on the map. Adjust the old path by adding a "path node" in the free space. Repeat tracing and refining until a clear path has been built. Got real potential of becoming a resource hog, especially when the number of nodes and interconnected paths grow like crazy, plus the path could become pretty wacky.
Well, that's my pretty boring introducing post, gotta go to class soon
![Razz :P](./images/smilies/grayscale_grin.gif)