From 0aac289d614b3763666c68a51d81540a8a34d234 Mon Sep 17 00:00:00 2001 From: Felix Gruber Date: Mon, 3 Jan 2022 19:38:24 +0000 Subject: gnu: Add recastnavigation. * gnu/packages/game-development.scm (recastnavigation): New variable. Signed-off-by: Leo Famulari --- gnu/packages/game-development.scm | 51 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) (limited to 'gnu/packages') 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)))) -- cgit 1.4.1