Day four of the holiday. One bar of signal, and only if you stand on the deck.

Your moves don't happen when you press them. They queue.

Time runs in beats. On a beat where you have signal, the next move in your queue executes. On a dead beat, nothing of yours happens at all — but the gulls patrolling the level keep moving regardless.

So you don't play this in real time. You plan a whole route, commit it, and then watch it stretch out across the gaps in your connection, hoping you counted the dead beats right.

The signal timeline along the top shows you exactly which beats are coming. Nothing is hidden and nothing is random — every failure is a miscalculation you can see afterwards.

Controls

Arrow keys / WASD queue a move · Space queues a deliberate wait
Enter commits the queue · Backspace removes the last move · R resets · N toggles sound

Ten levels, about seven minutes. Progress saves, so you can close the tab.

Built with

Hand-written HTML5 canvas and vanilla JavaScript. No engine, no framework, no dependencies, and no asset files at all — no images, no audio, no fonts. The whole game is about 55 KB.

  • Sound is synthesised at load time by a DSP engine I wrote for a procedural sound-effect tool earlier the same week — oscillators, envelopes, sweeps, filters.
  • The typeface is mine, defined as polylines on a 4×6 grid and stroked at runtime.
  • Everything visual is canvas primitives.

How this was built

AI was used for the code. It was written with AI assistance and then tested by hand alongside a suite of automated harnesses:

  • an exact solver that searches every reachable (position, beat-phase) state to prove each level is actually winnable — it found three unsolvable levels on its first run, one with the exit walled in on all four sides;
  • a difficulty harness that plays each level the way a person does, shortest route first and then inserting pauses — it caught the last two levels being walkovers.
  • a difficulty verifier that rejects any level beatable by the lazy strategy of running the shortest route and restarting a beat later — it caught the finale being easier than the level before it;
  • a completion harness that solves each level and then plays that solution in the real shipped build, start to ending, so anything winnable in the model but not in the actual game gets caught;
  • a resilience harness covering the two ways the Playgama Bridge fails in the wild — blocked outright, and loaded but hung. The second used to leave the player on a black screen;
  • an input fuzzer: 12,000 simulation steps with random keys at random moments, asserting invariants that must never break. It self-tests first, so a green run means something.

There is no generative-AI art or audio in this game, and there couldn't be: the project contains no image or audio files. Every pixel is a canvas call and every sound is computed from oscillators at runtime.

Made for the Playgama AFK Summer Jam — theme "Waiting for Wi-Fi".

Made with my own tools — every sound in this game is synthesised at runtime by the DSP engine from Sound Effect Generator, and I build bitmap font atlases with Bitmap Font Generator. Both are free and run in your browser.

Updated 7 days ago
Published 9 days ago
StatusReleased
PlatformsHTML5
AuthorCompilotherapy
GenrePuzzle, Strategy
Tags2D, Abstract, Difficult, Experimental, Minimalist, Short, Singleplayer, Top-Down
AI DisclosureAI Assisted, Code

Development log

Leave a comment

Log in with itch.io to leave a comment.