Imagine a City. You want to walk through the whole city.
You’ll first start the navmesh-pathfinding and throw that path at a path-follow behavior (to smooth the movement) along with an avoidance behavior.
Now due to the smoothening, what happens when the npc is stuck at a corner (since that curve is simply not walkable)?
I would need a steering behavior to check this, though it doesn’t do a lookahead (Only taking the curve when you’re not stuck the whole curve)
Another case would be trying to avoid a collission with another npc and bugging into a street-lantern.
I know that those are rare cases and some simply anti-stuck mechanism could bypass this, but maybe someone knows a nice way to do it right?
When you now consider generating a navmesh-path for every frame (and hence steering movement), you have multiple problems:
When there is no obstacle, it simply costs cpu power.
When there is an obstacle, it either takes a long detour to reach the spot or we cannot generate a path.
Also you have problems like walking up a hill then, since the steering behavior doesn’t consider the Y-Direction and thus the navmesh would always say “not reachable”.