Game dev agent skills: 148 sorted by engine, and a pygame skill tested on 36 games
We sorted the 77 skills in awesome-gamedev-agent-skills and the 71 game skills in our catalog by engine and source, then tested the pygame-core skill on six small games written by Claude Code on Haiku. All 36 games ran with and without it. The skill made every continuous-motion game frame-rate independent, against 6 of 15 without it, and cost 41% more.
Summary
If you build games with Claude Code, use a game dev skill for the habits that keep a game correct as it grows, not to make the first version run. A small game runs without one; the skill makes it run the same on every machine.
The reason is simple: we tested it. We had Claude Code on Haiku write six small pygame games, Pong to a top-down shooter, three times each with and without the pygame-core skill, and ran all 36 headless with scripted key presses:
- Every game ran either way. All 36 played 300 frames without an error, drew a picture, and kept moving.
- The skill fixed timing. In the five games with continuous motion, all 15 skill games scaled movement by the time between frames. Without the skill, 6 of 15 did; every plain Pong and platformer moved a fixed distance per frame, so it slows down when the machine is busy and speeds up on a 144 Hz screen.
- It added a safety clamp. All 18 skill games capped the frame time, which stops objects tunneling through walls after a stall. 6 of 18 plain games did.
- It cost more. 41% more over the 36 runs, from longer answers.
We also sorted the skills themselves. The most-searched collection, awesome-gamedev-agent-skills, has 77 skills: Godot leads with 16, and 28 apply to any engine. In our own catalog, the only skills from engine makers are Epic Games’ three for Unreal and melonJS’s twenty for its own engine.
Our picks
- For a first prototype, skip the skill. A one-screen game runs without one. Say the controls and the rules in the prompt, and ask for shapes only so there are no missing image files.
- Add an engine skill before the game grows. Frame-rate independence and a frame-time clamp are cheap to write at the start and painful to retrofit. The skill wrote them every time.
- Prefer the engine maker’s skill when there is one. Epic Games’ Unreal skills drive a live editor through its unreal-mcp server; melonJS’s own skills target melonJS 20. For Godot and Unity there is no official skill in our catalog, so the community ones are what you have.
- Use the engine-agnostic skills for design, not code. The collection’s 15 discipline skills, such as level design, save systems and game feel, and 9 genre skills, such as roguelike and tower defense, give structure that any engine skill can then implement.
- Check what a big repo actually contains. Claude-Code-Game-Studios, the fastest-rising game repo in our catalog, is mostly production workflow: the seven of its skills we list cover concept briefs, asset audits, balance checks and a launch-day patch plan, and none of them writes gameplay code.
What are you making: a weekend game jam entry, or something you will keep adding to for months? Only the second needs the skill from day one.
How we tested
- The collection. All 78 SKILL.md files in gamedev-skills/awesome-gamedev-agent-skills (Apache-2.0, 7,421 stars), read on November 7, 2026: 77 skills and one router. We noted each skill’s group, whether it ships scripts or references, and whether it mentions MCP.
- Our catalog. Every skill in AgentCraft’s catalog in the game category or naming a game engine: 71 skills in 18 repos, with star counts from our syncs of October 29 and November 6.
- The test. Six games: Pong, Snake, Breakout, a simple Asteroids, a one-screen platformer and an eight-direction shooter. Each three times per arm in a fresh
claude -psession on Claude Code 2.1.314 with--model haikuand no tools; the skill arm had pygame-core in the project and the prompt started with/pygame-core. Every game was one Python file drawn with shapes. - Running it. Each game ran under pygame 2.5.2 with SDL’s dummy video and audio drivers and a harness that held the right and up arrows from frame 40 to 120, pressed space four times, took frames at 30, 110 and 250, and quit at frame 300. We checked the harness on three reference games first: one correct, one that never moves, and one that crashes at frame 55; it scored each correctly.
- Code habits. Plain text checks on each game: movement multiplied by a frame time taken from
clock.tick, amin()clamp on that time, sprite groups, and equal diagonal speed in any of three common forms.
Results
The test, 18 games per arm
| No skill | pygame-core | |
|---|---|---|
| Ran 300 frames without an error | 18 | 18 |
| Drew a picture that kept changing | 18 | 18 |
| Frame-rate independent motion (15 continuous-motion games) | 6 | 15 |
| Frame time clamped | 6 | 18 |
| Sprite groups | 0 | 3 |
| Median length | 166 lines, 6,797 output tokens | 154 lines, 9,121 output tokens |
| Cost, 18 runs | $0.094 | $0.132 |
Frame-rate independent motion by game, of 3
| Pong | Breakout | Asteroids | Platformer | Shooter | |
|---|---|---|---|---|---|
| No skill | 0 | 1 | 3 | 0 | 2 |
| pygame-core | 3 | 3 | 3 | 3 | 3 |
Snake is left out of that table: it moves one cell per tick by design, so a fixed step is correct there. Diagonal speed was handled in every shooter in both arms, with .normalize(), scale_to_length or a 0.7071 factor; our first check only knew the first form and undercounted the plain games, so we widened it before scoring.
awesome-gamedev-agent-skills, 77 skills
| Group | Skills |
|---|---|
| Godot | 16 |
| Unity | 8 |
| Unreal | 6 |
| Web engines (Phaser, PixiJS, three.js) | 6 |
| Roblox | 8 |
| Other engines (Bevy, Defold, LÖVE, pygame, Ebitengine) | 5 |
| Disciplines, any engine | 15 |
| Genres, any engine | 9 |
| Workflows (game jam, prototype, Steam, itch) | 4 |
71 of the 77 come with reference files and 7 with scripts; one mentions MCP. The median SKILL.md is about 8,100 characters, so each one is guidance the agent reads, not a tool it runs.
Our catalog, 71 game skills in 18 repos
| Engine | Skills | Notes |
|---|---|---|
| Any engine | 33 | studio workflows, asset pipelines, novel-to-game |
| melonJS | 20 | all from the melonJS repo, for melonJS 20 |
| Godot | 7 | mostly GodotPrompter, for Godot 4.3+ |
| Unity | 6 | four are Google’s Mobile Ads guides that cover Unity apps |
| Unreal | 3 | Epic Games, through the unreal-mcp server |
| three.js | 2 |
From October 29 to November 6, Claude-Code-Game-Studios gained 6,747 stars to 36,220, up 23%. Epic Games’ Unreal plugin gained 194 to 1,919, up 11%.
What to ignore
- Pass rates on small games. Both arms passed everything. A one-screen game is too easy to separate a skill from no skill on whether it runs.
- Skill counts per engine. Sixteen Godot skills are sixteen pages of guidance. The number says how much was written, not how well it works.
- Sprite groups as a quality signal. Only 3 skill games used them; the shapes-only games did not need them.
Limitations
- pygame only, Haiku only. We could not run Godot, Unity or Unreal headless on this machine, so the engine skills for them were read, not tested.
- The harness checks that a game runs and moves, not that it is fun or that every rule works. A ball moving on its own counts as a changing picture.
- Code habits are text checks. A game that times motion another way could be miscounted, as our first diagonal check was.
- The catalog is ours. It lists repos with 100 or more stars whose skills passed our review; awesome-gamedev-agent-skills is not in it yet.
Reproduce it
The script is gamedev-agent-skills-2026-11.py. With Claude Code logged in and pygame installed, run python3 gamedev-agent-skills-2026-11.py run <folder> <pygame-core SKILL.md>, then score <folder>. The data, gamedev-agent-skills-2026-11.json, has every row of both catalogs and every test game with its result, code habits and cost. More game skills are in our skills directory.
Sources
- gamedev-skills/awesome-gamedev-agent-skills · official
- EpicGames/unreal-engine-skills-for-claude-code-plugin · official
- pygame-ce documentation · official
- AgentCraft: Claude Code skills directory · blog