Workbench case study
Pirate Arcade
A pirate-themed arcade collection and public build journal exploring zero-cost AI-assisted development with local hardware, open source tools, and a playful constraint.
What it is
Pirate Arcade is a small collection of classic arcade games reimagined with a nautical theme. The desktop app is built in Python and Pygame. The public site is an Astro build on Cloudflare Pages that works as both a landing page and a running build journal.
The games are intentionally familiar. A cannonball duel, a treasure-cove brick breaker, a Kraken-haunted asteroids riff, a property-trading port game, and the newest one, Race to Treasure Island, which is the first built browser-native in Phaser rather than Pygame. Familiar mechanics made the project useful as a benchmark for process, on top of being an excuse for more pirate jokes. When the target behavior is easy to reason about, it is easier to judge whether the tooling around it is actually pulling its weight.
Why I built it
I wanted a compact, fun test bed for AI-assisted development that still had to behave like a real project. That meant source control and CI, packaged releases, documentation and screenshots, a public site, and a scope that could survive contact with reality.
The constraint mattered. No paid AI subscriptions, no cloud compute, no SaaS lock-in. Nothing beyond hardware I already owned, free tiers, and my own review. The point was never to prove that a model can write a game. The narrower question is more useful: how much of a complete, inspectable software product can one person ship when the budget is zero and the review bar stays real?
What shipped
- Five games sharing one pirate arcade visual system: four built in Python and Pygame for the desktop, plus the newest, Race to Treasure Island, built browser-native in Phaser.
- A custom launcher with arcade and cabinet-inspired styling.
- GitHub Actions CI and release packaging.
- New web-native build infrastructure so more games can ship to the browser as well as the desktop.
- A public Astro site at pirate-arcade.com, with a hardened build pipeline and live accessibility checks.
- A build log documenting methods, tradeoffs, and findings.
The browser work has matured into reusable web-native build infrastructure. Cannonball Clash, Treasure Cove, and Kraken’s Wake are already playable in the browser, compiled from the existing Python with Pygbag, and Race to Treasure Island was built browser-native in Phaser. The new pipeline makes bringing the rest of the catalog to the web a repeatable step rather than a one-off. The desktop app stays the primary release for the Pygame titles.
Screenshots
The shape of the experiment
The setup was deliberately ordinary, which was the whole point:
- OpenCode for agentic terminal coding.
- Free-to-use models, no paid subscription.
- A local X600 workstation doing the work.
- A Python and Pygame desktop app, rendered procedurally with no external art assets.
- An Astro static site for the public face.
- GitHub for source, CI, and releases.
- Cloudflare Pages for free static hosting.
Everything that touched money or someone else’s servers was either free-tier or off the table. That kept the experiment honest about what is actually reachable from a home desk.
What I learned
- Familiar game mechanics are good scaffolding for evaluating tooling, because you already know what correct looks like.
- AI-assisted coding is strongest when the human keeps the scope narrow, reviews everything, and turns vague output into repeatable build steps.
- The gap between a toy and a real project lives in the unglamorous parts. Packaging, release notes, deployment.
- A playful theme helps keep momentum, but the underlying product habits are still what make something polished enough to hand someone first.
Links
- Play and read the build log: pirate-arcade.com
- Desktop app repo: github.com/edonahue/pirate-arcade
- Website repo: github.com/edonahue/pirate-arcade-web