AAR: My Participation in The GMTK Game Jam 2026
Posted: 2026-08-01
A year has gone by and once again I participated in the GMTK Game Jam. This is an annual event organized by folks behind the Game Maker’s Toolkit YouTube channel. Participants are given 96h to develop a video game from scratch, followed by a 5-day period to play and rate other entries. With 10.5k entries, this 10th GMTK game jam was the biggest one yet!
This year’s theme was “Count Down”. Having played a lot of Brotato recently, I decided to do an arena-shooter with waves (ie. rounds) and upgrades. The twist, and of course there would be a twist, is that the player experiences time in reverse. In practice, this means that your bullets spawn out of enemies (or their carcasses) and fly outwards, to be collected by you. Conversely, enemies’ bullets spawn at a distance from them and fly into their mouths or other excretory alien organs. The game can be played on itch.io and the code is on GitHub.

The game has two HP stats: repairs and causality. Failing to collect your bullet and letting it fly away into outer space reduces causality. Why? If you were never on the trajectory of the bullet, you could not possibly have fired it, so where did it come from - this is a paradox! Further, taking damage from enemy bullets or by bumping into enemies, deducts a repair charge. If you have no repair charges left, that costs you 1 causality instead: you took and repaired damage even though you had no remaining repair tools left - paradox! The loss condition is causality reaching 0 at any point.

As a programmer, coding is no issue for me. I did spend some time drawing images and generating sound effects. They’re not great, but they are serviceable. The real concern was the elusive fun factor. I had made games before, but all too often I’ll hit a wall when I’ve implemented the base mechanics, looked at them and saw nothing but a dry scene of moving rectangles. The game may not have turned out perfect, but I feel like in the end I got a decent way towards making it feel “fun”.
Sound effects help. Mainly, I wanted to play a sound when the player does something right (eg. picks up their bullets) and when they make a mistake that brings them closer to losing (eg. getting hit by an enemy bullet).
When collected, player bullets will shrink and speed up towards the center of the player’s rectangle rather than just disappearing. This means that collecting a bullet gives both visual and auditory feedback.
I made animations for the player’s spaceship and for some of the enemies. I feel these make the game feel more engaging compared to static images.
Tuning the balance of the game was an important part of making it. Going through Git history, many small commits went into this effort. Since this is a game jam where participants will be quickly moving from one game to the next and giving their quick thoughts, ideally the game should be approachable for casual dabblers, but still provide a challenge for more interested players. Honestly, I don’t think I’ve hit it right, but development was moving on the right trajectory.
Collision is an interesting topic in that fair collision feels punishing. Collision masks in my game are rectangles, but enemy and enemy bullet collision masks are quite smaller than their sprite dimensions.
Conversely, the player’s collision mask is padded outwards for purposes of collecting player bullets. This makes bullet collection feel more fluid.
Player bullets spawn from the nearest enemy with >0 HP and fly towards the player with a +/- 36 degree angle. This gives the player some control over them.
Enemy and their bullets are telegraphed before spawning, so that the player has time to react to incoming danger.
Enemies also lose 1 HP when you collide with them. No strong reason for this, I just felt it realistic.
New waves introduce new enemy types and make harder enemies more likely. Players are eased in with simple enemies, but over time things get harder.
As player bullets are collected and enemies gone, a score increases. This further drives players to do what the game intends.
Upon hitting score thresholds, players get more causality (every 1000 points) and repairs (every 5000). This lets them keep playing as the game gets more challenging.
Starting with wave 10, every other wave will cumulatively increase enemy HP by 1. This is a bandaid as the game would get easy with little difficulty scaling.
The game tracks the highest achieved score and wave reached and displays them on the main menu. Since the game is skill-based, this gives players a reason to play again.
The game had upgrades. At the end of each wave, the player is offered 2 options to choose from. Coming up with upgrades was interesting since time was reversed so a lot of ordinary shooter upgrades did not make sense. I added them anyway, but I’ve given them names that better fit what they do in “forward time”. Eg. upgrade to the range at which player bullets can be collected is called “side cannon” as it actually means you’re firing those bullets from further away from you.
For most of them, the first picked upgrade instance will have a double or triple effect. I wanted those first bonuses to feel more meaningful and leave an impression on players that would likely play the game for only a few minutes.
The homing shot upgrade is overpowered. I knew this and intentionally left it so. I was worried the game is too difficult, so this basically lets you play it on easy mode.

