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, and a property-trading port game. Familiar mechanics made the project useful as a benchmark for process, not just 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: source control, packaging, CI, releases, documentation, screenshots, a public web presence, and a scope that could survive contact with reality.
The constraint mattered. No paid AI subscriptions, no cloud compute, no SaaS lock-in, and nothing magic beyond locally owned hardware, free tiers, open source tooling, and human review. The point was not to prove that a model can write a game. It was the narrower, more practical question: how much of a complete, inspectable, small software product can one person ship when the budget is zero and the review bar is still real?
What shipped
- Four desktop games sharing one pirate arcade visual system.
- A custom launcher with arcade and cabinet-inspired styling.
- GitHub Actions CI and release packaging.
- A public Astro site at pirate-arcade.com.
- A build log documenting methods, tradeoffs, and findings.
The browser work has started. Cannonball Clash and Treasure Cove are playable in the browser now, compiled from the existing Python with Pygbag. Kraken’s Wake and Port Royale Tycoon remain future porting work, and the desktop app stays the primary release.
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, screenshots, docs, release notes, and 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