A downloadable game for Linux

You have awoken to find yourself in a laboratory with no memory of past events. Something which you cannot see or hear is communicating with you. They are asking you to set them free, but you sense danger. Hunt for clues and solve puzzles to unravel this micro mystery!

Features:

  • 3 possible endings (can you reach the true ending?)
  • Revolutionary command-line terminal
  • Pointing and clicking
  • State of the art text box technology

This game was made for the Spring Lisp Game Jam 2021 using the GNU Guile language and the Chickadee game library.

Download

Download
the-test-subject.tar.gz 16 MB

Install instructions

Extract the .tar.gz archive wherever you'd like. Enter "the-test-subject" directory. Run "./launch-game" to play.

Source code available at https://git.dthompson.us/spring-lisp-game-jam-2021.git/. See the included README for information about building from source.

Comments

Log in with itch.io to leave a comment.

Hi, I'm trying to build this "from source" by running `guix build -f guix.scm` on f022cdbd6cae6fa8c8d7596be5812fbf45ca6a9a, but I get the following error:

starting phase `unpack'
Backtrace:
           9 (primitive-load "/gnu/store/y9smaha1da8szrjd0y7dd0v0d59…")
In ice-9/eval.scm:
   191:35  8 (_ #f)
In guix/build/gnu-build-system.scm:
    838:2  7 (gnu-build #:source _ #:outputs _ #:inputs _ #:phases . #)
In ice-9/boot-9.scm:
  1736:10  6 (with-exception-handler _ _ #:unwind? _ # _)
In srfi/srfi-1.scm:
   857:16  5 (every1 #<procedure 7ffff59b1b60 at guix/build/gnu-bui…> …)
In guix/build/gnu-build-system.scm:
   847:30  4 (_ _)
    151:6  3 (unpack #:source _)
In ice-9/boot-9.scm:
  1966:24  2 (_ _)
In unknown file:
           1 (stat #f #<undefined>)
In ice-9/boot-9.scm:
  1669:16  0 (raise-exception _ #:continuable? _)
ice-9/boot-9.scm:1669:16: In procedure raise-exception:
In procedure stat: Wrong type argument in position 1 (expecting open file port): #f
builder for `/gnu/store/is4874z0z2i9fn2n6jsqlhjshf3vzz3m-spring-lisp-game-jam-2021-0.1.drv' failed with exit code 1

The following patch fixes it:

From d8321a5792811021f5e420ebf9cb6a3d35e8796e Mon Sep 17 00:00:00 2001
From: Leo Prikler <leo.prikler@student.tugraz.at>
Date: Mon, 26 Apr 2021 16:54:26 +0200
Subject: [PATCH] Allow building from source.
---
 guix.scm | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/guix.scm b/guix.scm
index 5338156..924e8f2 100644
--- a/guix.scm
+++ b/guix.scm
@@ -2,6 +2,7 @@
              (srfi srfi-1)
              (guix build-system gnu)
              (guix download)
+             (guix gexp)
              (guix git-download)
              ((guix licenses) #:prefix license:)
              (guix packages)
@@ -175,10 +176,16 @@ yet.")
      (home-page "https://git.dthompson.us/starling.git")
      (license license:gpl3+))))
