Originally Posted by
Apoc
With a proper navmesh (assuming the entire world is generated), should allow you to go pretty much anywhere and never be stuck. (Save for the fear/knockback etc, glitches into/behind game objects) The more efficient way of checking obstacles and obstructions, is through the navmesh itself, as you can load that data quicker, and it has the benefit of being in your own code (which makes it that much easier to work with)
Although, that is double-dipping in the long run. (Loading the current map stuff from memory, and parsing it is a lot more efficient than loading your nav mesh from disk, then doing all your mesh generating and such)
Simply leaving 'void space' in your navmesh would be a much more efficient method of collision detection than actively doing collision checks. (If you already know you'll run into something there, why the **** would you even let your nav system know it's there? What it doesn't know about, it ignores, and goes around!)
And yes, A* or Dijkstra are two of the best pathfinding algorithms there are. (A* is great for fragmented meshes such as a WoW nav mesh, Dijkstra's is great for it as well, but suffers some performance issues)
@Cypher: The nav system should never be 'adding' new points to the mesh, simply flagging points as good/bad depending on if it has issues. (I.E: running into a random rock somewhere that you can't get passed, would flag that point as bad, and the pathfinder should avoid it)