A fork of the buildnav tool from the uthgard-opensource repository, originally created by thekroko.
- The tool reads game asset files from DAoC’s
zonesfolder and writes intermediate geometry (.obj/.gset) plus ladder definitions (.ladders.json). RecastDemo.exebuilds a walkable navmesh.- The final navigation meshes (
*.nav) are used by the game server.
Shared Detour P/Invoke lives in OpenDAoC-Core/Pathing/Detour.Managed (also used by the game server’s LocalPathfindingMgr).
- 64-bit Environment: All components must be built and run as 64-bit.
- Detour.dll: Build the native library from
OpenDAoC-Core/Pathing/Detour. The build copies it tobase/lib/Detour.dll(process working directory isbase/). Required for ladder link placement. - Sibling repo layout:
OpenDAoC-BuildNavandOpenDAoC-Coreshould sit next to each other so theDetour.Managedproject reference resolves.
Recast is included as a precompiled executable in the base directory.
This RecastDemo.exe is a repurposed 64-bit build of the official RecastDemo, slightly tweaked to accept command-line arguments and handle large worlds.
Parameters for navmesh generation (agent size, etc.) are currently hardcoded and not configurable.
It can also be used to manually inspect the generated meshes:
- Open
RecastDemo.exefrom the output directory. - Select "Tile Mesh" as the sample.
- Select any generated
*.gsetas the input mesh. - The corresponding
*.navfile will also be loaded for inspection.
- Build and run
OpenDAoC-BuildNav.exe --daoc=<gamedir>. Use either--all=true, or--zones="id1,id2..."and/or--regions="id1,id2...". - Copy the generated
*.navfiles from the output directory into your server's/navmeshdirectory.
bin/Release/.../
├── OpenDAoC-BuildNav.exe
└── base/ # Working directory at runtime
├── RecastDemo.exe # Pre-compiled and tweaked Recast executable
├── lib/Detour.dll # Native Detour (ladder second-pass queries)
└── zones/ # Intermediate files (*.obj, *.gset, *.ladders.json) and *.nav