summary refs log tree commit diff
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.scm169
1 files changed, 123 insertions, 46 deletions
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index ddcbb6b172..4e0f75e79c 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -15,13 +15,14 @@
 ;;; Copyright © 2017, 2019 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
-;;; Copyright © 2019, 2020, 2021 Leo Prikler <leo.prikler@student.tugraz.at>
+;;; Copyright © 2019, 2020, 2021 Liliana Marie Prikler <liliana.prikler@gmail.com>
 ;;; Copyright © 2019 Jethro Cao <jethrocao@gmail.com>
 ;;; Copyright © 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
 ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2021 Alexandru-Sergiu Marton <brown121407@posteo.ro>
 ;;; Copyright © 2021 Dmitry Polyakov <polyakov@liltechdude.xyz>
+;;; Copyright © 2020-2021 James Smith <jsubuntuxp@disroot.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -39,7 +40,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages game-development)
-  #:use-module (srfi srfi-1)
+  #:use-module ((srfi srfi-1) #:hide (zip))
   #:use-module (ice-9 match)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
@@ -55,6 +56,7 @@
   #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages check)
@@ -90,6 +92,7 @@
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages readline)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages sphinx)
@@ -99,6 +102,7 @@
   #:use-module (gnu packages tls)
   #:use-module (gnu packages video)
   #:use-module (gnu packages web)
+  #:use-module (gnu packages wxwidgets)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xml)
@@ -447,10 +451,71 @@ GUI toolkit, lighting and physics frameworks and @code{Tiled} TMX format
 support.")
     (license license:gpl3+)))
 
+(define-public slade
+  (package
+    (name "slade")
+    (version "3.1.13")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/sirjuddington/SLADE")
+             (commit version)))
+       (sha256 (base32 "009yc5m6y074wfalvwbrnv2zsmaf9yhbi8hzgs973di0zqnqv011"))
+       (file-name (git-file-name name version))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:configure-flags
+       (list "-DWX_GTK3=ON" "-DNO_WEBVIEW=ON"
+             (string-append "-DWITH_WXPATH="
+                            (assoc-ref %build-inputs "wxwidgets") "/bin")
+             (string-append "-DwxWidgets_LIBRARIES="
+                            (assoc-ref %build-inputs "wxwidgets") "/lib"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'reset-slade.pk3-timestamps
+           ;; This is neccessary to make slade reproducible due to
+           ;; <https://bugs.gnu.org/44741>.  TODO: Remove on next core update
+           ;; cycle.
+           (lambda _
+             (invoke "find" "../source/dist/res" "-exec" "touch"
+                     "--no-dereference" "-t" "197001010000.00" "{}"
+                     "+")))
+         (add-after 'install 'wrap-with-x11-gdk-backend
+           ;; Set GDK_BACKEND to x11 to prevent crash on Wayland.
+           ;; See https://github.com/sirjuddington/SLADE/issues/1097 for details.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (wrap-program
+                 (string-append (assoc-ref outputs "out")
+                                "/bin/slade")
+               '("GDK_BACKEND" = ("x11"))))))
+       #:tests? #f)) ;; No test suite.
+    (inputs
+     `(("bash" ,bash-minimal)
+       ("curl" ,curl)
+       ("fluidsynth" ,fluidsynth)
+       ("freeimage" ,freeimage)
+       ("ftgl" ,ftgl)
+       ("glew" ,glew)
+       ("gtk+" ,gtk+)
+       ("sfml" ,sfml)
+       ("wxwidgets" ,wxwidgets-3.1)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("which" ,which)
+       ("zip" ,zip)))
+    (home-page "https://slade.mancubus.net")
+    (synopsis "Doom game data editor")
+    (description "SLADE3 is a modern editor for Doom-engine based games and
+source ports.  It has the ability to view, modify, and write many different game-
+specific formats, and even convert between some of them, or from/to other generic
+formats such as PNG.")
+    (license license:gpl2+)))
+
 (define-public tiled
   (package
     (name "tiled")
-    (version "1.5.0")
+    (version "1.7.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -459,7 +524,7 @@ support.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1prajkx1xpp3csa0xpkrn3c2cnzvmwzxgrqb9d3gqszp3sllr2dg"))))
+                "1ifxh3sv6gz32gahgi7ba0ivcw5mfgwnrw6iycpav150w9xla43i"))))
     (build-system gnu-build-system)
     (inputs
      `(("qtbase" ,qtbase-5)
@@ -495,16 +560,16 @@ clone.")
 (define-public tsukundere
   (package
     (name "tsukundere")
-    (version "0.3.2")
+    (version "0.4.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://gitlab.com/leoprikler/tsukundere")
+                    (url "https://gitlab.com/lilyp/tsukundere")
                     (commit version)))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "05y3nj8vpn40hfr2y29p8pa9hhpzibhbvfzpm0dlphjh9crq3ii4"))))
