Squares
A hundred taps against your own best time.
Nine squares. One of them is lit. Tap it, a hundred times, faster than the ghost of the last person who tried.
Built and submitted, working through store review. It is finished and submitted. The fastest way to play it today is the playtest programme.
Get the build- Genre
- Reflex / Asynchronous PvP
- Built with
- Godot 4.7
- Orientation
- Portrait
- Price
- Free, ad supported

What it is
About Squares
The entire game is one rule: tap the lit square, one hundred times, as fast as you can. Then it races you against a recorded run from another player - not live, just their exact timings played back beside yours, so the two of you never have to be online at the same moment.
It is a pilot. The point was to find out how small a competitive loop can be and still be worth opening twice a day. No binary assets: every sound is synthesised at boot and every graphic is drawn in code, so the whole game is the source tree.
Design notes
Why it works the way it does
One rule
Tap the lit square, one hundred times. There is nothing else to learn and about a hundred milliseconds of headroom to find.
Race a recording
Your opponent is a real run someone really had, played back at the timings they really hit. Asynchronous, so it always finds you a match.
Built for the pocket
A run is under a minute. It is designed to be opened while a kettle boils.
Nothing but source
No images, no audio files. Sounds are synthesised at boot, graphics are drawn at runtime.
Screens
From the running build
Every shot is captured from the real game. Nothing here is a mock-up.
Questions
Things people ask
Is this a full game?
It is a deliberately small one - a pilot to see how little a competitive loop needs. That is the design, not a shortcut.
Do I need an account?
No. Ghost runs are anonymous timing data with no identity attached.
Can the timings be faked?
Runs are validated against a plausible input rate before they are ever handed to another player as a ghost.
Paperwork
Squares policies
Every game has its own privacy policy and its own terms, written from what that specific build actually does rather than a single studio-wide document that has to cover everything.
- Data collected: advertising identifiers, anonymous usage events, crash diagnostics — never a name, an email address or a contact list
- Account required: No — there is no login and no profile
- Ads: Yes, from Google AdMob, with a consent prompt where the law requires one
- In-app purchases: Optional, one-off, never required to finish anything
Elsewhere


