Runtime Architecture
The runtime architecture of Autodesk Navigation is composed of two conceptual layers: the toolbox layer and the pathfollowing layer.
The toolbox layer is centered around the navigation data you have created for your game level.
It contains:
- Tools for loading and unloading your NavData at runtime that enforce consistency and automatically stitch together adjacent sectors whenever necessary.
- Dynamic WorldElements that are spatialized into the static NavData. Some of these elements may also modify the static NavMesh on the fly, re-triangulating it to reflect their presence. For example, dynamic or destructible obstacles can effectively remove areas of the NavMesh, making characters unable to traverse them. Similarly, TagVolumes can exclude areas of the NavMesh, or can tag them with custom data.
- A system of high-performance spatial queries that you can run against the NavData you have loaded, to find out qualities of the terrain such as whether a clear path exists between two positions, or how far a given position is from the edge of the navigable area.
- An integrated remote visual debugging framework that you can use to send data to the Navigation Lab for visualization.
The path finding and path following system, centered around the Bot class, relies in large part on the services provided by the toolbox layer.
For example, the query system is typically used to compute paths for your characters, and it is used while following paths in order to check whether or not potential shortcuts are clear of obstacles in the NavMesh. Similarly, the dynamic avoidance system used during path following takes into account nearby WorldElements that have not been integrated into the NavMesh, such as other bots and moving obstacles, and uses the spatialization system to determine which elements are nearby.
For details, see Path Finding and Path Following.