+(define %source-dir (dirname (current-filename)))
+
 (package
   (name "spring-lisp-game-jam-2021")
   (version "0.1")
-  (source #f)
+  (source
+   (local-file %source-dir #:recursive? #t
+               #:select? (if (file-exists? (string-append %source-dir "/.git"))
+                             (git-predicate %source-dir)
+                             (const #t))))
   (build-system gnu-build-system)
   (native-inputs
    `(("autoconf" ,autoconf)
-- 
2.31.1

`guix build -f` currently isn't supported. For now run `guix environment -l guix.scm` and build from source that way. Instructions are in the README. I can try to make guix.scm a true buildable package soon.

Hacking guix.scm for an ad-hoc environment felt like a better idea at the time, so I did that. On a somewhat related note, do you really need to patch Guile itself? My gut instinct tells me you should be able to ship a patched GOOPS with starling similarly to how I used a "magic" module to introduce pre-release Guile-SDL2 functionality to Tsukundere.

I suppose I could include a modified copy of goops.scm and take advantage of load order to have my version loaded.  Might try that later. At the time I wanted to test a full Guile build since I submitted the patch upstream and wanted a true integration test, but the patch got merged awhile ago so it's no longer necessary. Thanks for the suggestion.

Hi! I tried to run the game but I faced issues.
First I tried to run ./launch-game and had following error:

/home/torkut/Game/the-test-subject/bin/guile: error while loading shared libraries: libffi.so.7: cannot open shared object file: No such file or directory

Then I tried to build the game from source code, I used instructions from README. The built run without issues, but then I launched ./run-game I got an error:

./run-game
Backtrace:
In ice-9/boot-9.scm:
  1736:10 17 (with-exception-handler _ _ #:unwind? _ # _)
In unknown file:
          16 (apply-smob/0 #<thunk 7f17bb912ea0>)
In ice-9/boot-9.scm:
    718:2 15 (call-with-prompt _ _ #<procedure default-prompt-handle…>)
In ice-9/eval.scm:
    619:8 14 (_ #(#(#<directory (guile-user) 7f17bb90cc80>)))
In ice-9/command-line.scm:
   185:18 13 (_ #<input: string 7f17bb907850>)
In unknown file:
          12 (eval (launch-game) #<directory (guile-user) 7f17bb90cc…>)
In starling/kernel.scm:
   369:10 11 (_ #<kernel name: #f id: 0> #<procedure 7f17bb3e5148 at…>)
In starling/node.scm:
    336:2 10 (_ #<kernel name: #f id: 0> #<game name: #f id: 8>)
In ice-9/boot-9.scm:
   260:13  9 (for-each #<procedure 7f17b9c5bc60 at starling/node.sc…> …)
In starling/node.scm:
   344:16  8 (_ #<game name: #f id: 8>)
In test-subject/game.scm:
   1104:2  7 (_ #<game name: #f id: 8>)
In chickadee/scripting/script.scm:
     93:4  6 (spawn-script _)
    85:13  5 (_)
In test-subject/game.scm:
    155:2  4 (_ #<game name: #f id: 8>)
In starling/node.scm:
    336:2  3 (_ #<game name: #f id: 8> #<sprite name: intro-lightne…> …)
In ice-9/boot-9.scm:
   260:13  2 (for-each #<procedure 7f17b9c69d80 at starling/node.sc…> …)
In starling/node.scm:
   344:16  1 (_ #<sprite name: intro-lightness id: 13>)
In starling/node-2d.scm:
   597:25  0 (_ #<sprite name: intro-lightness id: 13>)
starling/node-2d.scm:597:25: In procedure texture-width: Wrong type argument: #<<asset> 7f17b7e1a600>


Maybe I'm missing something, do you have a clue what happened?
I run this on Debian using Guix package manager.

Cheers! (and happy debugging :) )

(1 edit)

Ugh! Sorry! Could you try renaming lib/libffi.so.6 to lib/libffi.so.7 and see if the binary bundle works?  If so I can upload a fixed build (if that's permitted, not sure.)

The Guix error is confusing because you should be reproducing my exact dev environment. I pushed a commit that disables developer mode in the run-game script. Maybe it will work now? Shot in the dark.

Thanks for trying.

1. After renaming lib/libffi.so.6 to lib/libffi.so.7 the following errors happend:

./launch-game
/home/torkut/Game/the-test-subject/bin/guile: /lib/x86_64-linux-gnu/libcrypt.so.1: version `XCRYPT_2.0' not found (required by /home/torkut/Game/the-test-subject/lib/libguile-3.0.so.1)

/home/torkut/Game/the-test-subject/bin/guile: /home/torkut/Game/the-test-subject/lib/libffi.so.7: no version information available (required by /home/torkut/Game/the-test-subject/lib/libguile-3.0.so.1)

/home/torkut/Game/the-test-subject/bin/guile: /home/torkut/Game/the-test-subject/lib/libffi.so.7: no version information available (required by /home/torkut/Game/the-test-subject/lib/libguile-3.0.so.1)

/home/torkut/Game/the-test-subject/bin/guile: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /home/torkut/Game/the-test-subject/lib/libguile-3.0.so.1)

2. Pulled the update in the repo and tried again. The traceback

Backtrace:
In ice-9/eval.scm:
   721:20 19 (primitive-eval _)
In ice-9/psyntax.scm:
  1241:36 18 (expand-top-sequence _ _ _ #f _ _ _)
  1233:19 17 (parse _ (("placeholder" placeholder)) ((top) #(# # …)) …)
   285:10 16 (parse _ (("placeholder" placeholder)) (()) _ c&e (eval) …)
In ice-9/boot-9.scm:
  3898:20 15 (process-use-modules _)
   222:17 14 (map1 (((test-subject game))))
  3899:31 13 (_ ((test-subject game)))
  3297:17 12 (resolve-interface (test-subject game) #:select _ #:hide …)
In ice-9/threads.scm:
    390:8 11 (_ _)
In ice-9/boot-9.scm:
  3223:13 10 (_)
In ice-9/threads.scm:
    390:8  9 (_ _)
In ice-9/boot-9.scm:
  3507:20  8 (_)
   2806:4  7 (save-module-excursion _)
  3527:26  6 (_)
In unknown file:
           5 (primitive-load-path "test-subject/game" #<procedure 7f…>)
In test-subject/game.scm:
     31:0  4 (_)
In oop/goops.scm:
   2852:4  3 (_ _ . _)
In srfi/srfi-1.scm:
    634:9  2 (for-each #<procedure 7f49b648f620 at starling/gui.scm…> …)
    634:9  1 (for-each #<procedure 7f49b648f560 at starling/gui.scm…> …)
In starling/gui.scm:
   246:34  0 (_ _)
starling/gui.scm:246:34: non-themeable slot for class #<<meta-widget> <widget> 7f49b646c900> font

Something changed, this is a different error from what I can understand.


(1 edit)

Thanks for the information. Unfortunately I don't think these are easily fixable for this jam, but it's valuable information to have for the future.


What distro and version are you running? I think your system's glibc is too old to work with the binaries provided.