> The original design intention is that the number of triangles encodes the sense of distance, but maximizing the #triangles actually leads to interesting places.
The design intention was saving resources.
The game probably streams the nav.mesh along with map tiles; the cost is disk I/O and RAM. Once the nav.mesh is in RAM, the game runs raycasts or A* search or whatever, the cost is CPU time. In a big flat nothing, NPCs can walk any direction they want without colliding into things, having a dense nav.mesh at that place would be a waste of resources.
The fox AI doesn’t quite maximize anything. It does something similar to random walk over nav.mesh triangles. After long enough time, random walk algorithm causes the fox to be randomly distributed over nav.mesh triangles, i.e. probability to be in any particular nav.mesh triangle is about the same. However, because nav.mesh triangles have very uneven area, the fox distribution over space is very uneven too. The fox is way more likely to be in places with dense nav.mesh because that’s where the majority of nav.mesh triangles are.
The design intention was saving resources.
The game probably streams the nav.mesh along with map tiles; the cost is disk I/O and RAM. Once the nav.mesh is in RAM, the game runs raycasts or A* search or whatever, the cost is CPU time. In a big flat nothing, NPCs can walk any direction they want without colliding into things, having a dense nav.mesh at that place would be a waste of resources.
The fox AI doesn’t quite maximize anything. It does something similar to random walk over nav.mesh triangles. After long enough time, random walk algorithm causes the fox to be randomly distributed over nav.mesh triangles, i.e. probability to be in any particular nav.mesh triangle is about the same. However, because nav.mesh triangles have very uneven area, the fox distribution over space is very uneven too. The fox is way more likely to be in places with dense nav.mesh because that’s where the majority of nav.mesh triangles are.