Game Planner
Interview your game idea and create a design document before coding.
Installation
- Make sure Claude is on your device and in your terminal.
Skills load from
~/.claude/skills/when Claude Code starts up — so you need it on your machine first. If you don't have it yet, install it once with the command below, then runclaudein any terminal to verify.One-time setupnpm i -g @anthropic-ai/claude-codeAlready have it? Skip ahead.
- Paste into Claude Code or into your terminal.
This copies the whole skill folder into
~/.claude/skills/game-planner-randallliuxin/— the SKILL.md plus any scripts, reference docs, or templates the skill ships with. Safe default: works for every skill.Faster alternative (instruction-only skills)
Skips the clone and grabs only the SKILL.md file. Don't use this if the skill ships Python scripts, reference markdowns, or asset templates — they won't be downloaded and the skill will fail when it tries to load them.
Quick install (SKILL.md only)Sign up to copy - Restart Claude Code.
Quit and reopen Claude Code (or any other agent that loads from
~/.claude/skills/). New skills are picked up on startup. - Just ask Claude.
Skills auto-activate when your request matches the skill's description — no slash command needed. Trigger phrases live in the skill's own frontmatter; you can read them in the “What this skill does” section above.
Prefer to read the source first? Open on GitHub.
When Claude uses it
Clarifies game design requirements and produces a Game Design Document (GDD). Use this skill BEFORE writing any game code. Triggers when the user describes a game idea, says "make a game", "build a {genre}", "I want a platformer", "create a tower defense", or provides any game concept — even vague ones like "make something fun" or "I have a game idea". Also triggers on "plan a game", "design a game", "game design document", "GDD". ALWAYS run game-planner before starting implementation. If the user jumps straight to "make me a platformer", do NOT start coding — interview first. The only exception is if a confirmed GDD already exists in the conversation.
What this skill does
Game Planner
$ARGUMENTS
You are conducting a Socratic game design interview. Your job is to deeply understand what the user wants and produce a complete Game Design Document (GDD) BEFORE any code gets written.
The core rule: ASK before you ACT. Do not write game code, create files, or scaffold a project until the user confirms the GDD. The only output of this skill is a structured GDD document.
Interview Philosophy
Use Socratic questioning — guide the user through design decisions with focused, insightful questions. Don't just collect answers; help the user think through implications:
- "If the core mechanic is wall-jumping, how should wall-sliding feel — sticky or slippery?"
- "You mentioned 10 levels — should difficulty ramp linearly or have breather levels?"
- "With top-down perspective and melee combat, do you want 4-directional or 8-directional attacks?"
Key principles:
- Skip what's already answered. If the user said "pixel art platformer", don't ask about art style or perspective.
- Use smart defaults. For common genres, fill in obvious answers and confirm them rather than asking from scratch.
- Ask about gray areas. Focus questions on decisions that could go multiple ways.
- Help, don't interrogate. If the user says "just pick reasonable defaults", respect that for the current question or current round — fill in sensible choices for that scope and move on.
- Sections are flexible. Different game types need different GDD sections. Skip sections that don't apply (e.g., no "Characters" for Tetris, no "Level Design" for endless runners).
Initial User Concept
When /gm-gdd provides an Initial User Concept, treat it as the user's freeform pre-brief. Extract concrete decisions before asking Round 1 questions:
- game idea, genre, references, intended platform/input, art style, tone, mechanics, win/loss conditions, scope, constraints
- explicit "your call" areas where you should choose defaults for that topic or round instead of asking
- ambiguities that still need user input
Do not re-ask anything the concept already answers. Start Round 1 by briefly stating the assumptions you extracted, then ask only the remaining high-leverage gaps.
Interview Structure
The flow has two phases:
- Interview phase (Rounds 1-4) — Socratic questions organized around GDD sections. Progress in order, but adapt — some games need more depth in certain areas, less in others.
- Audit phase (Rounds 5-7) — synthesize a draft GDD, then run independent audit (
gdd-auditorsubagent) scoped to the current tag. Pass 1 (Round 6) always runs. Pass 2 (Round 7) runs only when Pass 1 meets the trigger in that round. Each audit round produces up to 8 follow-up questions (fewer, or none, when the tag's scope is already complete), delivered to the user in one batch.
Round 8 is the user's final review (Ask Maker mode). Pass 1 is mandatory; do not skip it.
Round 1 — Game Identity (GDD §1-2)
Goal: Establish what the game IS and what the player DOES.
Cover: Genre, perspective, core mechanic, win/lose conditions, session length, core gameplay loop (moment-to-moment, session arc, progression).
GodotMaker currently targets 2D games. Choose the appropriate 2D perspective for the genre; do not ask the user to choose a project dimension.
Before asking, load smart defaults for the genre:
| Genre | Perspective | Camera | Input | Physics | Typical Scope |
|---|---|---|---|---|---|
| Platformer | 2D side-view | Horizontal follow | Keyboard + Gamepad | Gravity, ground/wall collision | 5-10 levels |
| Top-down shooter | 2D top-down | Follow player | WASD + Mouse | Projectile collision, no gravity | Wave-based or level-based |
| Puzzle | 2D | Fixed or grid-based | Mouse / Touch | Minimal or grid-snap | 20-50 levels |
| Tower defense | 2D top-down | Fixed or zoomable | Mouse / Touch | Path following, range detection | 10-20 waves |
| RPG | 2D top-down | Follow player | Keyboard + Mouse | Tile collision | Overworld + dungeons |
| Bullet hell | 2D top-down | Fixed on player | Keyboard / Gamepad | Projectile collision, no gravity | Stage-based |
| Endless runner | 2D side-view | Auto-scroll | One-button / Tap | Gravity, obstacle collision | Infinite, score-based |
| Fighting game | 2D side-view | Fixed arena | Gamepad + Keyboard | Hitbox/hurtbox, gravity | Character roster |
| RTS | 2D top-down | Free pan + zoom | Mouse + Keyboard | Pathfinding, unit collision | Campaign or skirmish |
| Survival | 2D top-down or side-view | Follow player | WASD + Mouse | World collision, resource interaction | Open-ended |
How to present Round 1: State what you already know (from user's input + genre defaults), then ask only the gaps. Example:
"Got it — 2D side-scrolling platformer with gravity physics. The core loop is run-and-jump through levels. A few things to nail down:
- What's the core mechanic beyond basic movement — wall-jump, dash, combat, grapple?
- How does a level end — reach a goal, defeat a boss, or time-based?
- Roughly how long should one session feel — 5 minutes or 30 minutes?"
Wait for answer before proceeding.
Round 2 — Mechanics & Entities (GDD §3, §5)
Goal: Detail the mechanics and the things that exist in the game world.
Cover: Core mechanics table (mechanic → player action → feedback), secondary/stretch mechanics, player character abilities/constraints, enemies/NPCs, interactive objects.
Skip §5 (Characters & Entities) for abstract games without characters.
Ask about the relationship between mechanics and entities:
- "What enemies would challenge the wall-jump mechanic? Climbers? Flyers?"
- "Should the dash be a dodge (invincible frames) or an attack (damage on contact)?"
For gameplay actors, record target screen presence as viewport-height percent and target pixels at the chosen viewport:
| Game shape | Default actor height |
|---|---|
| Top-down exploration / RPG | 8% viewport height |
| Survivor / twin-stick / bullet hell | 6% viewport height |
| Side-view platformer | 12% viewport height |
| Action platformer / brawler | 16% viewport height |
| Fighting / duel arena | 45% viewport height |
For pixel art, snap target actor heights to common source sizes such as 16, 24, 32, 48, 64, or 96 px.
Round 3 — World, Levels & Feel (GDD §4, §6, §7)
Goal: Define the visual/emotional identity and structural design.
Cover: Theme/setting, art style, visual mode, target viewport, mood, level/scene design, difficulty progression, UI elements (HUD, menus), juice/feedback (particles, screen shake, hit flash).
Record display specs in GDD §4:
- Visual mode:
pixel artornon-pixel 2D. - Target viewport: default to
1280x720for non-pixel 2D when unspecified. - Pixel base resolution: default to
480x270for pixel art when unspecified.
For games with environments/levels (platformer, tower defense, RPG, top-down): ask what terrain, paths, blockers, hazards, exits, build pads, and landmarks the player should see and use. Plan current playable units with sprite-based placement, collision shapes, and scene-object metadata. Record TileMap requests as deferred scope.
Skip §4 (Game World) for abstract games. Skip §6 (Level Design) for endless/procedural games — instead ask about generation rules.
Round 4 — Audio, Assets & Scope (GDD §8, §9, §10)
Goal: Define what assets are needed and group scope into playable units.
Cover: Music needs per scene (mood/style), SFX list, art asset requirements, playable unit candidates, deferred features, content volume.
Focus on WHAT the game needs (design perspective), not whether the user HAS files.
Asset collection happens later in /gm-asset — game-planner only defines requirements.
Example questions:
- "What kind of music fits the gameplay — fast-paced electronic, orchestral, chiptune?"
- "For SFX, what actions need sound feedback — jumping, attacking, collecting items?"
- "Art-wise, are you thinking pixel art, vector, or something else?"
Round 5 — Synthesis (GDD v1)
Only start this after Rounds 1-4 are complete (with appropriate sections skipped).
Compile everything into the GDD using the template at .claude/templates/GDD.md. The draft GDD stays internal across Rounds 5-7 — do NOT show any version to the user until v3 is ready in Round 8.
Rules for synthesis:
- Use the template as a reference, NOT a rigid requirement
- Skip sections that don't apply (mark as "N/A — {reason}" or omit entirely)
- Add custom sections if the game needs them
- Fill in smart defaults for anything the user said "your call" about in that question or round
Round 6 — Audit Pass 1 (GDD v1 → v2, always runs)
Spawn the gdd-auditor subagent with a fresh context. Pass it the full GDD v1, the iteration number 1, and the current tag's scope.
Agent({
subagent_type: "gdd-auditor",
description: "Audit GDD draft (pass 1)",
model: "{auditor_model from .godotmaker/config.yaml, default: sonnet}",
prompt: "{audit brief below}"
})
Audit brief:
## Audit: GDD draft, iteration 1
### GDD Path
{absolute path to GDD.md}
### Iteration
1
### Current Tag
{current tag id — always v0.1.0 in initial mode; the current tag from /gm-gdd in subsequent mode}
### Current Tag Scope
{initial mode: the v0.1.0 first-playable-unit definition from Round 4.
subsequent mode: the current tag's ROADMAP bullets passed in by /gm-gdd.}
### Shipped Tags (out of scope)
{subsequent mode only: list prior tags already shipped; omit in initial mode}
### Game Genre Hint
{genre from Round 1}
The auditor returns up to 8 follow-up questions (possibly none). Two outcomes:
- Verdict
complete/ no questions — tell the user the audit found nothing to fill in for {tag}, keep the GDD as v2 = v1, and skip straight to Round 8 (do not run Pass 2). - Questions returned — present them to the user in one batch (do not ask them one-by-one):
"I've drafted the GDD, but before showing it to you I had an independent reviewer audit it for {tag}. They flagged {N} gaps worth filling in. Please answer these in one go — anything you don't have a strong opinion on, just say 'your call':
- [State & Lifecycle] Can the player pause? If so, does pausing freeze audio too? (default: yes to both)
- [Failure & Recovery] When the player dies, do they restart the level or hit a checkpoint?
- ..."
"Reply with answers (or 'your call' for any item) and I'll fold them into v2."
Wait for the user's batched answers, then update the GDD → v2.
Round 7 — Audit Pass 2 (GDD v2 → v3, conditional)
Run Pass 2 only if Pass 1 met the trigger: Pass 1 returned ≥3 follow-up questions OR its verdict flagged any contradiction. Otherwise skip Pass 2 and go to Round 8.
When the trigger is met, spawn the auditor again with iteration 2. You MUST populate the Previously Asked field with the exact questions asked in Round 6 — otherwise the auditor will re-ask the same gaps.
Agent({
subagent_type: "gdd-auditor",
description: "Audit GDD draft (pass 2)",
model: "{auditor_model from .godotmaker/config.yaml, default: sonnet}",
prompt: "{audit brief below}"
})
Audit brief:
## Audit: GDD draft, iteration 2
### GDD Path
{absolute path to GDD.md}
### Iteration
2
### Current Tag
{same current tag as Pass 1}
### Current Tag Scope
{same scope as Pass 1}
### Shipped Tags (out of scope)
{subsequent mode only: same list as Pass 1; omit in initial mode}
### Previously Asked (do not repeat)
- {Round 6 question 1, verbatim}
- {Round 6 question 2, verbatim}
- ...
### Game Genre Hint
{genre from Round 1}
The second pass typically finds finer-grained issues: contradictions introduced by the v2 edits, balance numbers still vague, mechanic interactions still undefined.
Present the second batch to the user the same way:
"Second and final audit pass — {N} more questions. Same rule: 'your call' is fine for anything you don't care about."
Fold the answers into the GDD → v3. This is the version the user reviews in Round 8.
Round 8 — Review & Ask Maker
Present the complete GDD to the user for review.
"Here's the complete Game Design Document. Please review it — you can:
- Confirm it as-is to proceed
- Point out specific sections to change (e.g., 'change Section 3 to add a dash mechanic')
- Ask Maker — describe what you want changed in natural language and I'll update the GDD (e.g., 'I think the difficulty ramps too fast' or 'add a shield mechanic')"
Ask Maker mode: When the user requests modifications:
- Parse their intent — which section(s) are affected?
- Update the affected section(s) of the GDD
- Show ONLY the changed section(s), not the full document
- Ask if the changes look right, or if they want further adjustments
Repeat until the user confirms. Do NOT proceed to implementation until confirmed.
Once confirmed, the GDD becomes the source of truth for all downstream stages.
ECS Architecture Hints
When the GDD is being decomposed into PLAN.md (by /gm-gdd),
the Characters & Entities section maps directly to ECS components:
| Genre | Typical Components |
|---|---|
| Platformer | C_Velocity, C_Gravity, C_Grounded, C_JumpState, C_PlayerInput, C_Health |
| Top-down shooter | C_Velocity, C_Aim, C_Weapon, C_Health, C_EnemyAI, C_BulletEmitter |
| Puzzle | C_GridPosition, C_PuzzlePiece, C_Selectable, C_MatchGroup |
| Tower defense | C_PathFollow, C_Tower, C_Range, C_Projectile, C_WaveSpawner |
| RPG | C_Stats, C_Inventory, C_DialogTrigger, C_QuestState, C_TurnOrder |
These are starting points — /gm-gdd adapts the choice based on the specific GDD.
What This Skill Does NOT Do
- Does not write code or create files
- Does not decompose the GDD into tasks (that's
/gm-gdd's own synthesis step) - Does not collect assets (that's
/gm-asset) - Does not teach game design theory
- Does not enforce a specific project structure (that's project-scaffold's job)
- Does not replace the user's creative vision — it clarifies and structures it
Related skills
Documentation Co-Authoring
anthropics
Guide structured workflows for writing docs, proposals, and technical specs collaboratively.
MCP Server Builder
anthropics
Build protocol servers that connect language models to external APIs and services.
Ask Questions If Underspecified
trailofbits
Ask clarifying questions before starting work on ambiguous requests.
Claude Plugin Marketplace Builder
daymade
Convert a Claude skills repository into an installable marketplace with auto-updates.