summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorFelix Gruber <felgru@posteo.net>2022-01-03 19:38:24 +0000
committerLeo Famulari <leo@famulari.name>2022-01-03 15:10:03 -0500
commit0aac289d614b3763666c68a51d81540a8a34d234 (patch)
treee7e0f9b754265b44adccdd5c39cf65e292c70126 /gnu
parent0d15873d7e898110c12fd77d32258ab55e16e7eb (diff)
gnu: Add recastnavigation.
* gnu/packages/game-development.scm (recastnavigation): New variable. Signed-off-by: Leo Famulari <leo@famulari.name>
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/game-development.scm51
1 files changed, 51 insertions, 0 deletions
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 305c2c2819..c77c445831 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -2837,3 +2837,54 @@ fully dynamic omnidirectional shadows, global illumination, HDR lighting,
deferred shading, morphological / temporal / multisample anti-aliasing, and
much more.")
(license license:zlib))))
+
+(define-public recastnavigation
+ ;; We follow master since there hasn't been a release since 1.5.1 in 2016.
+ (let ((commit "c5cbd53024c8a9d8d097a4371215e3342d2fdc87")
+ (revision "1"))
+ (package
+ (name "recastnavigation")
+ (version (git-version "1.5.1" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/recastnavigation/recastnavigation")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "034bm47gc3r285w1pnvkhmm74zz99d204b1r865gisaiq4qfbza0"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON"
+ "-DRECASTNAVIGATION_DEMO=OFF"
+ "-DRECASTNAVIGATION_TESTS=ON"
+ "-DRECASTNAVIGATION_EXAMPLES=OFF")))
+ (synopsis "Navigation system for games")
+ (description "Recast is state of the art navigation mesh
+construction toolset for games.
+
+@itemize
+@item It is automatic, which means that you can throw any level geometry
+ at it and you will get robust mesh out.
+@item It is fast which means swift turnaround times for level designers.
+@item It is open source so it comes with full source and you can
+ customize it to your heart's content.
+@end itemize
+
+The Recast process starts with constructing a voxel mold from a level
+geometry and then casting a navigation mesh over it. The process
+consists of three steps, building the voxel mold, partitioning the mold
+into simple regions, peeling off the regions as simple polygons.
+
+Recast is accompanied with Detour, path-finding and spatial reasoning
+toolkit. You can use any navigation mesh with Detour, but of course the
+data generated with Recast fits perfectly.
+
+Detour offers simple static navigation mesh which is suitable for many
+simple cases, as well as tiled navigation mesh which allows you to plug
+in and out pieces of the mesh. The tiled mesh allows you to create
+systems where you stream new navigation data in and out as the player
+progresses the level, or you may regenerate tiles as the world changes.")
+ (home-page "https://github.com/recastnavigation/recastnavigation")
+ (license license:zlib))))