+                "11glghnff27rqh2s34g51afg93g3f5ryfz9mkyb7qj35ngl8vw5f"))))
     (build-system gnu-build-system)
     (arguments
      `(#:modules ((ice-9 match)
@@ -534,9 +599,12 @@ clone.")
                          ((label . pkg)
                           (and (string-prefix? "guile-" label) pkg)))
                        inputs))))
-               (substitute* "bin/tsukundere"
+               (substitute* "tsukundere.scm"
                  (("exec guile (.*)" _ args)
                   (string-append
+                   ;; XXX: Prevent Guile-SDL2 from blowing up by not knowing
+                   ;;      where the SDL2 libaries are.
+                   "unset LD_LIBRARY_PATH\n"
                    (format #f "export GUILE_LOAD_PATH=\"~@?\"~%"
                            "~{~a~^:~}" (map scm pkgs))
                    (format #f "export GUILE_LOAD_COMPILED_PATH=\"~@?\"~%"
@@ -550,12 +618,15 @@ clone.")
        ("automake" ,automake)
        ("gettext" ,gettext-minimal)
        ("guile" ,guile-3.0)
+       ("libtool" ,libtool)
        ("pkg-config" ,pkg-config)
        ("texinfo" ,texinfo)))
     (inputs
      `(("guile-sdl2" ,guile3.0-sdl2)
-       ("guile" ,guile-3.0)))
-    (home-page "https://gitlab.com/leoprikler/tsukundere")
+       ("guile" ,guile-3.0)
+       ("pango" ,pango)
+       ("sdl2" ,sdl2)))
+    (home-page "https://gitlab.com/lilyp/tsukundere")
     (synopsis "Visual novel engine")
     (description "Tsukundere is a game engine geared heavily towards the
 development of visual novels, written on top of Guile-SDL2.  It is still
@@ -758,35 +829,39 @@ programming language.")
     (license license:zlib)))
 
 (define-public love-nuklear
-  (let ((version "v2.6")
-        (commit "fef4e00a602efb16c57ae962850b6e7a01f7a29a"))
-    (package
-      (name "love-nuklear")
-      (version (git-version version "1" commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/keharriso/love-nuklear/")
-                      (commit commit)
-                      (recursive? #t)))
-                ;; NOTE: the HEAD of the Nuklear git-submodule is at commit
-                ;; "adc52d710fe3c87194b99f540c53e82eb75c2521" of Oct 1 2019
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "15qmy8mfwkxy2x9rmxs6f9cyvjvwwj6yf78bs863xmc56dmjzzbn"))))
-      (build-system cmake-build-system)
-      (arguments
-       `(#:build-type "Release"
-         #:tests? #f))
-      (inputs
-       `(("luajit" ,luajit)))
-      (synopsis "Lightweight immediate mode GUI for LÖVE games")
-      (description "LÖVE is a Lua framework for making 2D games.  Nuklear
+  (package
+    (name "love-nuklear")
+    (version "2.6.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/keharriso/love-nuklear/")
+                    (commit (string-append "v" version))
+                    (recursive? #t)))
+              ;; NOTE: the HEAD of the Nuklear git-submodule is at commit
+              ;; "adc52d710fe3c87194b99f540c53e82eb75c2521" of Oct 1 2019
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "090xp5c975155hd1pa7bdssdlawvygs5s6icdkwbyc8il5kg5kgv"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:build-type "Release"
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-cmake
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               (("DESTINATION .") "DESTINATION lib/love")))))))
+    (inputs
+     `(("luajit" ,luajit)))
+    (synopsis "Lightweight immediate mode GUI for LÖVE games")
+    (description "LÖVE is a Lua framework for making 2D games.  Nuklear
 is a minimal state immediate mode graphical user interface toolkit.  This
 package is the Nuklear bindings for LÖVE created by Kevin Harrison.")
-      (home-page "https://github.com/keharriso/love-nuklear/")
-      (license license:expat))))
+    (home-page "https://github.com/keharriso/love-nuklear/")
+    (license license:expat)))
 
 (define-public allegro-4
   (package
@@ -830,7 +905,7 @@ etc.")
 (define-public allegro
   (package
     (name "allegro")
-    (version "5.2.5.0")
+    (version "5.2.7.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/liballeg/allegro5/releases"
@@ -838,7 +913,7 @@ etc.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "06dpkfnac8w3pq36834nn2iij3ajz6prladqd0w92lq39aiqv5jr"))))
+                "034pmbmbq6jagpp4lhnyjqmf8gcz5fx74d9rknrm7d4wv4cv7qy1"))))
     (build-system cmake-build-system)
     (arguments `(#:tests? #f))          ; there are no tests
     (inputs
@@ -846,7 +921,7 @@ etc.")
      `(("flac" ,flac)
        ("freetype" ,freetype)
        ("glu" ,glu)
-       ("gtk" ,gtk+-2)
+       ("gtk" ,gtk+)
        ("libjpeg" ,libjpeg-turbo)
        ("libpng" ,libpng)
        ("libtheora" ,libtheora)
@@ -1959,28 +2034,30 @@ a 2D editor view.")
 (define-public guile-chickadee
   (package
     (name "guile-chickadee")
-    (version "0.7.0")
+    (version "0.8.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://files.dthompson.us/chickadee/"
                                   "chickadee-" version ".tar.gz"))
               (sha256
                (base32
-                "199y4kc28va6klfs19h998sfh7vx9spnrvjw7p92i47q5a7jdcp6"))))
+                "1k2dml2z57lnc36wrmwhh7avnpczxgxnshlfhpbk174vg6v609n0"))))
     (build-system gnu-build-system)
     (arguments
      '(#:make-flags '("GUILE_AUTO_COMPILE=0")))
     (propagated-inputs
      `(("guile-opengl" ,guile3.0-opengl)
-       ("guile-sdl2" ,guile3.0-sdl2)))
+       ("guile-sdl2" ,guile-sdl2)))
     (inputs
      `(("freetype" ,freetype)
-       ("guile" ,guile-3.0)
+       ("guile" ,guile-3.0-latest)
        ("libvorbis" ,libvorbis)
        ("mpg123" ,mpg123)
-       ("openal" ,openal)))
+       ("openal" ,openal)
+       ("readline" ,readline)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("guile" ,guile-3.0-latest)
+       ("pkg-config" ,pkg-config)
        ("texinfo" ,texinfo)))
     (home-page "https://dthompson.us/projects/chickadee.html")
     (synopsis "Game development toolkit for Guile Scheme with SDL2 and OpenGL")