Intent beats syntax
The most valuable input was a clear description of the desired feel or behavior — the agent handled the how.
Cosmic Quarry is a fast, arcade space-mining game — drill asteroids, dodge alien raiders, and dive deeper for richer ore. What makes it unusual isn’t just the gameplay: nearly every design decision and line of code was shaped in partnership with an LLM-powered coding agent.
A pick-up-and-play arcade loop with just enough depth to keep you diving.
Pilot a mining ship through an asteroid belt, break rocks for ore, and manage your hull against alien attackers. Fill your cargo and choose: cash in safely, or dive to the next depth for richer ore and tougher foes — with your health carrying over. Four distinct alien types, power-ups, a combo multiplier, upgrades, daily challenges and leaderboards round out the loop.
A lean, native Windows stack chosen for performance, Store packaging, and low overhead.
The game itself is a single MonoGame project targeting .NET 9 on Windows, packaged as an MSIXVC with the Microsoft GDK for Store distribution. Telemetry flows to Application Insights, rewarded ads are served through the Vungle SDK (hosted in a WebView2 surface), and everything builds and ships through Azure DevOps pipelines. Store listing and add-on management are automated with Playwright scripts against Partner Center.
Not autocomplete — a genuine pair-programmer for decisions and implementation.
Cosmic Quarry was developed hand-in-hand with GitHub Copilot CLI, an agentic terminal assistant driving frontier models — primarily Anthropic’s Claude (Opus and Sonnet) and OpenAI’s GPT models. Rather than generating isolated snippets, the agent read the whole codebase, proposed approaches, wrote the changes, built and validated them, and opened pull requests — iterating on real feedback from playtests.
“The steering feels too sharp” became a tuning conversation. “The aliens fly onto my ship and shoot point-blank” became an orbiting-AI redesign. Plain-language intent went in; shipped, tested features came out.
— How most features in Cosmic Quarry were specifiedShould low-health recovery cost ore or a rewarded ad? Should the tutorial be a passive slideshow or interactive? The agent laid out options with pros and cons, recommended one, and asked clarifying questions before writing a line of code.
When asteroids “appeared out of thin air,” the agent traced it to a spawn radius smaller than the screen’s half-diagonal and fixed the math — rather than papering over it. A tutorial crash was tracked to a font that lacked em-dash glyphs.
The agent retained project conventions — branch naming, the Azure DevOps PR flow, UI font rules, telemetry patterns — and applied them consistently across sessions.
Real gameplay and platform work, specified in conversation and implemented by the agent.
A tap of the arrow keys keeps a tight turn radius; holding past half a second ramps the turn rate for quick reversals. Red “Marauder” aliens were rebuilt to circle the player at a preferred range instead of colliding and firing point-blank — giving players room to dodge and counter-attack.
Running low on hull? The pause menu offers a rewarded ad (or an ore trade) to restore health — with the game correctly frozen while the ad plays. Asteroids now spawn beyond the visible viewport and drift into view, so the belt always feels continuous as you descend.
First-time players fly an interactive tutorial — a short course with turns and obstacles — then meet the asteroid belt and alien roster before the game begins. It’s skippable, replayable from the menu, and fully instrumented with Application Insights events so drop-off and completion can be measured.
How a plain-language request became a shipped, Store-ready update.
A one-line request in the terminal — “make the aliens circle the ship” — plus any clarifying answers.
The agent reads the relevant code, identifies the root cause or best insertion point, and proposes an approach.
Changes land on a dedicated feature branch, following the project’s naming and code conventions.
A clean dotnet build confirms zero new errors before anything is committed.
The change is pushed and a PR is raised on Azure DevOps for review, playtest, and merge.
Playtest notes feed the next round of tuning — steering feel, orbit range, spacing — until it’s right.
A look at the finished game running on Windows.
Lessons from shipping a real Store game with an AI coding agent.
The most valuable input was a clear description of the desired feel or behavior — the agent handled the how.
Playtesting, taste, and product judgment stayed human. The agent accelerated everything in between.
With the whole codebase in view, the agent traced problems to their source and fixed the underlying cause — not just the visible symptom.