A zig-only game jam, with a unique gimmick for each jam, focused on limiting you in fun ways!
A couple of months ago, me, @evaleek and @Sietse2202 decided we wanted to host a zig gamejam to show our love for the language, game development, and the community!
As said above, the jams will focus on limited environments; constraints that force you to
adapt in interesting ways, such as limited
resolution
audio frequency range or bitdepth
clock speed
rendering capabilities
This is done in large part via the target you’ll have to use. For the first jam, more on that down
below! For later jams it could be other fantasy consoles, specific libraries you have to use, or other limitations!
First edition
The first edition of this jam will take place from 2026-07-20T00:00:00Z until 2026-07-27T00:00:00Z and will require participants to make a game written in Zig using WASM-4; a simple console that runs on the web with good zig support.
For details on how to participate, how to get started, what zig-only exactly means, and the rules surrounding generative AI, more information can be found here!
Anyone is more than welcome to participate, even if you don’t plan on submitting!
I won’t be participating, but I sure as hell would love to play any games that end up being submitted! Will those be posted here as well, or where should I be looking after the jam?
Looking forward to joining this!
I’m gonna be going into this with zero game dev experience, so wish me luck :​D
Hopefully the extremely limited platform will make it a bit easier to get into.
I used wasm4 in 2022, but then it was accessible to me, and I don’t have any experience in game dev either. So go for it, I’m sure gonna learn a lot.
I wrote TO THE CORE for the first WASM-4 jam! Later on teaching zig programming through Zoop Zoop Bee Adventures 7 in the same engine/fantasy console. It’s a fun one! I think the generated build.zig needs updating though.
I hadn’t heard of WASM-4 before and it wasn’t super clear to me what it was, so if anyone was similarly confused it seems:
You write your zig application, using their tiny “library” for the platform bits (graphics, sound, input).
You build that for WASM, and end up with a my-game.wasm blob. This can be run with their binary with w4 run zig-out/bin/my-game.wasm.
It’ll launch the game in your browser
Run w4 new --zig my-game .
This will make a new zig project with a (broken for 0.16 at time of writing) build.zig.
The fix is very easy just replace the const exe declaration with
You’re right, thanks for the summary! We’ll provide instructions on how to get started in our next post.
If you’re interested, our own build script can be found in our template repository.
Don’t hesitate to toy with our template repo (link in my previous answer)! We wrote our own w4 wrapper and our own build script. We planned to announce that in the next post but I’m glad to see people are experimenting with it already haha
We’re on fire. I plan to participate but can only do so in the evening, when I’m already tired. Or to be more precise, more tired than in the morning
Either way, thanks for all the work you put in there.
If you actually do --release=small or a similar command, it’ll strip debug symbols automatically and result in the same small size.
This possibly suggests that .preferred_optimize_mode is a lie.