{
  "markdown": "<!-- markdownlint-disable MD033 MD041 -->\n\n# awesome-gamedev-agent-skills\n\n<p align=\"center\">\n  <img src=\"docs/assets/banner.png\" width=\"820\"\n       alt=\"awesome-gamedev-agent-skills — game-dev skills for AI coding agents. 67 skills and a router across 10 engines, including an art-direction and asset-production workflow.\">\n</p>\n\n**68 game-dev skills for your AI coding agent — install once, and a router loads the\nright skill for whatever you're building.**\n\n[![License](https://img.shields.io/badge/license-Apache--2.0-blue)](LICENSE)\n[![Skills](https://img.shields.io/badge/skills-68%20%2B%20router-brightgreen)](skills/)\n[![Format](https://img.shields.io/badge/format-Agent%20Skills-informational)](docs/SKILL-FORMAT.md)\n[![Last commit](https://img.shields.io/github/last-commit/gamedev-skills/awesome-gamedev-agent-skills)](https://github.com/gamedev-skills/awesome-gamedev-agent-skills/commits/main)\n\n[Agent Skills](docs/SKILL-FORMAT.md) are small capability files an AI agent loads only when it\nneeds them. This repo gives your agent **68 game-dev skills** and a **router** that picks the\nright ones for you. You describe what you're building; the agent loads the matching engine and\ntask skills before it writes code.\n\n- **Cross-engine.** Godot, Unity, Unreal, Phaser, PixiJS, three.js, Bevy, pygame, LÖVE, Roblox.\n- **You don't pick skills.** The router detects your engine and task and loads only what fits.\n- **Art direction, not one-off generations.** The asset workflow locks a visual target, builds\n  families, normalizes outputs deterministically, and checks them inside the game.\n- **Built to trust.** Every skill is written from primary docs, version-pinned to a stated\n  engine release, and checked by a [validator](scripts/validate-skills.py). Current baselines and\n  upgrade policy live in [version support](docs/VERSION-SUPPORT.md).\n\n## Contents\n\n- [Quick start](#quick-start)\n- [What you can ask](#what-you-can-ask)\n- [How the router picks skills](#how-the-router-picks-skills)\n- [Catalog](#catalog)\n- [Agent compatibility](#agent-compatibility)\n- [Contributing](#contributing)\n\n## Quick start\n\n**One command, any agent.** The [`skills`](https://www.npmjs.com/package/skills) CLI detects the\ncoding agent you already use and installs the router plus all 68 skills into the right place:\n\n```bash\nnpx skills add gamedev-skills/awesome-gamedev-agent-skills\n```\n\nAdd `--list` to preview first, `-g` to install for every project, or `-a <agent>` to target a\nspecific tool (`-a cursor`, `-a claude-code`, `-a gemini-cli`, …). The same `SKILL.md` files load\nnatively in Claude Code, Cursor, Windsurf, Cline, Codex, Gemini CLI, GitHub Copilot, Kiro, and\n[dozens more](docs/COMPATIBILITY.md) — there's nothing to convert.\n\n**Claude Code plugin (alternative).** This repo is also a Claude Code plugin marketplace, so you\ncan install it with Claude's own commands:\n\n```bash\nclaude plugin marketplace add gamedev-skills/awesome-gamedev-agent-skills\nclaude plugin install gamedev@awesome-gamedev-agent-skills\n```\n\nBuilding in only one engine? Install a smaller bundle — `router` plus your engine:\n\n```bash\nclaude plugin install router@awesome-gamedev-agent-skills\nclaude plugin install godot@awesome-gamedev-agent-skills    # or: unity · unreal · web-engines · other-engines\n```\n\nPrefer to copy the files by hand, or want the exact per-tool paths? See\n**[`docs/INSTALLATION.md`](docs/INSTALLATION.md)**.\n\nWant to read the catalog as web pages instead? Every skill, engine group, and per-agent install\npath is browsable at\n**[gamedev-skills.github.io/awesome-gamedev-agent-skills](https://gamedev-skills.github.io/awesome-gamedev-agent-skills/)**,\ngenerated straight from the `SKILL.md` files in this repo.\n\nThen just talk to your agent — see below.\n\n## What you can ask\n\nDescribe the task in plain language. The router figures out the skills:\n\n| You say | Skills it loads for you |\n|---------|-------------------------|\n| \"add a double jump to my Godot player\" | `godot-2d-movement` + `platformer` |\n| \"make an inventory for my Unity RPG\" | `unity-scriptableobjects` + `rpg` + `save-systems` |\n| \"procedural dungeon roguelike in Godot\" | `godot-tilemap` + `procedural-gen` + `roguelike` |\n| \"make a cohesive pixel-art player, enemies, and tiles\" | `create-game-assets` + the detected engine importer |\n| \"how should I design save slots?\" | `save-systems` |\n| \"publish my game on itch with butler\" | `itch-publish` |\n\nYou never type the skill names on the right. That's the router's job.\n\n## How the router picks skills\n\nYou never name a skill. On each request the router does three things:\n\n1. **Detects your engine** from project files — a `project.godot` means Godot, a `*.uproject`\n   means Unreal, and so on. If it can't tell, it just asks.\n2. **Reads your request** for the task — a concept (AI, shaders, saving), a genre (platformer,\n   roguelike), or a shipping step (game jam, Steam).\n3. **Loads only the matching skills**, in order: engine basics first, then the concept, then any\n   genre glue. It re-routes if you switch to something new.\n\nThat's why \"add a double jump to my Godot player\" loads `godot-2d-movement` + `platformer` and\nnothing else.\n\n<details>\n<summary>The exact detection signals and routing table</summary>\n\nThe full algorithm — every engine fingerprint, the task-to-skill table, and how engine,\ndiscipline, genre, and workflow skills compose — lives in the router skill itself:\n[`router/SKILL.md`](router/SKILL.md). In short: engine selection is exclusive (exactly one\nengine), while disciplines, genres, and workflows are additive on top.\n\n</details>\n\n## Catalog\n\n68 skills across 8 categories — each links to its `SKILL.md` below.\n\n### Engines\n\n#### Godot — 15 ([`skills/godot/`](skills/godot/)) · Godot 4.7\n\n| Skill | Scope |\n|-------|-------|\n| [`godot-gdscript`](skills/godot/godot-gdscript/SKILL.md) | GDScript language: typing, lifecycle, `@export`, signals, idioms |\n| [`godot-nodes-scenes`](skills/godot/godot-nodes-scenes/SKILL.md) | Scene tree, node composition, instancing, autoloads, `PackedScene` |\n| [`godot-signals-groups`](skills/godot/godot-signals-groups/SKILL.md) | Event-driven design with signals + groups |\n| [`godot-2d-movement`](skills/godot/godot-2d-movement/SKILL.md) | `CharacterBody2D` kinematic movement, `move_and_slide`, slopes |\n| [`godot-tilemap`](skills/godot/godot-tilemap/SKILL.md) | `TileMapLayer`/`TileSet`: autotiling, terrain, collision/nav layers |\n| [`godot-physics`](skills/godot/godot-physics/SKILL.md) | Rigid/Area/Static bodies (2D+3D), collision layers, raycasts |\n| [`godot-ui-control`](skills/godot/godot-ui-control/SKILL.md) | `Control` nodes: anchors, containers, themes, focus nav |\n| [`godot-animation`](skills/godot/godot-animation/SKILL.md) | `AnimationPlayer`, `AnimationTree`, `Tween` |\n| [`godot-shaders`](skills/godot/godot-shaders/SKILL.md) | Godot shading language: 2D `canvas_item` + 3D `spatial` shaders |\n| [`godot-3d-essentials`](skills/godot/godot-3d-essentials/SKILL.md) | 3D nodes, cameras, lighting, environment/post, `GridMap` |\n| [`godot-resources`](skills/godot/godot-resources/SKILL.md) | Custom `Resource` classes, `.tres`, data-driven design |\n| [`godot-audio`](skills/godot/godot-audio/SKILL.md) | `AudioStreamPlayer`, buses, effects, sync-to-beat |\n| [`godot-multiplayer`](skills/godot/godot-multiplayer/SKILL.md) | High-level multiplayer: `MultiplayerAPI`, RPCs, spawner/sync |\n| [`godot-export`](skills/godot/godot-export/SKILL.md) | Export presets/templates, platform builds, headless CLI export |\n| [`godot-csharp`](skills/godot/godot-csharp/SKILL.md) | C#/.NET in Godot: bindings, signals as events, GDScript interop |\n\n#### Unity — 8 ([`skills/unity/`](skills/unity/)) · Unity 6.3 LTS (6000.3)\n\n| Skill | Scope |\n|-------|-------|\n| [`unity-csharp-scripting`](skills/unity/unity-csharp-scripting/SKILL.md) | `MonoBehaviour` lifecycle, component model, coroutines, serialization |\n| [`unity-input-system`](skills/unity/unity-input-system/SKILL.md) | New Input System: actions, bindings, action maps, devices |\n| [`unity-physics`](skills/unity/unity-physics/SKILL.md) | Rigidbody, colliders, layers, joints |\n| [`unity-animation`](skills/unity/unity-animation/SKILL.md) | Animator Controllers, state machines, blend trees, humanoid IK |\n| [`unity-scriptableobjects`](skills/unity/unity-scriptableobjects/SKILL.md) | Data architecture with `ScriptableObject` |\n| [`unity-tilemap-2d`](skills/unity/unity-tilemap-2d/SKILL.md) | 2D Tilemap/Tile Palette, rule tiles, tilemap colliders |\n| [`unity-navmesh`](skills/unity/unity-navmesh/SKILL.md) | AI navigation: NavMesh bake, `NavMeshAgent` |\n| [`unity-build-pipeline`](skills/unity/unity-build-pipeline/SKILL.md) | Build/player/quality settings, code stripping, Addressables |\n\n#### Unreal — 6 ([`skills/unreal/`](skills/unreal/)) · Unreal Engine 5.8\n\n| Skill | Scope |\n|-------|-------|\n| [`unreal-blueprints`](skills/unreal/unreal-blueprints/SKILL.md) | Blueprint visual scripting: classes, graphs, comms, common nodes |\n| [`unreal-cpp-gameplay`](skills/unreal/unreal-cpp-gameplay/SKILL.md) | C++ gameplay + Gameplay Framework (GameMode, Pawn, Controller) |\n| [`unreal-enhanced-input`](skills/unreal/unreal-enhanced-input/SKILL.md) | Enhanced Input: Input Actions, Mapping Contexts, Modifiers, Triggers |\n| [`unreal-behavior-trees`](skills/unreal/unreal-behavior-trees/SKILL.md) | AI Behavior Trees + Blackboard, tasks/decorators/services |\n| [`unreal-niagara`](skills/unreal/unreal-niagara/SKILL.md) | Niagara VFX: systems, emitters, modules, parameters |\n| [`unreal-packaging`](skills/unreal/unreal-packaging/SKILL.md) | Packaging/cooking projects, build configs, shipping builds |\n\n#### Web engines — 6 ([`skills/web-engines/`](skills/web-engines/)) · Phaser 4.2 · PixiJS 8.19 · three.js r184\n\n| Skill | Scope |\n|-------|-------|\n| [`phaser-core`](skills/web-engines/phaser-core/SKILL.md) | Phaser 4.2 game config, Scene lifecycle, loader, cameras |\n| [`phaser-arcade-physics`](skills/web-engines/phaser-arcade-physics/SKILL.md) | Arcade Physics: bodies, velocity, colliders/overlap, groups |\n| [`pixijs-rendering`](skills/web-engines/pixijs-rendering/SKILL.md) | PixiJS v8 scene graph: `Application`, `Container`, `Sprite`, events |\n| [`threejs-scene-setup`](skills/web-engines/threejs-scene-setup/SKILL.md) | Three.js scene/camera/renderer/animation-loop, resizing, controls |\n| [`threejs-gltf-loading`](skills/web-engines/threejs-gltf-loading/SKILL.md) | Loading glTF/GLB + skinned animation (`GLTFLoader`/`AnimationMixer`) |\n| [`threejs-materials-lighting`](skills/web-engines/threejs-materials-lighting/SKILL.md) | Materials (PBR), lights, shadows, environment maps |\n\n#### Other engines — 5 ([`skills/other-engines/`](skills/other-engines/)) · Bevy · pygame · LÖVE · Roblox\n\n| Skill | Scope |\n|-------|-------|\n| [`bevy-ecs`](skills/other-engines/bevy-ecs/SKILL.md) | Bevy app + ECS: components, systems, queries, resources, plugins (Bevy 0.19) |\n| [`pygame-core`](skills/other-engines/pygame-core/SKILL.md) | pygame loop, `Surface`/`Rect`, sprites/groups, events (pygame-ce 2.5.7) |\n| [`love2d-core`](skills/other-engines/love2d-core/SKILL.md) | LÖVE `load/update/draw` loop, dt-driven motion, input, states (LÖVE 11.5) |\n| [`roblox-luau`](skills/other-engines/roblox-luau/SKILL.md) | Roblox Luau scripting: services, instances, client/server model |\n| [`roblox-datastores`](skills/other-engines/roblox-datastores/SKILL.md) | Persistent data with `DataStoreService`: sessions, limits, ordered stores |\n\n### Disciplines — 15 ([`skills/disciplines/`](skills/disciplines/))\n\nCross-engine concepts that load alongside the detected engine skill.\n\n| Skill | Scope |\n|-------|-------|\n| [`create-game-assets`](skills/disciplines/create-game-assets/SKILL.md) | Art direction and production pipeline for cohesive sprites, tiles, textures, icons, UI art, and 3D assets |\n| [`game-ai`](skills/disciplines/game-ai/SKILL.md) | NPC decision-making: FSMs, behavior trees, steering, pathfinding |\n| [`ai-behavior-trees-utility-ai`](skills/disciplines/ai-behavior-trees-utility-ai/SKILL.md) | Production behavior-tree runtime (Blackboard, composites, decorators, leaves) + Utility AI (curves, considerations, evaluator) + hybrid AI |\n| [`procedural-gen`](skills/disciplines/procedural-gen/SKILL.md) | Noise, RNG, seeds, grid/dungeon/terrain generation |\n| [`dialogue-systems`](skills/disciplines/dialogue-systems/SKILL.md) | Branching dialogue/narrative: nodes, conditions, variables (Yarn/Ink) |\n| [`save-systems`](skills/disciplines/save-systems/SKILL.md) | Serialize/restore game state: formats, slots, versioning, autosave |\n| [`audio-design`](skills/disciplines/audio-design/SKILL.md) | Buses/mixing, adaptive music, SFX, ducking |\n| [`shader-programming`](skills/disciplines/shader-programming/SKILL.md) | Cross-engine shader concepts: vertex/fragment, UVs, common effects |\n| [`physics-tuning`](skills/disciplines/physics-tuning/SKILL.md) | Tuning feel: fixed timestep, mass/drag, CCD, stability, layers |\n| [`level-design`](skills/disciplines/level-design/SKILL.md) | Whitebox/blockout structure, tile/grid layout, pacing |\n| [`input-systems`](skills/disciplines/input-systems/SKILL.md) | Input architecture: action mapping, rebinding, multi-device, buffering |\n| [`game-feel`](skills/disciplines/game-feel/SKILL.md) | Juice: screen shake, hit-stop, tweening/easing, squash & stretch, feedback tiers |\n| [`game-ui-ux`](skills/disciplines/game-ui-ux/SKILL.md) | Cross-engine HUD/menus: anchors, resolution scaling, safe areas, focus navigation |\n| [`camera-systems`](skills/disciplines/camera-systems/SKILL.md) | 2D follow/deadzone/look-ahead + bounds, 3D orbit/first-person, screen-shake hook |\n| [`performance-optimization`](skills/disciplines/performance-optimization/SKILL.md) | Profile-first: frame budget, CPU/GPU triage, draw calls, pooling, GC, asset budgets |\n\n### Genres — 9 ([`skills/genres/`](skills/genres/))\n\nCompositional templates that orchestrate engine + discipline skills; they never re-teach\nprimitives.\n\n| Skill | Scope |\n|-------|-------|\n| [`platformer`](skills/genres/platformer/SKILL.md) | 2D platformer: run/jump/coyote-time, tiled levels, hazards, goals |\n| [`roguelike`](skills/genres/roguelike/SKILL.md) | Grid/turn movement, procedural dungeons, permadeath, FOV, loot |\n| [`rpg`](skills/genres/rpg/SKILL.md) | Stats/leveling, inventory, quests, dialogue, save/load, combat |\n| [`fps-shooter`](skills/genres/fps-shooter/SKILL.md) | First-person controller, camera, shooting/hitscan, enemy AI |\n| [`tower-defense`](skills/genres/tower-defense/SKILL.md) | Wave spawning, lane pathing, towers/targeting, economy |\n| [`card-game`](skills/genres/card-game/SKILL.md) | Card data, deck/hand/discard zones, play rules, turn structure |\n| [`visual-novel`](skills/genres/visual-novel/SKILL.md) | Branching script, character/bg display, text box + choices, backlog |\n| [`survival-crafting`](skills/genres/survival-crafting/SKILL.md) | Resource gathering, inventory, crafting, needs, base building |\n| [`puzzle`](skills/genres/puzzle/SKILL.md) | Grid/board state, match/rule resolution, undo, level progression |\n\n### Workflows — 4 ([`skills/workflows/`](skills/workflows/))\n\n| Skill | Scope |\n|-------|-------|\n| [`game-jam`](skills/workflows/game-jam/SKILL.md) | Scope/plan/execute a jam build under time limits; submit |\n| [`prototype-fast`](skills/workflows/prototype-fast/SKILL.md) | Greybox a playable vertical slice quickly; cut scope; validate the fun |\n| [`steam-publish`](skills/workflows/steam-publish/SKILL.md) | Steamworks onboarding: app/depots, store page, builds, release checklist |\n| [`itch-publish`](skills/workflows/itch-publish/SKILL.md) | Publish/update on itch.io: project page, channels, `butler` uploads |\n\n## Agent compatibility\n\nEvery skill here is a plain `SKILL.md` folder in the [Agent Skills](https://agentskills.io) open\nstandard — the format Anthropic launched as Claude Skills — metadata plus a Markdown playbook the\nagent reads on demand.\n\nThe same file loads **natively** across the ecosystem: Claude Code, Claude, Cursor, Windsurf,\nCline, OpenAI Codex, Gemini CLI, GitHub Copilot, Kiro, Antigravity, VS Code, and\n[many more](https://agentskills.io/clients). There are no editor-specific rule files to maintain\nand nothing to convert.\n\n**Install with one command.** The universal CLI detects your agent and writes the skills to the\nright place:\n\n```bash\nnpx skills add gamedev-skills/awesome-gamedev-agent-skills\n```\n\n**Or copy by hand.** Drop a skill's `<name>/` folder into your agent's skills directory:\n\n| Agent | Skills directory |\n|-------|------------------|\n| Claude Code | `.claude/skills/` |\n| Codex · Gemini CLI · GitHub Copilot · Antigravity | `.agents/skills/` _(shared path)_ |\n| Cursor | `.cursor/skills/` _(also reads `.agents/skills/`)_ |\n| Windsurf | `.windsurf/skills/` |\n| Cline | `.cline/skills/` |\n| Kiro | `.kiro/skills/` |\n\nThe exact per-agent paths, triggers, and the handful of optional fields that vary by agent are in\n[`docs/COMPATIBILITY.md`](docs/COMPATIBILITY.md).\n\n## Demo\n\nOne plain-English request goes in; the minimal right skills come out, then version-pinned code.\nHere's the shape of a single exchange (illustrative):\n\n```text\n> add a double jump to my player\n\nDetected Godot (project.godot). Loading godot-2d-movement for the controller\nand platformer for jump feel — skipping the other 66 skills.\n```\n\n```gdscript\nextends CharacterBody2D\n\n@export var speed := 220.0\n@export var jump_velocity := -380.0\n@export var max_jumps := 2\n\nvar _jumps_left := max_jumps\n\nfunc _physics_process(delta: float) -> void:\n    if not is_on_floor():\n        velocity += get_gravity() * delta   # Godot 4.7 baseline\n    else:\n        _jumps_left = max_jumps\n\n    if Input.is_action_just_pressed(\"ui_accept\") and _jumps_left > 0:\n        velocity.y = jump_velocity\n        _jumps_left -= 1\n\n    velocity.x = Input.get_axis(\"ui_left\", \"ui_right\") * speed\n    move_and_slide()\n```\n\n## Repository layout\n\n```\nskills/        68 specialized skills, grouped by engine / discipline / genre / workflow\nrouter/        the master router skill (+ references/)\ndocs/          authoring standard, installation, compatibility\ntemplates/     SKILL.md template\nscripts/       validate-skills.py, generate-site.py and tooling\ntests/         regression tests for the validator\n```\n\n## Contributing\n\nContributions are welcome. Read [`CONTRIBUTING.md`](CONTRIBUTING.md) and the authoring standard\nin [`docs/SKILL-FORMAT.md`](docs/SKILL-FORMAT.md). Every skill must pass the validator and the\nrubric before merge:\n\n```bash\npython scripts/validate-skills.py\n```\n\n## Maintainer\n\n[awesome-gamedev-agent-skills](https://github.com/gamedev-skills/awesome-gamedev-agent-skills)\nwas created and is maintained by [Abhishek Barali](https://github.com/AbhishekBarali).\n\n## License\n\n[Apache-2.0](LICENSE). See [`NOTICE`](NOTICE) for attribution and trademark notes.\n",
  "bytes": 18875,
  "sha": "70d55a199f3f42468a25fe2a720e18fe839062368d3866bb01ef9b2a8967772c",
  "repo_slug": "gamedev-skills/awesome-gamedev-agent-skills",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/skl_gamedev_skills_awesome_gamedev_agent_ski_f58a4d3a/readme"
}