HomeGamesUpdatesPricingMethodology
Steam News1 June 20261mo ago

Devlog: The MCP Server I Added and Subsequently Removed

For about two days in May, Droning On could be played without anyone actually playing it. I'd wired up a way for an external AI agent to read a level and drive Gizmo through it.

In this update4

Full notes

Full Droning On update

Read the full published notes in a cleaner layout. The original post stays linked below.

What changed

0 fixes1 addition3 changes1 removal
  • Server
  • Balance
  • Gameplay
  • UI and audio
changedWhat I Actually BuiltThe feature was a bridge (technically, a Model Context Protocol server) that exposed Gizmo's command surface – [c]move()[/c], [c]turn()[/c], [c]scan()[/c], all of it – along with the current level and your code, to an outside AI assistant. The idea was a big-brother figure: something to look over your shoulder, explain why a script wasn't behaving, and point you in the right direction when you hit a wall.
changedWhat I Actually BuiltIt worked... a little too well. In fact, with a capable model, it was capable of fully solving the entire game. Out of sheer curiosity, I asked an AI agent to completely solve the hardest (subjectively) level in the game, and it did so at breakneck speeds with incredible accuracy.
addedWhat Came Of ItWiring the game up to an outside caller forced me to look hard at exactly what the game exposes and ask myself what can be accessed externally. It also forced me to look at alternatives to give positive support for new programmers without being game-breaking.
changedWhat Came Of ItWhat I landed on: a tiered 1/2/3 hint system, available only in the bootcamp – the part of the game geared toward learning, where you pick up the language one concept at a time rather than racing for a ranked time. Each hint breaks into three parts: direction, surface, and solution. It scratches the same itch the assistant was meant to, but because it lives in the teaching mode and nowhere else, even the last hint is just an answer where you're meant to be learning, not a shortcut past the parts that count.
removedWhat Came Of ItThe other thing it shook loose was less glamorous. The audit turned up a fair few things that were public with no business being public, so the same pass that removed the MCP bridge also tightened the API. Data classes that should've been internal got locked down, and the surface a script can touch is now smaller and more deliberate than it was. The detour wasn't a waste; it left the scripting layer cleaner on the way out.

Droning On changes

changedThe feature was a bridge (technically, a Model Context Protocol server) that exposed Gizmo's command surface – [c]move()[/c], [c]turn()[/c], [c]scan()[/c], all of it – along with the current level and your code, to an outside AI assistant. The idea was a big-brother figure: something to look over your shoulder, explain why a script wasn't behaving, and point you in the right direction when you hit a wall.
changedIt worked... a little too well. In fact, with a capable model, it was capable of fully solving the entire game. Out of sheer curiosity, I asked an AI agent to completely solve the hardest (subjectively) level in the game, and it did so at breakneck speeds with incredible accuracy.
addedWiring the game up to an outside caller forced me to look hard at exactly what the game exposes and ask myself what can be accessed externally. It also forced me to look at alternatives to give positive support for new programmers without being game-breaking.
changedWhat I landed on: a tiered 1/2/3 hint system, available only in the bootcamp – the part of the game geared toward learning, where you pick up the language one concept at a time rather than racing for a ranked time. Each hint breaks into three parts: direction, surface, and solution. It scratches the same itch the assistant was meant to, but because it lives in the teaching mode and nowhere else, even the last hint is just an answer where you're meant to be learning, not a shortcut past the parts that count.
removedThe other thing it shook loose was less glamorous. The audit turned up a fair few things that were public with no business being public, so the same pass that removed the MCP bridge also tightened the API. Data classes that should've been internal got locked down, and the surface a script can touch is now smaller and more deliberate than it was. The detour wasn't a waste; it left the scripting layer cleaner on the way out.

For about two days in May, Droning On could be played without anyone actually playing it. I'd wired up a way for an external AI agent to read a level and drive Gizmo through it. No human, no typing, just a model calling the same functions you would. It worked... too well... then I deleted it.

So before anyone panics, that capability is not in the game and isn't coming back. The short detour was interesting enough, and the impacts to the codebase were for the better, so I figured it was worth writing up.

What I Actually Built

The feature was a bridge (technically, a Model Context Protocol server) that exposed Gizmo's command surface – [c]move()[/c], [c]turn()[/c], [c]scan()[/c], all of it – along with the current level and your code, to an outside AI assistant. The idea was a big-brother figure: something to look over your shoulder, explain why a script wasn't behaving, and point you in the right direction when you hit a wall.

It worked... a little too well. In fact, with a capable model, it was capable of fully solving the entire game. Out of sheer curiosity, I asked an AI agent to completely solve the hardest (subjectively) level in the game, and it did so at breakneck speeds with incredible accuracy.

That is when I stopped and realized we had a problem.

Why I Pulled It

The intent was good. Learning to code is brutal when you're stuck and have nobody to ask, and a patient assistant who reviews your work and helps when you are stuck is a genuinely nice thing to have. I still believe that.

But it ran counter to the entire premise of the game. Droning On, from day one, was built on the idea that you can write real Python code to solve gamified problems. The threading work, the deterministic clock, and the leaderboards all exist to make your solution feel honest and measurable. The moment a helper is one click away, the math changes. Why wrestle with the problem when you can ask? Why grind a script down to the fastest possible run when something will hand you a clean one? Even when it was only meant to hint and support, it made the hard parts optional.

What Came Of It

Wiring the game up to an outside caller forced me to look hard at exactly what the game exposes and ask myself what can be accessed externally. It also forced me to look at alternatives to give positive support for new programmers without being game-breaking.

What I landed on

a tiered 1/2/3 hint system, available only in the bootcamp – the part of the game geared toward learning, where you pick up the language one concept at a time rather than racing for a ranked time.

Each hint breaks into three parts

direction, surface, and solution. It scratches the same itch the assistant was meant to, but because it lives in the teaching mode and nowhere else, even the last hint is just an answer where you're meant to be learning, not a shortcut past the parts that count.

The other thing it shook loose was less glamorous. The audit turned up a fair few things that were public with no business being public, so the same pass that removed the MCP bridge also tightened the API. Data classes that should've been internal got locked down, and the surface a script can touch is now smaller and more deliberate than it was. The detour wasn't a waste; it left the scripting layer cleaner on the way out.

Why It Matters

Gizmo stays manual and does what your code says, and your code is something you wrote. That's the whole pitch, and I'd rather defend it than dilute it, regardless of the potential benefits a feature might bring.

Thanks for reading. As always, your feedback is welcome. If you haven't already, drop a wishlist and come hang out in the Discord. It's the best place to share feedback, follow development, and engage.

Source

Steam News / 1 June 2026

Open original post

Changelog.gg summarizes and formats this update. How we read updates.