Case study
Orbit
A one-thumb browser game: fly a little rocket from world to world through the real solar system, then out to the real nearest stars.
- Role
- Solo creator — designed and directed, built with AI coding agents
- Domain
- Game / interactive
- Status
- Playable build
Orbit
Problem
I wanted a phone game you could play with one thumb that still felt like real space: real planets where they actually are, real moons and rings, and beyond Pluto the real nearest stars. The hard part wasn’t drawing it. It was telling whether the game was fair, since a thumb is slower than the frame where you decide to let go.
What I built
- The game. Hold to dive toward a planet, let go to drift out, and tap to launch at the next world once you’re lined up. Clear all nine worlds and Beyond Pluto opens: the Kuiper Belt, the Oort Cloud, and real nearby star systems. A daily course, the same for everyone, ends with a card you can share.
- A deterministic simulation. A fixed-step physics sim with its own math, so a run replays bit for bit. That makes every crash reproducible and every tuning change testable.
- A bot “referee.” Bots at five skill levels play the course and report clear rates and how late you can let go on each world before a dive kills you. Adding a human-sized thumb delay to the bots showed most worlds from Earth on left less room than a thumb’s own wobble, which is what set the difficulty tuning.
- Rendering and sound. Every world is drawn with its own WebGL shader (Jupiter’s bands and Red Spot, Saturn’s rings, Pluto’s heart). The music runs on a beat clock and sound effects snap to it. Frame time is measured on a slowed CPU to check it stays smooth on a mid-range phone.
- Automated capture. Headless Playwright sessions record phone-sized screenshots and short films of key moments to review between builds.
Impact
A complete, playable build: the full solar system, Beyond Pluto, the daily course, and unlockable rocket skins. It started as a single-file prototype that went through 31 versions before the rebuild. The rebuild is where I learned to direct AI agents at scale: write the design doc first, keep a log of every decision made without me, and measure “feel” with numbers instead of arguing about it.
Stack
- TypeScript
- PixiJS (WebGL)
- Vite
- Playwright