A few days ago I was adding a double jump to a Godot 4 project. My AI handed me this:
move_and_slide(velocity, Vector2.UP)
Looks fine. But that's the Godot 3 signature. In Godot 4 you set velocity as a property and call move_and_slide() with no arguments. The code didn't run.
This kept happening. Unity methods that don't exist. Bevy code written against a two-versions-old API. The AI isn't broken, it's just averaging over years of docs and old forum posts and picking the most common-looking code. Game engines move fast. The model doesn't know what version you're on.
The obvious fix doesn't work
I tried pasting a big "here's how Godot works" doc into the chat. It kind of helps. Mostly doesn't. A giant doc is expensive, buries the part you need, and still doesn't tell the agent which 200 words out of 5,000 apply to "add a double jump."
What I actually did
I built awesome-gamedev-agent-skills. It's 66 small focused skills plus a router that picks the right ones for you. Free, open source (Apache 2.0), one install:
npx skills add gamedev-skills/awesome-gamedev-agent-skills
How it works
Each "skill" is a small file with a name and a one-line description. The agent only reads the full body when that skill is actually needed. So you can have all 66 installed and your context stays tiny.
A router sits on top and does three things:
- Figures out your engine from the project files (a
project.godotmeans Godot, a.uprojectmeans Unreal, etc.) - Reads your sentence for what you're trying to do
- Loads only the matching skills
So "add a double jump to my Godot player" loads the Godot movement skill and the platformer skill. Nothing else. "Make an inventory for my Unity RPG" loads the ScriptableObjects skill, the RPG skill, and the save systems skill. Three small files instead of sixty-six.
What it covers
| Category | What's in there |
|---|---|
| Engines (40) | Godot, Unity, Unreal, Phaser, PixiJS, three.js, Bevy, pygame, LOVE, Roblox |
| Disciplines (13) | game AI, procedural gen, save systems, shaders, game-feel, camera, performance |
| Genres (9) | platformer, roguelike, RPG, FPS, tower defense, card game, visual novel, survival, puzzle |
| Workflows (4) | game jam, Steam publish, itch publish, fast prototyping |
The thing that actually matters: version pinning
Every skill says which engine version it targets and sticks to it. Godot 4.x, Unity 6, Unreal 5.4+, PixiJS v8, and so on.
This is boring but it's the whole point. It caught real bugs while I was writing the skills. A Godot ray query that used exclude = [self] when the field wants an array of RIDs. A .NET setup that was right for Godot 4.3 and wrong by 4.5.
Without pinning, you're just trusting the model to guess. With it, the code matches your version.
It works across agents
Since skills are just markdown files, the same set works in Claude Code, Cursor, Codex, Gemini CLI, Kiro, and anything else that reads the format. One install, no lock-in.
Try it
npx skills add gamedev-skills/awesome-gamedev-agent-skills
Point your agent at a real project and give it a game dev request. Watch what the router loads before it writes anything. If it picks the wrong skill or the code is out of date for your engine version, that's exactly the bug report I want.
Repo: github.com/gamedev-skills/awesome-gamedev-agent-skills
It's early and the routing still has gaps on weird project setups. But it already writes a lot less broken engine code than a plain agent, which was the whole point.
Top comments (0)