← All games

Borrowed Seconds

A deterministic puzzle game where you freeze obstacles by borrowing time from your future self, across 30 single-screen levels that an exhaustive solver proves solvable.

The player's debt comes due on a gold dial and they freeze into crystal while a slider approaches.
Paying the debt on a gold dial, exactly on time. From the Borrowed Seconds README.

Freeze any moving obstacle for three seconds. The catch is that the time is borrowed. A few seconds later the debt comes due and you freeze for three seconds, wherever you happen to be standing.

While you’re frozen, nothing can hurt you. Sliders, laser beams, and rotor arms pass straight through. But if you thaw inside a hazard, you default, and time rewinds. The best solutions turn the debt into the plan: you pay it back standing on a gold dial, or exactly as a laser sweeps over you.

One verb, two sides

Borrowing turns a sliding block, a laser, or a rotor arm into crystal for three seconds, and a frozen obstacle is a wall. Repaying freezes you, and a frozen player is untouchable. Both halves are useful.

The game is honest about the future. Aim at something and red ghosts show where every hazard will be at the moment you’d thaw, along with a safe or lethal ring under your feet. They’re calculated by running the real simulation forward, so they’re never wrong. Hold Focus to slow time to a crawl while you line up a shot, or hold rewind to scrub back through everything that happened.

Plates hold a gate open while anything rests on them, including a block you froze there. Gold dials latch after three seconds of continuous weight from you, frozen or not, or from a frozen block. In later chapters, crystal pushes back: a frozen block pens another slider in, rotor arms swing back off crystal, and a gate you shut blocks light.

Thirty levels, proven

The six chapters have names borrowed from finance: Principal, Interest, Momentum, Compound, Leverage, and Escrow. Every level is solvable, and that’s been proven. For thirteen of them, the solver also proves you need the debt: even with unlimited, debt-free borrowing they can’t be solved, so your own freeze has to be part of the answer. Every level keeps a timing margin of at least ±150 ms around its intended solution. Par times are the solver’s optimal time, which sets the medals.

More screenshots

What it’s built with

The rules are pure C# with no Unity dependency. Simulation.Step advances exactly one 20 Hz tick using only integers, with no allocation and no unordered iteration. The game, the ghost previews, a .NET 8 console solver, and the unit tests all compile the same files, and the tests check that .NET and Unity’s Mono runtime agree tick for tick.

The solver is a breadth-first search over packed 256-bit states at the player’s decision points, with a compact hash table to save memory. It finds the optimal par, then searches again under relaxed rules to prove a level can’t be solved without borrowing, or with the debt forgiven. The hardest level searches up to 150 million states. Rewind is cheap by comparison: every tick’s state is kept in a pooled history, so rewinding just scrubs backwards through it.

Unity 6 and URP draw the board, with every UI panel rendered by one procedural shader: a chamfered brass rim, enamel gradient, glow, and a clock-hand reveal.

How it was made

Borrowed Seconds was one of eight games built in parallel from short designer briefs, each by its own AI coding-agent session on one shared machine. The brief asked for twenty single-screen levels, one borrowing ability, and three obstacle types, and required a fully deterministic simulation and a solver that proves both solvability and that the “debt as a tool” trick is needed where it’s designed to be. The session delivered thirty levels. Its commit history spans about nine and a half hours on October 4, 2026.

There are no stock assets. Every model is generated by Blender scripts, and every sound effect and the four 16-bar music loops are synthesized with NumPy, with reverb tails wrapped so the loops are seamless. The trailer is a shot list played by the release build using solver replays, captured frame-locked at 60 fps, with the soundtrack rebuilt offline from the game’s audio event log.

Play it

Version 0.1.0 is complete and playable from start to finish, and the release build autoplays all 30 levels from the solver’s replays without a failure. Download it from GitHub releases. It hasn’t been playtested by people yet, so some levels may be harder than they look. Chapters VII–XII are planned but not designed.

Browse the source on GitHub. GitHub records the repository’s creation on October 4, 2026.

See it in action

Borrowed Seconds feature trailer

The 1:36 feature trailer covering every mechanic, obstacle, and device, with the game's procedural music and sound effects and on-screen captions; there is no narration. Recorded frame by frame from the release build playing solver replays. Re-encoded here at 540p and 30 fps from the 60 fps original. Full-resolution original on GitHub

Keyboard shortcuts

Shortcuts stay out of text fields. Extra shortcuts are off until you enable them on this device. Ctrl or Command K is always available.

?
Open this help
Ctrl / ⌘ K
Open site search
Alt A
Browse articles
Alt R
Open your reading list
Alt T
Browse topics
Escape
Close dialogs or leave article focus mode