#path-finding #fixed-point #nav-mesh #api-bindings #game #recastnavigation

recastnavigation-rs

A rust binding for recastnavigation path finding library adds cross-platform deterministic

1 unstable release

0.1.0 Mar 23, 2024

#1797 in Game dev

MPL-2.0 license

1.5MB
45K SLoC

C++ 39K SLoC // 0.1% comments Rust 5K SLoC // 0.0% comments C 404 SLoC // 0.2% comments Lua 249 SLoC // 0.1% comments

Release Doc Crate github actions CircleCI

Recastnavigation-rs

Recastnavigation-rs is a rust wrapper for recastnavigation pathfinding library with cross-platform deterministic.

To import deterministic support, this project use a special fork of recastnavigation recastnavigation-deterministic. So it can be used in network game scenarios, such as lock-step networking synchronize.

Features

We plan to support all features in original recastnavigation C++ project. Currently, recast/detour/detour_crowd are implemented. If the feature you need is not implemented, you can create an issue.

Examples

The test cases under ./tests can be viewed as examples.

Recastnavigation-rs keeps the same API styles with original recastnavigation library. Therefore, you can also refer to the recastnavigation demo.

Platforms

In theory, recastnavigation-rs supports all platforms supported by rust. But I only tested on the following platforms:

  • Windows/Ubuntu/Mac x64 (Github actions)
  • X64/Arm64 docker (CircleCI)

Maybe you can run cross-platform deterministic test cases under ./tests on your target platform.

Dependencies

~1.4–3MB
~52K SLoC