Compare commits

...

5 commits

Author SHA1 Message Date
Adam Faiz
e2bdba585a
gnu: Add tuxemon.
* gnu/packages/games.scm (tuxemon): New variable.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2025-02-24 20:55:25 +01:00
Adam Faiz
b7154c276c
gnu: Add python-pytmx.
* gnu/packages/game-development.scm (python-pytmx): New variable.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2025-02-24 20:55:25 +01:00
Adam Faiz
ac678fd48d
gnu: Add python-pyscroll.
* gnu/packages/game-development.scm (python-pyscroll): New variable.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2025-02-24 20:55:24 +01:00
Adam Faiz
48cec1acd6
gnu: Add python-pygame-menu.
* gnu/packages/game-development.scm (python-pygame-menu): New variable.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2025-02-24 20:55:24 +01:00
Adam Faiz
4fe503b35b
gnu: Add python-neteria.
* gnu/packages/game-development.scm (python-neteria): New variable.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2025-02-24 20:55:24 +01:00
2 changed files with 164 additions and 0 deletions

View file

@ -30,6 +30,7 @@
;;; Copyright © 2022 dan <i@dan.games>
;;; Copyright © 2022 Cairn <cairn@pm.me>
;;; Copyright © 2023, 2024 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2022-2023, 2025 Adam Faiz <adam.faiz@disroot.org>
;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
;;; Copyright © 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2025 Sharlatan Hellseher <sharlatanus@gmail.com>
@ -114,6 +115,7 @@
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-graphics)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages readline)
@ -615,6 +617,43 @@ you can focus on the game itself. This makes more rapid game development
possible, and it also makes the SGE easy to learn.")
(license license:lgpl3+)))
(define-public python-pyscroll
(package
(name "python-pyscroll")
(version "2.31")
(source (origin
(method url-fetch)
(uri (pypi-uri "pyscroll" version))
(sha256
(base32
"0w3c58mkkbsyvx9w9hwdizk20pbds800m7v9vg49ydw440dha0hr"))))
(build-system python-build-system)
(propagated-inputs (list python-pygame))
(home-page "https://github.com/bitcraft/pyscroll")
(synopsis "Fast scrolling maps library for pygame")
(description "@code{pyscroll} is a simple and fast module
for animated scrolling maps for your new or existing game.")
(license license:lgpl3+)))
(define-public python-pytmx
(package
(name "python-pytmx")
(version "3.32")
(source (origin
(method url-fetch)
(uri (pypi-uri "PyTMX" version))
(sha256
(base32
"1jh9b0pjqbjdv72v5047p5d769ic084g013njvky0zcfiwrxi3w5"))))
(build-system python-build-system)
(propagated-inputs
(list python-pygame python-pysdl2 python-pyglet))
(home-page "https://github.com/bitcraft/PyTMX")
(synopsis "Python library to read Tiled Map Editor's TMX maps")
(description "@code{pytmx} is a map loader for python/pygame designed for games.
It provides smart tile loading with a fast and efficient storage base.")
(license license:lgpl3+)))
(define-public python-tmx
(package
(name "python-tmx")
@ -678,6 +717,25 @@ GUI toolkit, lighting and physics frameworks and @code{Tiled} TMX format
support.")
(license license:lgpl3+)))
(define-public python-neteria
(package
(name "python-neteria")
(version "1.0.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "neteria" version))
(sha256
(base32 "1azlix80a6vns2i3z0bdbqk32kx8s2gjh2nvshab235fd9h85yv7"))))
(build-system python-build-system)
(propagated-inputs
(list python-rsa))
(home-page "https://pypi.org/project/neteria/")
(synopsis "Simple game networking library")
(description
"This package provides a game networking framework for Python.")
(license license:gpl3+)))
(define-public slade
(package
(name "slade")
@ -1463,6 +1521,50 @@ and multimedia programs in the Python language.")
license:public-domain
license:lgpl2.1+))))
(define-public python-pygame-menu
(package
(name "python-pygame-menu")
(version "4.5.1")
(source
;; Tests not included in release.
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/ppizarror/pygame-menu")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0xd5d6nfkd5bp2zfq77yglp6mz043w28zprfz7savgmph5kvdnfh"))))
(build-system pyproject-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(add-before 'check 'prepare-test-environment
(lambda _
(setenv "HOME" (getcwd))))
(add-before 'check 'skip-certain-tests
(lambda _
(substitute* "test/test_font.py"
(("test_font_argument") "skip_test_font_argument")
(("test_system_load") "skip_test_system_load"))
(substitute* "test/test_baseimage.py"
;; Tuples differ: (111, 110) != (110, 109)
(("test_invalid_image") "skip_test_invalid_image")
(("test_scale") "skip_test_scale")))))))
(propagated-inputs (list python-pygame python-pyperclip
python-typing-extensions))
(native-inputs (list python-nose2 python-setuptools python-wheel))
(home-page "https://pygame-menu.readthedocs.io")
(synopsis "Menu for pygame")
(description
"Pygame-menu is a python-pygame library for creating menus and GUIs.
It supports several widgets, such as buttons, color inputs, clock objects,
drop selectors, frames, images, labels, selectors, tables, text inputs,
color switches, and many more, with multiple options to customize.")
(license license:expat)))
(define-public python-pygame-sdl2
(let ((real-version "2.1.0")
(renpy-version "8.3.0"))

View file

@ -87,6 +87,7 @@
;;; Copyright © 2024 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
;;; Copyright © 2024 Ashvith Shetty <ashvithshetty10@gmail.com>
;;; Copyright © 2025 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2023-2025 Adam Faiz <adam.faiz@disroot.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -6217,6 +6218,67 @@ safety of the Chromium vessel.")
;; by the Expat License.
(license (list license:clarified-artistic license:expat))))
(define-public tuxemon
(let ((commit "19708725f8b2d939e39b726f49a8a078eba8bf32")
(revision "0"))
(package
(name "tuxemon")
(version (git-version "0.4.34" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Tuxemon/Tuxemon")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0jdhk6xs4895gifxlkaxk7625wvw2yl1yc6ciay137dk78amhp86"))
(modules '((guix build utils)))
(snippet
#~(begin
(substitute* "requirements.txt"
(("pygame-ce") "pygame") ; The pygame-ce fork isn't packaged in Guix
(("pygame-menu-ce") "pygame-menu")
(("==") ">="))
(substitute* "tuxemon/constants/paths.py"
(("LIBDIR, ....,") "LIBDIR,"))))))
(build-system python-build-system)
(native-inputs (list python-flit-core python-setuptools))
(propagated-inputs
(list python-babel
python-cbor
python-neteria
python-natsort
python-pygame
python-pyscroll
python-pytmx
python-pillow
python-prompt-toolkit
python-pydantic-2
python-pygame-menu
python-pyyaml
python-requests))
(arguments
(list #:tests? #f ; Tests won't be updated until the API stabilises
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'install-mods
(lambda _
(let ((site (string-append #$output "/lib/python"
#$(version-major+minor
(package-version python))
"/site-packages/tuxemon/mods")))
(mkdir-p site)
(copy-recursively "mods" site)))))))
(home-page "https://www.tuxemon.org/")
(synopsis "Monster-fighting RPG")
(description
"Tuxemon is a monster-fighting RPG.
In the spirit of other clones like SuperTux and SuperTuxKart,
Tuxemon aims to create a game with its own unique style
that sets it apart from other monster fighting RPGs.")
(license license:gpl3+))))
(define-public tuxpaint
(package
(name "tuxpaint")