Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

David Thompson

263
Posts
16
Topics
72
Followers
37
Following
A member registered Dec 12, 2015 · View creator page →

Creator of

Recent community posts

It is possible to re-define top-level symbols with the REPL currently. I haven't had the opportunity to try live coding a game but replacing top-level definitions is something I did a lot when developing geiser-hoot.

The template includes keyboard controls so the decision to remove them was entirely the choice of the developer.

Yes, it is possible to load multiple wasm modules but there are some caveats that make it an advanced topic. I have done this before, though. One issue is that record type descriptors are not canonicalized between wasm modules, so if you had record type <foo> in modules A and B they would be completely different types.

Whole program compilation is just kind of a slow thing in general. We are trying to make compilation less frequent during development by improving the tools for live hacking. We're not there yet, of course, but it's getting better.

I don't understand what you mean by "it can't reload functions"?

Edited to include Postal Penguin (written in Chicken Scheme) which was a late submission.

Great use of tank controls. Love the PS1 vibe of it all.

(2 edits)

Congrats to everyone who submitted their game! Here's a quick breakdown of submissions by language:

  1. Fennel (6)
  2. Clojure, Guile (5)
  3. Chicken (3)
  4. Common Lisp, Kawa, Steel, Unknown (1)

Oh, and make sure to include source code!

Is there a repository where we can find the source code?

(1 edit)

Here's your magic link. It only works for your account so I feel okay with just posting it here:

<redacted>

I think if I remove your submission from the jam I can then send you a special submission link.

There is no Discord server but feel free to join the #lispgames channel on the Libera.Chat IRC network.

Yesterday, we released Hoot 0.9.0 and updated the template repo accordingly. Also, a new contributor added basic gamepad support so there's now a starting point for more than just keyboard input.

One day until the jam! Have fun everyone!

This seems fine to me! Have fun!

If you are interested in making a web browser game with Scheme then Hoot is a great option for you! Hoot is a Scheme to WebAssembly compiler that supportsR7RS-small and a subset of Guile such as delimited continuations (useful for scripting games via coroutines). The  Hoot game jam template repository on Codeberg has everything you need to get started.

The template repository includes:

  • Bindings to the necessary web APIs to make an interactive game with HTML5 canvas
  • A Makefile for compiling, running a development web server, and generating a .zip bundle for uploading to itch.io
  • A very simple Breakout-like example game that demonstrates how to put all the pieces together

Some games made with Hoot for past jams:

I'll do my best to help anyone that uses Hoot for the jam, whether here in this forum, on the official Spritely forum, or on the #spritely channel on the Libera.Chat IRC network. Have fun!  🦉

Asking on behalf of Alexander Shendi who is trying to form a Lisp gathering at the 39th Chaos Computer Club and was wondering if anyone wanted to talk about their experience making games with Lisp.

Details on Mastodon (I don't attend this conference so I don't really understand it all):

https://rollenspiel.social/@alexshendi/115565869219718040

https://rollenspiel.social/@alexshendi/115513496629603264

Update your project as much or as little as you want!

Thanks for the clarification! The list has been updated.

Okay I have clearly upset the Lisp historians. Please accept this Schemer's humble apologies.

I have no idea how this would work but I think it would cause issues.

Hmm, interesting. I will make Interlisp a separate category but in my head it's still basically Common Lisp.

I'm confused by this. The source code contains a Gauche Scheme file.

(4 edits)

Below is the breakdown of Lisps used for this edition of the jam, ordered by popularity:

  1. Fennel: 9
  2. Clojure: 3
  3. Guile: 2
  4. Other: 2 (Jester, a Lisp made for the jam AFAICT, and Lisp in 1k lines of C)
  5. Common Lisp: 1
  6. Interlisp: 1
  7. Kawa: 1
  8. Racket: 1
  9. S7: 1

For some entries it is unclear what Lisp was used without further investigation. I think I'll amend the rules next time to make this a requirement. 

