Skip to content

DeukNavigation

One-liner: Recast/Detour-based NavMesh with a shared Deuk wire format (.dpk) for Unity and server. Same mesh data and query API on client and C++/C# server — pathfinding, crowd simulation, and baking in one package.

Web & blog (planned): a DeukNavigation-focused hub on deukpack.app via domain overloading. Candidate hostnames: deuknavigation.deukpack.app · navigation.deukpack.app (one or both, per ops).


What you get

  • Client–server shared format — One navmesh binary (Deuk .dpk) and the same query/agent API on Unity and native server. No client/server mesh mismatch; Unreal or C++/C# servers can load the same .dpk.
  • Native C++ core — Recast/Detour runs in C++; the C# layer is a thin P/Invoke wrapper. Pathfinding and crowd updates avoid the cost of pure-C# ports.
  • Unity AI–style APIDeukNavAgent: SetDestination, RemainingDistance, IsStopped, Warp, Speed, PathStatus, HasReachedDestination. CrowdContext: AddAgent, SamplePosition, RandomPoint, Raycast, avoidance config. Single entry point: DeukNavRuntime (mesh + crowd in one component).
  • Baking & tools — Unity Editor: full build pipeline (input → NMGen → tile bake → Save/Load .dpk). DeukNaviTool: standalone C++ tool for SoloMesh/TileMesh, export .dpk or legacy .bin. Same Recast/Detour and Deuk wire as Unity.

Features

Category Content
Runtime DeukNavRuntime (single component: Navmesh + CrowdContext). DeukNavAgent (Unity NavMeshAgent-like). CrowdContext (crowd simulation, avoidance, queries).
Mesh format Deuk wire (.dpk) — cross-platform; C# parse + native tiles or full C++ loader. Same format for Unity and server.
Unity Editor BakedNavmesh, INavmeshData, Build/Save/Load/Clear. Recast params, tile build, input compilation.
Standalone tool DeukNaviTool (C++) — build mesh, load/save .obj, export .dpk or .bin.
Migration Re-bake scene in DeukNavigation; runtime API mirrors Unity NavMeshAgent for step-by-step swap.

Structure (package)

Layer Role
Runtime/Core Engine-agnostic: Navmesh, CrowdContext, DeukNavAgent, queries. Shared by Unity and server.
Runtime/Unity BakedNavmesh, DeukNavRuntime, DeukNavAgentComponent, INavmeshBuildSettings.
Editor Build pipeline, RecastDetourBuilder, NavMesh build window, Save/Load .dpk.
Native/ Recast/Detour C++ source, RecastInterop/ tree (CMake target deuk_recast_navigation), DeukNaviTool. Plugins (e.g. deuk_recast_navigation.dll, libdeuk_recast_navigation.so) built here.

Relation to DeukPack

  • Deuk wire format — NavMesh container and tile layout are defined with DeukPack tooling; .dpk is the shared serialization format.
  • Same product line — DeukNavigation lives alongside DeukPack (e.g. under i/DeukNavigation). Use Pipeline · Unity to feed definition/code into your game; use DeukNavigation for NavMesh data, baking, and runtime pathfinding/crowd.

Legacy application — Re-bake from Unity NavMesh (no binary read); swap to DeukNavAgent step by step. Or move from .bin to .dpk. DeukNavRuntime simplifies the old NavManagerProvider + AgentGroupSettings chain.

AI / agent useSamplePosition, RandomPoint, Raycast for validity and placement; CrowdContext for multi-agent simulation; same .dpk for server-side agents and automation. Fits DeukPack IDL/schema for path/position payloads.

For integration with game controllers, crowd, and migration from legacy NavMesh, see the internal docs: DeukPack/docs/DEUKPACK_DeukNavigation_게임연동_통합_가이드.md, DEUKPACK_DeukNavigation_베이킹_및_런타임_통합_개선.md (in the DeukPack repo). Features, differentiators, legacy, and AI summary: DeukNavigation/docs/FEATURES_DIFFERENTIATORS_LEGACY_AI.md (in the DeukNavigation repo).