Why bevy?
tech choices are fun
Godot is pretty good actually
Nincompoops was a game I started a while ago, just for fun really, it’s my hobby to do some arm chair game design and sometimes prototype it into something for the kids to play.
I built it originally in Godot, mostly with claude code (opus 4.x era). I like Godot, and am a fan of what they have done for gamedev generally. I found the experience pretty compelling. My workflow back then was to plan out the design doc with claude and then execute chunks of it, clearing context regularly, and then play testing it myself.
But I found the friction of ai coding and regressions in playtesting a bit of a pain. I knew from my use with fullstack work that building out testing was a reasonable strategy for mitigating regressions, but I also knew from my fullstack work that automated testing with ai of UI and UX is pretty painful.
I didn’t have much luck getting claude to author useful geometry itself, so it was hard to describe at various levels of detail what was desired for testing the game.
For example if I wanted to test that a bridge builder still turned around when hitting a wall, I need to place a builder trigger close enough to a wall for it to hit it mid build. This seemingly simple spatial reasoning was too hard for claude, even when given guidance on how to math it out with all the parameters for terrain and builder properties.
In a fit of experimental zeal I decided to try and get claude to help me build a Godot user testing harness where I would author the level/scenario in the Godot editor and then serialize it out for claude to be able to run autonomously as part of a regression check when it made changes. This seemed to give me the benefit of visually authoring tests, but allowing claude to use those tests too.
Well, it worked ok, but honestly it became such a chore, and when faced with having to manually author many many test variations for all the roles, it just became a tax on creativity, because any whimsical behaviour change I wanted to try would cost significant re-authoring of the tests - and even given the authored tests, claude just wasn’t really spatially capable enough to maintain them.
So I shelved the project for several months..
Bevy from the top rope!
Ok so the more recent Opus/Fable/Sol era really started showing results for oneshot gamedev. And I’ve been using the models heavily for opair.ai development, including using the models with Opair to develop little toy projects as a form of testing.
A significant change in my usage was shifting almost entirely to agentic programming, I just don’t write code by hand anymore, I don’t really need to.
This gave me a new perspective on editor first game engines vs code first game engines. Godot and Unity and Unreal are great and you can do cool things, but the user facing editor brings with it a bit of cruft that frankly I don’t think I want anymore.
I know from my ai coding work that verification is king, static analysis is king, tight feedback loops are king. Agents are capable enough now that if you can define your goal accurately and provide a mechanism for measuring success, then you will likely get pretty close to your goal. I don’t really need oneshot, that’s just gimmicky, but something that autonomously converges is golden.
So why bevy?
- well it’s rust which heavily favors compile time correctness checks, this can be painful for hand coding quick prototypes, but for agentic coding it’s a very nice tight feedback loop.
- its open source, so if there is something under the hood I need to know or even change, I can, and that’s nice for agentic coding because reading the engine source code as part of developing the gameplay code is cheap for agents (they are fast readers).
- it has no editor cruft, it is code first which keeps it simpler and that makes the cli execution just simpler to fit harnesses and tools and other bespoke things I need during development.
- again the rust consideration but for performance and optimization, it offers a reasonably high performance ceiling if I want it.
I’ve been able to port my nincompoops game in a pretty short amount of time honestly, and while I don’t claim it to be bug free and it’s certainly not finished, I do feel very comfortable that I can continue to improve it with agentic coding. Which makes it fun to work on, which honestly is the whole point of this for me.
I put together a public repo for the bevy harness approach I’m using for agentic coding; bevyraige - this isn’t aiming to be a 100K star project or anything, just a place I will add improvements as I go and be a good starting place for my future projects. You don’t need to fork it or sub-repo it or package it or anything fancy, its not a skill either really - I just point my agent at it as guidance when building out a new project so the agent can copy any snippets and go from there.
Others reading
·
you are
Worth the read?
Leave something by the fire.
An offering buys nothing. It won't hurry a game along or put a feature in one. It's fuel, and the fire burns because people feed it.