awesome-gamedev-agent-skills
77 game-dev skills for your AI coding agent — install once, and a router loads the
right skill for whatever you're building.

Agent Skills are small capability files an AI agent loads only when it
needs them. This repo gives your agent 77 game-dev skills and a router that picks the
right ones for you. You describe what you're building; the agent loads the matching engine and
task skills before it writes code.
- Cross-engine. Godot, Unity, Unreal, Ebitengine, Phaser, PixiJS, three.js, Bevy, pygame, LÖVE, Defold, Roblox.
- You don't pick skills. The router detects your engine and task and loads only what fits.
- Art direction, not one-off generations. The asset workflow locks a visual target, builds
families, normalizes outputs deterministically, and checks them inside the game.
- Built to trust. Every skill is written from primary docs, version-pinned to a stated
engine release, and checked by a validator. Current baselines and
upgrade policy live in version support.
Contents
- Quick start
- What you can ask
- How the router picks skills
- Catalog
- Agent compatibility
- Contributing
Quick start
One command, any agent. The skills CLI detects the
coding agent you already use and installs the router plus all 77 skills into the right place:
npx skills add gamedev-skills/awesome-gamedev-agent-skills
Add --list to preview first, -g to install for every project, or -a <agent> to target a
specific tool (-a cursor, -a claude-code, -a gemini-cli, …). The CLI needs Node.js 22.20 or
later. The same SKILL.md files load
natively in Claude Code, Cursor, Windsurf, Cline, Codex, Gemini CLI, GitHub Copilot, Kiro, and
dozens more — there's nothing to convert.
Claude Code plugin (alternative). This repo is also a Claude Code plugin marketplace, so you
can install it with Claude's own commands:
claude plugin marketplace add gamedev-skills/awesome-gamedev-agent-skills
claude plugin install gamedev@awesome-gamedev-agent-skills
Building in only one engine? Install a smaller bundle — router plus your engine:
claude plugin install router@awesome-gamedev-agent-skills
claude plugin install godot@awesome-gamedev-agent-skills # or: unity · unreal · ebitengine · web-engines · other-engines
Prefer to copy the files by hand, or want the exact per-tool paths? See
docs/INSTALLATION.md.
Want to read the catalog as web pages instead? Every skill, engine group, and per-agent install
path is browsable at
gamedev-skills.github.io/awesome-gamedev-agent-skills,
generated straight from the SKILL.md files in this repo.
Then just talk to your agent — see below.
What you can ask
Describe the task in plain language. The router figures out the skills:
| You say | Skills it loads for you |
|---|
| "add a double jump to my Godot player" | godot-2d-movement + platformer |
| "make an inventory for my Unity RPG" | unity-scriptableobjects + rpg + save-systems |
| "build a 2D puzzle in Go with Ebitengine" | ebitengine-game + puzzle |
| "add player movement to my Defold game" | defold-core + input-systems |
| "procedural dungeon roguelike in Godot" | godot-tilemap + procedural-gen + roguelike |
| "make a cohesive pixel-art player, enemies, and tiles" | create-game-assets + the detected engine importer |
| "how should I design save slots?" | save-systems |
| "publish my game on itch with butler" | itch-publish |
You never type the skill names on the right. That's the router's job.
How the router picks skills
You never name a skill. On each request the router does three things:
- Detects your engine from project files — a
project.godot means Godot, a *.uproject
means Unreal, and so on. If it can't tell, it just asks.
- Reads your request for the task — a concept (AI, shaders, saving), a genre (platformer,
roguelike), or a shipping step (game jam, Steam).
- Loads only the matching skills, in order: engine basics first, then the concept, then any
genre glue. It re-routes if you switch to something new.
That's why "add a double jump to my Godot player" loads godot-2d-movement + platformer and
nothing else.
The exact detection signals and routing table
The full algorithm — every engine fingerprint, the task-to-skill table, and how engine,
discipline, genre, and workflow skills compose — lives in the router skill itself:
router/SKILL.md. In short: engine selection is exclusive (exactly one
engine), while disciplines, genres, and workflows are additive on top.
Catalog
77 skills across 9 categories — each links to its SKILL.md below.
Engines
| Skill | Scope |
|---|
godot-gdscript | GDScript language: typing, lifecycle, @export, signals, idioms |
godot-nodes-scenes | Scene tree, node composition, instancing, autoloads, PackedScene |
godot-signals-groups | Event-driven design with signals + groups |
godot-2d-movement | CharacterBody2D kinematic movement, move_and_slide, slopes |
godot-tilemap | TileMapLayer/TileSet: autotiling, terrain, collision/nav layers |
godot-physics | Rigid/Area/Static bodies (2D+3D), collision layers, raycasts |
godot-ui-control | Control nodes: anchors, containers, themes, focus nav |
godot-animation | AnimationPlayer, AnimationTree, Tween |
godot-shaders | Godot shading language: 2D canvas_item + 3D spatial shaders |
godot-3d-essentials | 3D nodes, cameras, lighting, environment/post, GridMap |
godot-resources | Custom Resource classes, .tres, data-driven design |
godot-audio | AudioStreamPlayer, buses, effects, sync-to-beat |
godot-multiplayer | High-level multiplayer: MultiplayerAPI, RPCs, spawner/sync |
godot-export | Export presets/templates, platform builds, headless CLI export |
godot-csharp | C#/.NET in Godot: bindings, signals as events, GDScript interop |
godot-gdscript-headless-testing | Run GDScript tests via godot --headless, exit codes for CI |
Unity — 8 (skills/unity/) · Unity 6.3 LTS (6000.3)
| Skill | Scope |
|---|
unity-csharp-scripting | MonoBehaviour lifecycle, component model, coroutines, serialization |
unity-input-system | New Input System: actions, bindings, action maps, devices |
unity-physics | Rigidbody, colliders, layers, joints |
unity-animation | Animator Controllers, state machines, blend trees, humanoid IK |
unity-scriptableobjects | Data architecture with ScriptableObject |
unity-tilemap-2d | 2D Tilemap/Tile Palette, rule tiles, tilemap colliders |
unity-navmesh | AI navigation: NavMesh bake, NavMeshAgent |
unity-build-pipeline | Build/player/quality settings, code stripping, Addressables |
Unreal — 6 (skills/unreal/) · Unreal Engine 5.8
| Skill | Scope |
|---|
unreal-blueprints | Blueprint visual scripting: classes, graphs, comms, common nodes |
unreal-cpp-gameplay | C++ gameplay + Gameplay Framework (GameMode, Pawn, Controller) |
unreal-enhanced-input | Enhanced Input: Input Actions, Mapping Contexts, Modifiers, Triggers |
unreal-behavior-trees | AI Behavior Trees + Blackboard, tasks/decorators/services |
unreal-niagara | Niagara VFX: systems, emitters, modules, parameters |
unreal-packaging | Packaging/cooking projects, build configs, shipping builds |
Ebitengine — 1 (skills/ebitengine/) · Ebitengine v2.10.5 · Go 1.25+
| Skill | Scope |
|---|
ebitengine-game | Playable Go 2D games: update/draw contracts, input, rendering, text, audio, gameplay tests, optional starter and platform builds |
Web engines — 6 (skills/web-engines/) · Phaser 4.2 · PixiJS 8.22 · three.js r186
| Skill | Scope |
|---|
phaser-core | Phaser 4.2 game config, Scene lifecycle, loader, cameras |
phaser-arcade-physics | Arcade Physics: bodies, velocity, colliders/overlap, groups |
pixijs-rendering | PixiJS v8 scene graph: Application, Container, Sprite, events |
threejs-scene-setup | Three.js scene/camera/renderer/animation-loop, resizing, controls |
threejs-gltf-loading | Loading glTF/GLB + skinned animation (GLTFLoader/AnimationMixer) |
threejs-materials-lighting | Materials (PBR), lights, shadows, environment maps |
Other engines — 12 (skills/other-engines/) · Bevy · pygame · LÖVE · Defold · Roblox
| Skill | Scope |
|---|
bevy-ecs | Bevy app + ECS: components, systems, queries, resources, plugins (Bevy 0.20) |
pygame-core | pygame loop, Surface/Rect, sprites/groups, events (pygame-ce 2.5.8) |
love2d-core | LÖVE load/update/draw loop, dt-driven motion, input, states (LÖVE 11.5) |