A GDNative plugin for Godot 3.4+ implementing recastnavigation for advanced 3D navigation with navmeshes, agents, and crowd avoidance.
godotdetour is a GDNative plugin for the Godot Engine that integrates the recastnavigation library to provide advanced 3D navigation capabilities. It solves the problem of Godot's built-in navigation being insufficient for complex 3D games by offering runtime navmesh generation, dynamic obstacles, crowd avoidance, and support for procedural levels.
Godot developers working on 3D games or simulations that require robust, dynamic navigation beyond simple A-to-B pathfinding, especially those using procedural generation or needing crowd behaviors.
Developers choose godotdetour for its low-level control, runtime flexibility, and feature set—including multi-navmesh support and area marking—that surpasses Godot 3.2's navigation and offers a different approach than Godot 4.0's NavigationServer.
A GDNative implementation of the detour/detourcrowd library for Godot.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports dynamic creation of navigation meshes from geometry at runtime, enabling seamless integration with procedurally generated levels without pre-baking.
Provides configurable agents with obstacle and agent avoidance behaviors, allowing for realistic crowd movements in complex 3D environments.
Allows simultaneous management of separate navmeshes for different agent sizes, optimizing pathfinding for varied entities like small and large characters.
Exposes extensive recast/detour parameters to GDScript, giving developers low-level customization over navigation behavior and performance tuning.
The project is in maintenance mode with slow bug fixes and limited new features, as the author admits limited time and testing beyond the demo.
Requires lengthy parameter tuning with many configuration steps, as shown in the initialization code, which can be daunting and error-prone for developers.
Lacks built-in editor tools, forcing all setup, debugging, and navmesh creation to be done through code, which hampers visual workflow and level design.
Cannot change navmeshes after creation without a full reload, and dynamic area flags are not supported, limiting runtime flexibility for evolving environments.