NavMeshes


My graduation project for my Masters degree at the Technical University Delft was centered around so called 'Navigation Meshes' (NavMeshes for short) and alternate/faster path-finding algorithms for agents in virtual worlds. A NavMesh is an abstract data type consisting mainly of collection of polygons that designate navigable areas for agents. I wrote a NavMesh generator prototype that could generate entire NavMeshes fully automatically, using map collider data as raw input. The result was fairly successful, but would require a lot more work to turn it into a practical tool.


After Overlord 2, I continued to develop and implement NavMesh technology in Triumph Studios' game-engine. Due to time constraints I opted for building a NavMesh 'drawing' tool with which level designers could quickly deploy and manipulate them. This tool came in very handy during later game concept prototypings and even allowed us to quickly try-out NavMeshes for other purposes. For example, the NavMeshes were also deployed to define climbable areas for user agents and to define navigable areas for Boid driven flocking simulations.


Videos

NavMesh editor
NavMesh Editor (4.36 MB)


A clip of the NavMesh drawing tool with which designers can very easily build and manipulate NavMeshes (fully integrated with the map editor's meta capabilities such as copy/past and undo/redo functionality).


NavMesh path-finding
NavMesh Path-Finding (4.75 MB)


A clip that demonstrates how NavMeshes have been integrated in the game-engine to enable agents to find their way through a maze to try to attack the user avatar (using an A* path-finding algorithm and path-smoothing techniques).




Screenshots


A screenshot of the experimental NavMesh generator.



Parallel path-finding on multi-core architectures.