@toolforger said: Ca. 60k lines of C++ code if I read Things that I don't see it covering: 1) Going upwards is harder than walking a level surface. Agents should consider that by factoring in a higher distance for plans that involve an upward slope (this could complicate the computations). Similar considerations apply for rough ground (gravel, swamp etc.), and obstacles that don't block a path but need to be jumped or otherwise require extra effort. 2) Agents that can walk vertical or overhanging surfaces. E.g. the Xenomorphs can climb walls and ceilings in the various Alien/Predator games.Perhaps abstracted out to A) a material on the navmesh (that applies both slope (so baked in to RGB, perhaps, at creation or loading), and "friction" or "cost" for want of a better word (alpha values). The idea being to do as much pre-calculation as possible. And store it in accessible form, of course. But then you also get into use cases where some elves can slip through the woods easily and some grav-tanks ignore rough terrain... This implies needing to know what *type* of friction is present. (I'm specifically thinking of algorithmically generated arbitrary terrain). So how much more (if any) efficient is looking up a value and vector from the navmesh material over calculating the same from the mesh?
B) a controller that applies (or doesn’t) the material and LoS tests for obstructing mesh. This would also allow or disallow a “suction” effect for reversed slopes (one byte for angle of slope and two for direction?) to allow counter-acting gravity. (a LoS test between creature’s feet (local -Y)? If the creature is vertical or reversed, it would cling to the navmesh beside/above it rather than straight down (the LoS test I see in the terrain-following examples)
(Caveat: please forgive the terminology, I am self-taught and trying to catch up on both jargon and methods