There was lore! Only in bits, though. I played into the time mechanic by dropping names from Greek mythology into the game description. The player is a soldier of the Khronos empire fighting against the Ananke Dominion and seeking the heart of Aion. Whatever the hell that’s supposed to be… One of the enemy types are the disciples of Ouranos. Where the player is a time-reversed pilot (Tenet style) in a normal spaceship, disciples and their ships are both time-reversed. You’ll notice they shoot straight at you unlike all other enemies. If you lose the game, you’ll notice they’re unaffected by reality fractures. Hmm…
I kept adding things when I thought I was done, but I managed to restrain myself a few hours before the deadline. And, like last year, many teams waited for literally the last minutes to upload their game, overloading itch.io and making it unresponsive. PSA: if you’re participating in a game jam, upload the last version of your game 2-3h before deadline and leave it at that.
The next phase was playing other participant’s games. There were some good ones in there, definitely ideas I liked. I saw takes on the theme I would have never thought of myself. Ultimately, the theme can be taken in 2 main ways: is it a good or a bad thing that the “count” is going “down”? Also, does the “count down” represent time? I was personally not a fan of games that give you a task but then restrict you with a short timer that resets your progress.
A lot of games I saw gave me impostor syndrome comparing my programmer art to their flashy visuals and special effects. Using an engine such as Unity or Godot would’ve probably made me faster and given me more options. Or at least, I should learn to add shaders to my SDL games, as it’s a programmer-friendly way to spice up graphics.
On the other hand, far too many Unity and Godot games had bugs or ran poorly. I’m not sure if it’s the engine, itch.io or my browser but I’ve seen: games that hang while loading objects, games that don’t load at all, first-person camera sliding towards player’s feet for no reason, game view being zoomed in and not fully visible. The fullscreen button also wasn’t working, but I learned that this is an issue only when using the game jam randomizer - it works when playing the game from its own itch.io URL. Maybe I shouldn’t use engines then?
I also noticed games not being explained properly. My advice is make sure to explain how your game is played and list all of the controls. It takes only a little effort and is very important.
Ok, I’m starting to sound negative. I’ve played many games and was impressed by quite a few of them. itch.io uses a karma system for promoting game jam entries. Rating and commenting other entries gives your entry more visibility. I can confirm this works. I was shy about commenting, but I’ve rated a lot of games and as I did I saw my game got attention as well. I also saw games that deserved more attention but barely had any, presumably because the creators didn’t have time to play the karma system.
The feedback on my game was very positive! Players thought that time-reversal was a unique concept and especially liked the forward-time replay of each wave at the end. They complimented the addictive gameplay and snappy movement. According to https://itchanalytics.vercel.app/jam/gmtk-jam-2026/4797401: “Your game placed in the top 4.876% of games, with a ranking of 508th in rating count.”
There were improvement suggestions that I agree with. There should be more clarity in the UI and around what’s happening in the game. Interestingly, there was feedback that homing shots make it too easy, so maybe I should have made it less of a crutch. I also feel like there should be more time to react to enemy bullets and be able to dodge them. The game should require skill, but it still needs to feel fair.
But the thing that was complimented the most was the death screen. Players loved it, which to me was amusing as I look at it and feel it’s laughable. Reality fracturing from too many paradoxes is an animation that’s supposed to resemble the one from Outer Wilds, but instead it’s, well, this:

Fracture lines invert colors underneath, along with some other effects. I messed around with SDL_BlendMode to achieve that. The code can be found here on the GitHub repo.
Overall, it was a phenomenal event! Now that I have more mileage in polishing and tuning a simple set of mechanics, I feel more confident in being able to create a game that can be said to be fun. And that’s a worthy reward in and of itself!