Projects > Orbit
Orbit: One-tap Android arcade: release, arc, catch. Local and global leaderboards.

Orbit

One-tap Android arcade: release, arc, catch. Local and global leaderboards.

Year
Mar 2026
Platforms
Android
Type
Mobile, Game
Role
Sole developer
Links
GitHub ↗

When I first installed Open Claw, I asked it to come up with a new game and write it from scratch. Less than 10 minutes later, Open Claw sent me an .apk over Telegram, and I installed it on my Android device. Orbit is the game it sent me, although I went back and forth a handful of times with Open Claw to get to this point.

Orbit is a one-tap arcade game for Android. A dot circles a point on the screen; tap once to release it, and gravity from the next circle bends its path into a curved arc. Land the dot in the catch zone to keep going. Each catch that would have hit close to center counts as perfect and raises a score multiplier that keeps climbing. Miss the circle or run out of time and the game ends.

It comes in two versions. The public version keeps a top-10 high-score list (using old-school initials) on the phone itself and needs no internet at all. A private version adds a global leaderboard, sending scores to an online service so players can see where they rank against everyone else. In-game, one tab shows your standing in the local top-10 and another shows your global position. If the global service is unreachable, the game simply carries on without it.

The look is deliberately retro: a black background, neon glow, and old-television scanlines, with a clean vector style throughout. All the sound is generated as the game plays rather than loaded from audio files, with the pitch rising as you chain perfect catches. When left idle, the title screen plays a demo of itself next to the leaderboard.

Features

  • One tap is the whole game; release the dot and gravity bends its arc toward the next catch
  • Score multiplier climbs with every consecutive perfect catch
  • Local top-10 high-score list with arcade-style 3-letter initials, no account or internet needed
  • Global leaderboard shows where you rank against everyone else
  • Two in-game tabs track your local standing and your global position at a glance
  • No connection, no problem: the game plays exactly the same offline
  • Idle title screen plays a demo of itself, classic arcade attract-mode style
  • Sound is generated live as you play, with pitch rising as your perfect streak grows
  • Retro CRT look: scanlines, neon glow, and clean vector shapes on pure black
  • Fits any screen, including foldables, with smooth 60fps play

Under the hood

17Files
3,548Lines of code
32Commits
Mar 2026Dev window
StackKotlin · Jetpack Compose · Android SDK 35 · Cloudflare Workers · HmacSHA256
InfraAndroid device; Cloudflare Worker for global leaderboard endpoint; debug and signed release APKs via Gradle
Notable
  • A single state object owns all physics and game-phase transitions; the renderer reads it without mutating anything, so game logic and drawing can never disagree
  • Sound engine synthesizes percussive clicks and rising-pitch streaks from sine and square waves at runtime, keeping the APK free of audio assets
  • Scores post to a Cloudflare Worker with an HMAC-SHA256 signature over timestamp and body, so casual score forgery is off the table
  • The leaderboard client caches the global top list and your rank bracket, so the HUD renders instantly without a live network call, and every network failure is silent so gameplay never stalls
  • Two-repo split keeps the public build entirely free of network code and the signing key; the private edition is the source of truth for the global leaderboard
  • Local high scores persist in SharedPreferences with no permissions, so the public build touches nothing outside its own sandbox
  • Everything draws on a Jetpack Compose Canvas at 60fps, scaled from screen dimensions so one codebase covers phones and foldables
Demo