summaryrefslogtreecommitdiff
path: root/gnu/packages/games.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/games.scm')
-rw-r--r--gnu/packages/games.scm170
1 files changed, 146 insertions, 24 deletions
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 83704dd720..fdd3a0e21e 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -42,7 +42,7 @@
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2019, 2020 Jesse Gibbons <jgibbons2357+guix@gmail.com>
;;; Copyright © 2019 Dan Frumin <dfrumin@cs.ru.nl>
-;;; Copyright © 2019, 2020, 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2019-2023 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2019, 2020 Timotej Lazar <timotej.lazar@araneo.si>
;;; Copyright © 2019 Josh Holland <josh@inv.alid.pw>
;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com>
@@ -70,7 +70,7 @@
;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
;;; Copyright © 2022, 2023 Yovan Naumovski <yovan@gorski.stream>
;;; Copyright © 2022 Roman Riabenko <roman@riabenko.com>
-;;; Copyright © 2022 zamfofex <zamfofex@twdb.moe>
+;;; Copyright © 2022, 2023 zamfofex <zamfofex@twdb.moe>
;;; Copyright © 2022 Gabriel Arazas <foo.dogsquared@gmail.com>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Hendursaga <hendursaga@aol.com>
@@ -155,6 +155,7 @@
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages haskell)
+ #:use-module (gnu packages haskell-check)
#:use-module (gnu packages haskell-crypto)
#:use-module (gnu packages haskell-xyz)
#:use-module (gnu packages icu4c)
@@ -202,6 +203,7 @@
#:use-module (gnu packages sqlite)
#:use-module (gnu packages squirrel)
#:use-module (gnu packages swig)
+ #:use-module (gnu packages tbb)
#:use-module (gnu packages tcl)
#:use-module (gnu packages terminals)
#:use-module (gnu packages texinfo)
@@ -223,6 +225,7 @@
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
+ #:use-module (guix build-system haskell)
#:use-module (guix build-system meson)
#:use-module (guix build-system perl)
#:use-module (guix build-system python)
@@ -3643,6 +3646,37 @@ exec ~a/bin/freedink -refdir ~a/share/dink\n"
("bash" ,bash)))
(native-inputs '())))
+(define-public fuzzylite
+ (package
+ (name "fuzzylite")
+ (version "6.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fuzzylite/fuzzylite")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0yay0qc81x0irlvxqpy7jywjxpkmpjabdhq2hdh28r9z85wp2nwb"))
+ (patches (search-patches "fuzzylite-use-catch2.patch"
+ "fuzzylite-soften-float-equality.patch"
+ "fuzzylite-relative-path-in-tests.patch"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (add-before 'configure 'switch-to-fuzzylite-dir
+ (lambda _
+ (chdir "fuzzylite"))))))
+ (native-inputs (list catch2))
+ (home-page "https://www.fuzzylite.com/")
+ (synopsis "Fuzzy logic control binary")
+ (description
+ "This package provides fuzzylite, a fuzzy logic control library which
+allows one to easily create fuzzy logic controllers in a few steps utilizing
+object-oriented programming.")
+ (license license:gpl3)))
+
(define-public xboard
(package
(name "xboard")
@@ -10294,7 +10328,7 @@ can be downloaded from @url{https://zero.sjeng.org/best-network}.")
(define-public q5go
(package
(name "q5go")
- (version "1.0")
+ (version "2.1.3")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -10303,10 +10337,10 @@ can be downloaded from @url{https://zero.sjeng.org/best-network}.")
(file-name (git-file-name name version))
(sha256
(base32
- "1gdlfqcqkqv7vph3qwq78d0qz6dhmdsranxq9bmixiisbzkqby31"))))
+ "0x8x7mp61g3lwabx9z4vsyd743kfqibnqhym7xd0b7811flca3ri"))))
(build-system gnu-build-system)
(native-inputs
- (list pkg-config))
+ (list autoconf automake pkg-config))
(inputs
(list qtbase-5 qtmultimedia-5 qtsvg-5))
(arguments
@@ -10315,32 +10349,34 @@ can be downloaded from @url{https://zero.sjeng.org/best-network}.")
(add-after 'unpack 'fix-configure-script
(lambda _
;; Bypass the unavailable qtchooser program.
- (substitute* "configure"
+ (for-each delete-file
+ '("configure"
+ "Makefile.in"
+ "src/Makefile.in"
+ "src/translations/Makefile.in"))
+ (substitute* "configure.ac"
+ (("AC_PATH_PROG\\(qtchooser, .*\\)")
+ "")
(("test -z \"QTCHOOSER\"")
"false")
- (("qtchooser -run-tool=(.*) -qt=qt5" _ command)
- command))
- #t))
- (add-after 'unpack 'fix-header
- (lambda _
- (substitute* "src/bitarray.h"
- (("#include <cstring>" all)
- (string-append all "\n#include <stdexcept>")))))
+ (("\\$\\(qtchooser -list-versions\\)")
+ "qt5")
+ (("qtchooser -run-tool=(.*) -qt=\\$QT5_NAME" _ command)
+ command))))
(add-after 'unpack 'fix-paths
- (lambda _
- (substitute* '("src/pics/Makefile.in"
- "src/translations/Makefile.in")
- (("\\$\\(datadir\\)/qGo/")
- "$(datadir)/q5go/"))
- #t))
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* '("src/setting.cpp")
+ (("/usr/share/\" PACKAGE \"/translations")
+ (string-append (assoc-ref outputs "out")
+ "/share/qGo/translations")))))
(add-after 'install 'install-desktop-file
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(apps (string-append out "/share/applications"))
- (pics (string-append out "/share/q5go/pics")))
+ (images (string-append out "/share/qGo/images")))
(delete-file-recursively (string-append out "/share/applnk"))
(delete-file-recursively (string-append out "/share/mimelnk"))
- (install-file "../source/src/pics/Bowl.ico" pics)
+ (install-file "../source/src/images/Bowl.ico" images)
(mkdir-p apps)
(with-output-to-file (string-append apps "/q5go.desktop")
(lambda _
@@ -10360,8 +10396,7 @@ can be downloaded from @url{https://zero.sjeng.org/best-network}.")
Comment[zh]=围棋~@
Terminal=false~@
Type=Application~%"
- out pics))))
- #t)))))
+ out images)))))))))
(synopsis "Qt GUI to play the game of Go")
(description
"This a tool for Go players which performs the following functions:
@@ -11273,6 +11308,54 @@ Magic II (aka HOMM2) game engine. It requires assets and game resources to
play; it will look for them at @file{~/.local/share/fheroes2} folder.")
(license license:gpl2)))
+(define-public vcmi
+ (package
+ (name "vcmi")
+ (version "1.2.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/vcmi/vcmi")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0f3fk1fc2wb7f2j4pxz89dzr8zjnrdh435mijia483a3bq59w7pk"))
+ (patches (search-patches "vcmi-disable-privacy-breach.patch"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:configure-flags #~(list "-DFORCE_BUNDLED_FL=OFF")
+ ;; Test suites do not seem well supported upstream and are disabled by default.
+ ;; Pass -DENABLE_TEST to configure to enable.
+ #:tests? #f))
+ (native-inputs
+ (list boost
+ ffmpeg
+ fuzzylite
+ ;; googletest ; needed for tests, but tests are disabled
+ libxkbcommon
+ luajit
+ minizip
+ pkg-config
+ python
+ ;; XXX: Build currently fails with qtbase-6 and qttools-6
+ qtbase-5
+ qttools-5
+ sdl2
+ sdl2-mixer
+ sdl2-image
+ sdl2-ttf
+ tbb
+ vulkan-headers
+ zlib))
+ (home-page "https://vcmi.eu/")
+ (synopsis "Turn-based strategy game engine")
+ (description
+ "@code{vcmi} is an implementation of the Heroes of Might and
+Magic III game engine. It requires assets and game resources to
+play; it will look for them at @file{~/.local/share/vcmi} folder.")
+ (license license:gpl2)))
+
(define-public apricots
(package
(name "apricots")
@@ -11339,6 +11422,45 @@ original, they have been invented by Thomas Colcombet.")
(home-page "https://www.gnu.org/software/liquidwar6/")
(license license:gpl3+)))
+(define-public plunder
+ (let ((commit "026ded7083df5134bdf05b1ec7e5a0099ac9b9d2")
+ (revision "1"))
+ (package
+ (name "plunder")
+ (version (git-version "1.0.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jappeace/plunder")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0m0v8x6q9iq4zihwmysbxjwkq18nar6xhq4g18p2g8c6azj2mgd6"))))
+ (build-system haskell-build-system)
+ (inputs (list ghc-monadrandom
+ ghc-quickcheck
+ ghc-file-embed
+ ghc-generic-lens
+ ghc-lens
+ ghc-random
+ ghc-reflex
+ ghc-reflex-sdl2
+ ghc-sdl2
+ ghc-sdl2-gfx
+ ghc-sdl2-image
+ ghc-sdl2-ttf
+ ghc-vector
+ ghc-witherable))
+ (native-inputs (list ghc-hspec ghc-hspec-core hspec-discover))
+ (home-page "https://github.com/jappeace/plunder")
+ (synopsis "Game about looting a hexagonal-tile world")
+ (description
+ "This package provides a work-in-progress game where you control a
+Viking and your objective is to loot all of the occupied hexagonal tiles in
+the map.")
+ (license license:expat))))
+
(define-public freerct
(package
(name "freerct")