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!
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!
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:
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):
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:
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 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!
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!
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!
You can't cond-expand a module definition because you need the module definition in order to know what names are imported, including cond-expand. Rather than wrapping define-module in cond-expand, you need an inner cond-expand. Unfortunately, Guile's define-module doesn't support a cond-expand form. Fortunately, R7RS's define-library does! So, you'd want to do something like this:
(define-library
(cond-expand
(hoot (import (web dom)))
(else))
(export message)
...)You're close! The misunderstanding seems to be that your are expecting that instantiating the module will modifiy the top level REPL environment. This is not the case and it would be kinda scary if it did that. Wasm modules are their own separate, isolated things. If you want a reference to the make-text-node procedure then you should return it by referencing it in the final line of the program you're compiling with Hoot. From there, run hoot-load on the instantiated module and if you've done everything correctly, the result will be a reference to the make-text-node procedure. The tutorial in the manual goes through this process in more detail.