diff options
Diffstat (limited to 'gnu/packages/game-development.scm')
-rw-r--r-- | gnu/packages/game-development.scm | 109 |
1 files changed, 106 insertions, 3 deletions
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index f7e0bcfd92..ca046f5bab 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2019 Jethro Cao <jethrocao@gmail.com> ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si> +;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -88,6 +89,7 @@ #:use-module (gnu packages sphinx) #:use-module (gnu packages stb) #:use-module (gnu packages texinfo) + #:use-module (gnu packages textutils) #:use-module (gnu packages tls) #:use-module (gnu packages video) #:use-module (gnu packages web) @@ -585,6 +587,34 @@ sounds from presets such as \"explosion\" or \"powerup\".") (home-page "http://www.drpetter.se/project_sfxr.html") (license license:expat))) +(define-public surgescript + (package + (name "surgescript") + (version "0.5.4.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alemart/surgescript.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "13q81439zg1bn7gskligskjgcfq0rdapp6f3llmrlk48vnyq49s0")))) + (build-system cmake-build-system) + (arguments + '(#:configure-flags + (let ((share (string-append (assoc-ref %outputs "out") "/share"))) + (list (string-append "-DICON_PATH=" share "/pixmaps") + (string-append "-DMETAINFO_PATH=" share "/metainfo"))) + #:tests? #f)) + (home-page "https://docs.opensurge2d.org") + (synopsis "Scripting language for games") + (description "@code{SurgeScript} is a dynamically typed object-oriented +scripting language designed for games. Each object is a state machine that +can be customized by attaching other objects. The language supports automatic +garbage collection and can be extended with plugins.") + (license license:asl2.0))) + (define-public physfs (package (name "physfs") @@ -2016,14 +2046,14 @@ a.k.a. XenoCollide) as described in Game Programming Gems 7.") (define-public ode (package (name "ode") - (version "0.16") + (version "0.16.1") (source (origin (method url-fetch) (uri (string-append "https://bitbucket.org/odedevs/ode/downloads/" "ode-" version ".tar.gz")) (sha256 - (base32 "09xzrarxwxcf6rdv5jsjfjh454jnn29dpcw3wh6ic50kkipvg8sb")) + (base32 "1flfdqgdbcn1bx8nrrd4qnp6cvsxrhvk8cdg7vaq2dzkh6nsqa5j")) (modules '((guix build utils))) (snippet '(begin @@ -2031,7 +2061,8 @@ a.k.a. XenoCollide) as described in Game Programming Gems 7.") #t)))) (build-system cmake-build-system) (arguments - ;; Tests fail on all systems but x86_64. + ;; Tests fail on all systems but x86_64. This is fixed upstream and can + ;; be removed in 0.16.2+. `(#:tests? ,(string-prefix? "x86_64-" (or (%current-target-system) (%current-system))) @@ -2086,3 +2117,75 @@ computer games, 3D authoring tools and simulation tools.") (description "Chipmunk is a simple, lightweight, fast and portable 2D rigid body physics library written in C.") (license license:expat))) + +(define-public libtcod + (package + (name "libtcod") + (version "1.15.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/libtcod/libtcod.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0pzr8ajmbqvh43ldjajx962xirj3rf8ayh344p6mqlrmb8gxrfr5")) + (modules '((guix build utils))) + (snippet '(begin + (delete-file-recursively "src/vendor/utf8proc") + (delete-file-recursively "src/vendor/zlib") + (delete-file "src/vendor/stb_truetype.h") + (delete-file "src/vendor/stb_sprintf.h") + (delete-file "src/vendor/lodepng.cpp") + (delete-file "src/vendor/lodepng.h") + + (substitute* "buildsys/autotools/sources.am" + (("\\.\\./\\.\\./src/vendor/lodepng\\.cpp \\\\\n") "") + (("\\.\\./\\.\\./src/vendor/stb\\.c \\\\") + "../../src/vendor/stb.c") + (("\\.\\./\\.\\./src/vendor/utf8proc/utf8proc\\.c") "")) + + (substitute* "src/libtcod/sys_sdl_img_png.cpp" + (("\\.\\./vendor/") "")) + + (substitute* '("src/libtcod/color/canvas.cpp" + "src/libtcod/sys_sdl_img_png.cpp" + "src/libtcod/tileset/truetype.cpp" + "src/libtcod/tileset/tilesheet.cpp") + (("\\.\\./\\.\\./vendor/") "")) + + (substitute* "src/libtcod/console/printing.cpp" + (("\\.\\./\\.\\./vendor/utf8proc/") "")) + #t)))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags '("--with-gnu-ld" + "LIBS=-lutf8proc -llodepng") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'change-to-build-dir + (lambda _ + (chdir "buildsys/autotools") + (patch-shebang "get_version.py") + #t))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("python" ,python) + ("pkg-config" ,pkg-config) + ("stb-sprintf" ,stb-sprintf) + ("stb-truetype" ,stb-truetype))) + (inputs + `(("lodepng" ,lodepng) + ("sdl2" ,sdl2) + ("utf8proc" ,utf8proc) + ("zlib" ,zlib))) + (home-page "https://github.com/libtcod/libtcod") + (synopsis "Library specifically designed for writing roguelikes") + (description + "libtcod is a fast, portable and uncomplicated API for roguelike +developers providing an advanced true color console, input, and lots of other +utilities frequently used in roguelikes.") + (license license:bsd-3))) |