Skip to main content

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

WireworldView game page

Wireworld cellular automaton for the Spring Lisp Game Jam 2023
Submitted by terpri
Add to collection

Play game

Wireworld's itch.io page

Results

CriteriaRankScore*Raw Score
Entertainment - how enjoyable/replayable is it?#142.8943.300
Presentation - how does it look/feel?#202.8943.300
Overall#212.7773.167
Creativity - how original is the idea?#242.5432.900

Ranked from 10 ratings. Score is adjusted from raw score by the median number of ratings per game in the jam.

Leave a comment

Log in with itch.io to leave a comment.

Comments

Submitted

I haven't really played with this particular cellular automation, so this was fun to explore

Submitted (1 edit)

I was wondering how you managed to get Guile down to a 1 KB cartridge file, but it sounds like that's the magic of Hoot? Edit: or is this just directly coded in the WebAssumbly text format?

Old, possibly irrelevant: Does it require garbage collector support in the WebAssembly runtime? I kind of assumed WASM-4 wouldn't provide that, so now I'm curious.

Jam HostSubmitted(+1)

That 1KB cartridge file is not a Guile program, but a Guile program built the cartridge. What's happening here is that Guile is being used to generate GWAT (the Guile dialect of WAT) that is passed to the Hoot assembler to produce a WASM binary. It's not actually compiling a Scheme program to WASM, which as you mention would require the GC extension which WASM-4 doesn't use. Check out https://gitlab.com/spritely/wasm4-wireworld/-/blob/main/miniworld.scm to get an idea of what's going on.

Submitted
Deleted 1 year ago
Submitted

Cool simulation and it led me to learn about Wireworld, which I've never heard of before!

Submitted

Looks like some issues getting it to run for me. :(

ryan@ryan-server:~/Desktop/Spring Game Jam 2023/wasm4-wireworld$ ./w4 run-native cart.wasm

/tmp/wasm4-linux: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /tmp/wasm4-linux)

Submitted (2 edits)

Fun little simulation, I liked it! Fun fact: my masters thesis was cellular automata-related :)

Also incredibly interesting from the technical standpoint, WebAssembly seems like a promising tech.

Submitted

Nice!

Is it possible to play (or rather explore) it in browser, since it is compiled to WebAssembly?

Submitted(+1)

I was hoping the game would show up on here, but I didn't see it: https://wasm4.org/play/

Submitted

Hm, the site says that you need to send a PR on Github to send a game (https://wasm4.org/docs/guides/distribution#publish-on-wasm4org)

Submitted

Yeah, I was hoping the author of the game had done that because that is the only way I can see to play WASM-4 games in the browser.

Submitted (1 edit) (+1)

Never heard of Wireworld before. Managed to recreate the simpler circuits as presented on Wikipedia: https://en.wikipedia.org/wiki/Wireworld

For others who want to give it a try: `npm -g wasm4 && w4 run-native cart.wasm` did the trick for me. Game controls:

  • Left mouse button to cycle between the 4 states
  • Right mouse button to delete item under cursor
  • x to execute the circuit
Submitted

Thanks for the instructions!

Developer (1 edit) (+1)

To play the cart offline:

  1. Download "cart.wasm" from this submission
  2. Download Wasm-4 for your platform and unzip the download to obtain the w4 executable
  3. Run "w4 run-native cart.wasm", with the appropriate paths to "w4" and "cart.wasm", and enjoy exploring Wireworld!

N.B. GNU Guix users need only download "cart.wasm" and can run it using Guix's wasm4 package, like so: "guix shell wasm4 -- wasm4 cart.wasm".

Submitted

Hi! Pulled down w4 for Windows and did `.\w4.exe run .\cart.wasm` -- got a "cartridge is corrupted" message. It also said to check the console for details, but the PowerShell (or command prompt) console just has the QR code and the URL. Tried redownloading several times and also putting the cart file in different places in the filesystem.

I've heard of WireWorld and will be very interested to try this. Thanks!

Submitted

You’ve gotta use run-native instead of run (not sure it will do the trick on windoze tho)

Submitted(+2)

Got it going! `.\w4.exe run-native .\cart.wasm` Very cool!

Jam HostSubmitted(+1)

@terpri discovered through making this wireworld demo that there's a bug in guile-hoot (the thing generating the wasm file) that is causing the corrupted cartridge error when running in a web browser. Seems that the native wasm engine isn't running a strict validator so it runs.