I think this was the most important insight in the article:
> I experimented with Rust/Bevy and Unity before settling on Godot. Bevy’s animations and visuals weren’t as crisp, and Claude struggled with its coordinate conventions - likely a combination of less training data and Bevy leaving many core features, like physics, to the community. Unity was a constant struggle to keep the MCP bridge between Claude and the editor healthy. It frequently hung, and I never figured out how to get Claude Code to read the scene hierarchy from the editor. Godot’s text-based scene format turned out to be a huge advantage - Claude can read and edit .tscn files directly.
Didn't expect Godot to be the most friendly game engine for LLM usage! I think it's because of various factors - Godot has been used quite a lot in recent years so there are various code examples on the Internet, and its scene file format (.tscn) is very concise enough for LLMs to write and edit directly (Unity has its own YAML-based format but it's very unfriendly for human consumption, and Unreal stores its core assets in binary files)
I've previously struggled getting LLMs to manipulate tscn/tres files since they like to generate non-unique uids. Despite being text files, the godot tscn/tres files are normally meant to be manipulated by the editor and need to define and reference unique ids. The editor always generates completely random alphanumeric strings, but LLMs like to use names or placeholders (e.g. "aaaaa1", "example", or "foobar") for the ids.
The linter in the article that detects duplicate uids is interesting. Obviously the article is about creating a bunch of harnesses for the LLM to be productive. I wonder how many problems can be transformed like this from something LLMs just can't do reliably to something they just need to burn credits for a while on. The LLM probably can't tell if the games are fun, especially with it's rudimentary playtesting, but who knows.
regarding the non-random ids: I had this issue with uuids. Now I have "Never write your own ids. Always use uuidgen to generate real ones" in my AGENTS.md and haven't had this issue for a long time now.
I'm playing around with a tool to generate the IDs for me. I'm honestly not sure if it'll be an improvement since it likely means more tokens/context than just letting it YOLO IDs.
The model makes a huge difference. I tried this about a year ago and Claude occasionally got it right. These days, it seems to get it right on the first try most times and then always self corrects after. Codex 5.2 (I haven't played with 5.3 enough yet) gets it wrong more often than not, and frequently doesn't call the linter; I'm willing to accept that my bloated CLAUDE.md might be a bad fit for Codex and causing this to fail.
I also want to throw MonoGame into the mix here. Since its purely C#, Claude Code works great for it. It does mean you dont have the visual engine tools you get with Godot, but you could even get Claude to build these for your game.
Im personally finding it a lot of fun to work this way.
I read that as MomoGame at first and was very confused.
I'll have to give MonoGame another try. I was a big fan of XNA up until its deprecation. I went all in on OpenTK for a while, and in hindsight MonoGame would've been the better choice.
I made some small tries to vibe code games in Godot, and I was surprised about how far you can go even in 3D. This was just a test of the bad kind of vibe code (you know, not even looking at the code, starting right away, and so on), but I believe that with some good practices there are a lot of things that can be done.
> I experimented with Rust/Bevy and Unity before settling on Godot. Bevy’s animations and visuals weren’t as crisp, and Claude struggled with its coordinate conventions - likely a combination of less training data and Bevy leaving many core features, like physics, to the community. Unity was a constant struggle to keep the MCP bridge between Claude and the editor healthy. It frequently hung, and I never figured out how to get Claude Code to read the scene hierarchy from the editor. Godot’s text-based scene format turned out to be a huge advantage - Claude can read and edit .tscn files directly.
Didn't expect Godot to be the most friendly game engine for LLM usage! I think it's because of various factors - Godot has been used quite a lot in recent years so there are various code examples on the Internet, and its scene file format (.tscn) is very concise enough for LLMs to write and edit directly (Unity has its own YAML-based format but it's very unfriendly for human consumption, and Unreal stores its core assets in binary files)