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.scm109
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)))