Tobias Alexandra Platen <g...@platen-software.de> writes: > On Wed, 2025-08-06 at 06:13 +0200, Tobias Alexandra Platen wrote: >> On Wed, 2025-08-06 at 11:24 +0900, Maxim Cournoyer wrote: >> > Hi Tobias, >> > >> > Tobias Alexandra Platen <g...@platen-software.de> writes: >> > >> > > I am definitively interested >> > >> > Neat! Don't forget to register for the event. It looks like the >> > hackathon teams will be split in small groups of 3 people. >> I will do that today > DONE: I registered for GNU Guix and I now ask if anyone has an > "understanding of DIY hardware". Guix has Monado 24.0.0, but it > currently lacks libsurvive. So I need to package libsurvive too. > For my LibreVR hardware project I want to build the firmware using > Guix, I also look for solutions to package Godot games such as > BeepSaber. >> > >> >>
Some godot games are packaged already, it would be cool to take their #:phases and turn them into a build system though! (See https://issues.guix.gnu.org/48952). I already tried packaging a few and doing the build system but didn’t finish the work. Here’s a WIP package for sound-space-plus if you want.
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 9c7316ff2c..bc68f4d9e2 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -3119,6 +3119,108 @@ (define-public superstarfighter (license (list license:expat ; game license:silofl1.1)))) ; fonts +(define-public sound-space-plus + (package + (name "sound-space-plus") + (version "2024-10-31") ;Originally named oct31-2024 + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/David20122/sound-space-plus") + (commit "oct31-2024"))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0iinm1kn5w98csspl34f2i69g1nxv3w3z4bk3dr48qydjrc1d3hw")) + (patches + (search-patches "sound-space-plus-remove-discord-integration.patch")) + (modules '((guix build utils))) + (snippet + '(begin + (delete-file-recursively "addons/discord_game_sdk"))))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ;there are no tests + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda _ + (setenv "HOME" (getcwd)) + (with-output-to-file "export_presets.cfg" + (lambda () + (display + "[preset.0] + +name=\"Linux/X11\" +platform=\"Linux/X11\" +runnable=true +custom_features=\"\" +export_filter=\"all_resources\" +include_filter=\"\" +exclude_filter=\"\" +export_path=\"\" +script_export_mode=1 +script_encryption_key=\"\" + +[preset.0.options] + +custom_template/debug=\"\" +custom_template/release=\"\" +binary_format/architecture=\"x86_64\" +binary_format/embed_pck=false +texture_format/bptc=false +texture_format/s3tc=true +texture_format/etc=false +texture_format/etc2=false +texture_format/no_bptc_fallbacks=true +"))) + #t)) + (replace 'build + (lambda _ + (let ((godot (assoc-ref %build-inputs "godot-headless"))) + (invoke (string-append godot "/bin/godot_server") + "--export-pack" "Linux/X11" + "sound-space-plus.pck" "project.godot")) + #t)) + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (share (string-append out "/share")) + (data (string-append share "/sound-space-plus")) + (icons (string-append share "/icons/hicolor/256x256/apps"))) + (install-file "sound-space-plus.pck" data) + (mkdir-p bin) + (call-with-output-file (string-append bin "/sound-space-plus") + (lambda (port) + (format port + "#!/bin/sh~@ + exec ~a/bin/godot --main-pack ~a/sound-space-plus.pck~%" + (assoc-ref inputs "godot") + data) + (chmod port #o755))) + (mkdir-p icons) + (copy-file "assets/images/branding/icon.png" (string-append icons "/" ,name ".png")) + (make-desktop-entry-file + (string-append share "/applications/" ,name ".desktop") + #:name "Sound Space Plus" + #:comment "Rhythm-based aim game" + #:exec ,name + #:icon ,name + #:categories '("Game"))) + #t))))) + (native-inputs + `(("godot-headless" ,godot-lts "headless"))) + (inputs + (list godot-lts)) + (home-page "https://notapixel.itch.io/superstarfighter") + (synopsis "Fast-paced local multiplayer arcade game") + (description "In SuperStarfighter, up to four local players compete in a +2D arena with fast-moving ships and missiles. Different game types are +available, as well as a single-player mode with AI-controlled ships.") + (license (list license:expat ; game + )))) ; TODO: assets licenses + (define-public tetzle (package (name "tetzle")
One thing to be aware of when packaging godot games is the bundled addons and assets which can have different licensing and might not be FSDG compatible. (and should probably be unbundled if possible) I’m willing to give it some time though so tell me that interests you! Have a nice day, Noé
signature.asc
Description: PGP signature