July 28, 2026Devlog

How I Built 0 Seconds Left For The GMTK Jam In Godot

The devlog behind 0 Seconds Left, my GMTK Game Jam 2026 entry. Two countdowns pulling opposite ways, one cursor against nine failing reactor systems, and the one and a half second fuse that stops the game from feeling cheap.
0 Seconds Left
Godot Game Devlog
GMTK Game Jam
Indie Game Development
Game Design
How I Built 0 Seconds Left For The GMTK Jam In Godot
The theme dropped and it was Count Down. My first thought was a bomb timer, which is everyone's first thought, which is exactly why I threw it out. The interesting version of a countdown is not one clock. It is two clocks that want opposite things from you. That became the whole game. Every reactor system in front of you counts down toward failure and you are fighting to stop it. The evacuation clock also counts down, and you are desperate for that one to land. One clock must reach zero. Everything else must not. I submitted with four hours and fourteen minutes left on the jam deadline, which felt luxurious right up until I found the first bug. Here is the thing about jam themes. You get graded on interpretation, so the cheap read is a trap, but the clever read that nobody can understand in thirty seconds is a worse trap. The two-clock idea survived because it explains itself the moment you look at the screen. Big evac timer across the top, counting toward 00:00. A grid of system gauges below it, each holding a number that keeps sliding toward zero on its own. You do not need a tutorial to work out which one you want to win. There is a third countdown stacked on top, the nights remaining counter, ticking from seven down to zero across a run. I liked that it made the theme fractal without adding a rule. Same word, three scales, no extra explaining. The core is deliberately mean. You hold left mouse on a system and it charges back up. Everything you are not touching keeps draining. That is it, that is the loop. Night one gives you three systems, which is comfortable. Night seven gives you nine, and they come online staggered a few seconds apart so the panel fills up around you while you are already busy. By the end you are not managing a reactor so much as choosing which thing you are willing to let get bad. The design word I kept coming back to was triage. Not skill, not reflexes. Triage. Which fire do I put out, which one can survive another six seconds without me, can I physically get the cursor there in time. I think the reason it works is that the answer is usually no, and you have to pick anyway. Systems warn you twice on the way down. First they go amber and read LOW, then they go red and read CRITICAL with a klaxon rising underneath the music. Two tiers rather than one turned out to matter, because the amber stage is early enough that you can still fold the fix into your normal sweep instead of abandoning everything to sprint over. That warning does a lot of work. It converts "I lost and I don't know why" into "I heard that and I went the other way." This is the rule I am most glad I wrote. A gauge hitting zero does not kill you. It lights a meltdown fuse, about a second and a half long, with a loud three-two-one on top of it. Get that system back above zero before the fuse burns out and you are fine. Miss it and the reactor goes, run over, no second chances. I wanted instant death because the tension collapses without it. Instant death is also the fastest way to make a player feel cheated. The fuse buys both. Every single loss in this game is one you watched coming and failed to reach, which is a completely different feeling from a loss that just happens to you. Small thing, and it took maybe twenty minutes to implement. It is the difference between people restarting and people closing the tab. You need a reason to touch a system that is already healthy. Otherwise the optimal play is to ignore anything above 50 and the top half of every gauge is dead space. So right mouse toggles overclock. It doubles that system's drain and pays you salvage while the gauge stays inside a band between 55 and 85. Too low and it stops paying. Too high and it also stops paying, so you cannot just park it at 100 and farm. What I like about it is that it turns your safest system into your riskiest one, voluntarily, because you got greedy. The upgrade shop between nights costs salvage, so the greed compounds. Skip overclocking and you survive night three with nothing to spend. Lean on it and you might not survive night three. I am not certain the band is tuned right. It might be slightly too generous. Three upgrade cards, pick one, and you can reroll or skip for a little extra salvage. Eighteen of them in the live build. Some are boring in a good way, more charge speed, a bigger fuse. Some restructure how you play, like charge splashing into neighbouring systems, or stabilizer bots that hold a gauge for you while you are somewhere else. The point of the shop is not power. It is that a run develops a shape. You end up with a manual charging build or a bot-heavy automation build or a reckless overclock build, and you did not choose that at the start, you drifted into it based on what the shop offered and what was killing you at the time. Roguelike logic, jam scale. Three operators sit in front of all that, picked before the run. Engineer is the plain one. Veteran starts with a bot and is genuinely easier. Gambler gets more salvage and a bigger overclock cap but drains faster, which I would not recommend for a first run. Night seven is not just more systems. There is something under the facility, and the last night is a scripted encounter with it. It reaches for specific systems, telegraphed in advance so you can move first, and the drain climbs as the clock runs out. The panel background changes. The music does too. I will not spoil the rest of it. The itch page says this and I will say it here. I used AI assistance for parts of the code, the writing, and some of the visual and audio assets. Additional sound effects were synthesized procedurally in Godot rather than sourced. I would rather put that in the open than have someone find it and feel misled. A night is thirty two seconds. My design notes still say seventy, which is the number I wrote down before a single line of it existed, and what survived contact with actually playing the thing was less than half that. The gap between the number you plan and the number you ship is pretty much the whole story of a jam. The bigger miss is that all the tuning lives in a JSON file, which was the right call, but I did not build a headless balance harness for this one. On World 11 I wrote a simulator that ran hundreds of gauntlets and reported the actual win rate, and it saved me hours of guessing. Here I tuned by playing, which is a problem, because by the end of a jam you are far too good at your own game to judge it. Somebody opening that panel for the first time is having an experience I did not measure. I would like to know how different it is, and right now I genuinely do not. 0 Seconds Left is free, runs in the browser, and takes under ten minutes to see all seven nights. There is no download and no signup. You can play it at kgabeci.itch.io/0-seconds-left. If you get to the Guest, I would genuinely like to hear how it went.

Frequently asked questions

What is 0 Seconds Left?

It is a free browser game about holding a wall of failing reactor systems above zero until an evacuation clock reaches zero first. It was built in Godot 4 for the GMTK Game Jam 2026, whose theme was Count Down. You can play it at kgabeci.itch.io/0-seconds-left.

How long does a run take?

It is short. Each night runs thirty two seconds, there are seven of them, and you spend a little time between nights picking an upgrade, so a full winning run lands somewhere under ten minutes.

What engine is 0 Seconds Left built in?

Godot 4.6.3 with GDScript, exported to HTML5 so it runs in the browser with no download.

Is it free?

Yes. It runs in your browser at no cost and there is nothing to buy inside it.
How I Built 0 Seconds Left, A GMTK Jam Devlog | Kevin Gabeci