I hope you mean bytevectors because regular Scheme vectors will be very inefficient for buffer data!

  • Hoot is a whole-program compiler so compilation times are longer than in separate compilation because there's simply a lot more code to deal with. However, it's possible to compile multiple separate modules and have them work together. One module would serve as the primary module that exports its ABI and the other modules would be secondary modules that import their ABI. I recently did this for a program by splitting up the backend (which was a lot of code that rarely changed) and the frontend (which was much smaller and quicker to compile). The --mode=secondary flag for guild compile-wasm is what you should look into. In JS, you'd call load_main for the main module and then load_extension for each secondary module. See here for an example.
  • Correct, Geiser is not supported right now so there isn't really a usable workflow for live hacking.. We have plans for a geiser-hoot.el package but we haven't gotten to it yet. Since the REPL would be running inside a web browser tab, it cannot act as a REPL server like we need it to. Resolving this will require introducing a WebSocket daemon middleman, much like Fennel's webrepl.  I hope this is something I can work on soon.
  • Yes, I would like to catch that unbound top-level error and print a better message rather than just a raw backtrace. That error is generated from an early phase in the compiler defined in the (hoot library-group) module. I filed an issue to track it.

What were you having trouble with? Any specific canvas methods?

If you are interested in making a web game using Scheme then Hoot is a great option for you! Hoot is a Scheme to WebAssembly compiler that supports most of R7RS-small and some Guile extensions such as delimited continuations (useful for scripting games via coroutines). Our game jam template repository on Codeberg that has everything you need to get started making 2D games.

The template repository includes:

  • Bindings to the necessary web APIs to make an interactive game with HTML5 canvas
  • A Makefile for compiling, running a development web server, and generating a .zip bundle for uploading to itch.io
  • A very simple Breakout-like example game that demonstrates how to put all the pieces together

Some games made with Hoot for past jams:

I'm currently working to release a new version of Hoot before the jam starts.

I'll do my best to help anyone that uses Hoot for the jam, whether here in this forum, on the official Spritely forum, or on the #spritely channel on the Libera.Chat IRC network. Have fun!  🦉

I like the look and feel of this game a lot! I found the mechanics a little hard to get my head around, though. The tip about buying a travelpass upgrade first was helpful. I sold a thing or two but I was selling at a loss so I am but a poor space cowboy it seems.

Thanks for making something with Hoot!

(1 edit)

I shot all the cubes with my cube. Wish there were more cubes to shoot. Nice job using Hoot for this!

I enjoy Sokoban-likes with a story element so this was fun for me! The art was really great. I liked the use of limited moves for the puzzles. All the puzzles felt very beginner level to me, and I wish there were more challenging ones to solve.

1Very spooky. Seems there is so no happy ending to be found, heh. I liked the page turning effect and the eye cursor. Wish there was more to do! Nice job using Hoot for this!

I love games that take familiar rules and apply them in a new way. Balatro is to poker as Monster Chess is to chess??? I made it through all of the levels, maybe around half of them on par. I liked having the par number because then I could feel proud about not only solving the puzzle but solving it in few moves. The introduction of a second white piece was cool. Would have liked to see that developed more. Nice job!

This game taught me that if  I were out in the hexagonal wasteland I'd probably starve. Nice graphics and atmospheric background music. I felt really limited by only having 4 inventory slots and I never made it very far but it was cool!

Okay so there really needs a full game that involves fediverse moderation that leads to a grand conspiracy! I think I got the "true" ending. I wish I could press the space bar or something to advance the narrative rather than moving my mouse over "next" repeatedly. Nice job and very cool that you used Hoot for this!

Had fun with this one once I "got it"!For some of the puzzles I wished I could move the camera in addition to panning and zooming. Great job!

At first I thought I just had to run away from the enemies but then I realized I could run into them to kill them and started having fun. I wish the movement inputs didn't rely on key repeat so they'd be more responsive and that the player moved a little faster. Thanks for making a game with Hoot! I love to see it.

Any game where you play as a dog is off to a good start. This was a simple and fun Vampire Survivors-like ;). The collisions between the dog and the bats felt a little unforgiving, leaving me wondering how I got hit. When I tried to restart the game it seemed to freeze and the music stopped playing so I had to refresh to try again. Would be cool to see an upgraded version of this in a future jam!

I really enjoyed the look and feel of this game! Loved the CRT TV screen filter. I couldn't figure out how to play it effectively, though.