aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/game-development.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/game-development.scm')
-rw-r--r--gnu/packages/game-development.scm73
1 files changed, 73 insertions, 0 deletions
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index cfe271075a..7aef6b09d2 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -17,6 +17,7 @@
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019 Leo Prikler <leo.prikler@student.tugraz.at>
;;; Copyright © 2019 Jethro Cao <jethrocao@gmail.com>
+;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -82,6 +83,7 @@
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages sdl)
+ #:use-module (gnu packages sphinx)
#:use-module (gnu packages stb)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages tls)
@@ -1956,3 +1958,74 @@ focuses solely on developing a fully accurate XNA4 runtime for the desktop.")
license:lgpl2.1 ; LzxDecoder.cs
;; Mono.Xna:
license:expat))))
+
+(define-public libccd
+ (package
+ (name "libccd")
+ (version "2.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/danfis/libccd.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0sfmn5pd7k5kyhbxnd689xmsa5v843r7sska96dlysqpljd691jc"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags '("-DBUILD_DOCUMENTATION=ON"
+ "-DBUILD_TESTING=ON"
+ "-DENABLE_DOUBLE_PRECISION=ON")))
+ (native-inputs
+ `(("python-sphinx" ,python-sphinx)))
+ (home-page "https://github.com/danfis/libccd")
+ (synopsis "Library for collision detection between two convex shapes")
+ (description "@code{libccd} is library for a collision detection
+between two convex shapes. @code{libccd} implements variation on
+Gilbert–Johnson–Keerthi algorithm plus Expand Polytope Algorithm (EPA)
+and also implements algorithm Minkowski Portal Refinement (MPR,
+a.k.a. XenoCollide) as described in Game Programming Gems 7.")
+ (license license:expat)))
+
+(define-public ode
+ (package
+ (name "ode")
+ (version "0.16")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://bitbucket.org/odedevs/ode/downloads/"
+ "ode-" version ".tar.gz"))
+ (sha256
+ (base32 "09xzrarxwxcf6rdv5jsjfjh454jnn29dpcw3wh6ic50kkipvg8sb"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (delete-file-recursively "libccd")
+ #t))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags '("-DODE_WITH_LIBCCD_SYSTEM=ON")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'unbundle-libccd
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("configure_file\\(libccd/.*") ""))
+ #t)))))
+ (inputs
+ `(("glu" ,glu)
+ ("libccd" ,libccd)
+ ("mesa" ,mesa)))
+ (home-page "http://www.ode.org/")
+ (synopsis "High performance library for simulating rigid body dynamics")
+ (description "ODE is a high performance library for simulating
+rigid body dynamics. It is fully featured, stable, mature and
+platform independent with an easy to use C/C++ API. It has advanced
+joint types and integrated collision detection with friction. ODE is
+useful for simulating vehicles, objects in virtual reality
+environments and virtual creatures. It is currently used in many
+computer games, 3D authoring tools and simulation tools.")
+ ;; Software is dual-licensed.
+ (license (list license:lgpl2.1+ license:expat))))