.claude/skills/clone-game/SKILL.md
Analyzes reference screenshots and web research to produce a Game Design Document. Use when starting a new game from visual references or an existing game to replicate.
npx skillsauth add punkfuncgames/tetris-clone clone-gameInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
punkfuncgames/3d-project-baseCreate a new repo from the template and clone it locally.
Naming convention: If cloning an existing game, append -clone to the name (e.g., pixel-flow-clone). For original games, use the game name directly.
# Create repo from GitHub template
gh repo create punkfuncgames/{game-name}-clone --template punkfuncgames/3d-project-base --private
git clone [email protected]:punkfuncgames/{game-name}-clone.git "C:/Users/mylls/Documents/punkfuncgames/games/{game-name}-clone"
cd "C:/Users/mylls/Documents/punkfuncgames/games/{game-name}-clone"
The new project starts with 6 base UPM packages (math, log, core, formula, gamestate, save), all skills, the MCP bridge, and clean git history. Additional packages are installed in /architect-game via the package registry after we know what the game needs.
All subsequent steps operate in the new project directory: C:\Users\mylls\Documents\punkfuncgames\games\{game-name}\
Check the MCP bridge package version and update to the latest tag:
# Get latest tag from remote
git ls-remote --tags https://github.com/melenglobal/com.studiobrain.mcp-bridge.git | sort -t/ -k3 -V | tail -1
# Compare with version in Packages/manifest.json
# If outdated, update the version tag in manifest.json
Also check if the base template (punkfuncgames/3d-project-base) needs the same update — if so, update it there too and commit.
The template includes .mcp.json.example. Configure it for this project so all subsequent pipeline steps (implement-game, polish-game, record-golden-test) can use MCP tools.
ProjectSettings/ProjectVersion.txtC:/Users/mylls/Documents/mcp-servers/dist/index.js.mcp.json from the example with resolved paths:{
"mcpServers": {
"unity-mcp": {
"type": "stdio",
"command": "node",
"args": ["C:/Users/mylls/Documents/mcp-servers/dist/index.js"],
"env": {
"UNITY_EDITOR_PATH": "C:/Program Files/Unity/Hub/Editor/{detected-version}",
"UNITY_PROJECT_PATH": "C:/Users/mylls/Documents/punkfuncgames/games/{game-name}",
"DEEPL_API_KEY": ""
}
},
"figma-desktop": {
"url": "http://127.0.0.1:3845/mcp"
}
}
}
.mcp.json is in .gitignore (contains local paths — should not be committed)git add .mcp.json.example
git commit -m "build: add MCP bridge configuration example"
After this step, tell the user: "Project created and MCP configured. Restart Claude Code in the new directory so the MCP server connects: cd C:/Users/mylls/Documents/punkfuncgames/games/{game-name} && claude"
IMPORTANT: The user MUST restart Claude Code after this step. MCP servers only connect on startup. All subsequent pipeline skills (architect-game, implement-game, polish-game) require the MCP bridge to be running.
Read each reference screenshot and extract:
Record findings in a structured analysis before proceeding.
Use web search to find:
Break the game down into these categories:
| Category | What to Define | |----------|---------------| | Core Loop | The 30-second repeating gameplay cycle | | Entities | Every distinct game object with its properties and behaviors | | Systems | Each runtime system (spawning, collision, scoring, physics, AI) | | Input | Control scheme mapped to actions | | Scoring | How points are earned, multipliers, combos | | Progression | Levels, difficulty curves, unlocks, upgrades | | UI Screens | Each screen (main menu, gameplay HUD, pause, game over, settings) | | Art Direction | Color palette (hex values), style guide, reference mood |
Write the Game Design Document to:
docs/plans/{game-name}-gdd.md
Use this structure:
# {Game Name} — Game Design Document
## Overview
One-paragraph description of the game.
## Reference
- Screenshots analyzed: (list file names)
- Original game: {name} by {developer}
- Platform: {target platform}
## Core Loop
Describe the 30-second gameplay cycle.
## Entities
| Entity | Properties | Behaviors |
|--------|-----------|-----------|
## Systems
### {System Name}
- Purpose:
- Inputs:
- Outputs:
- Update frequency:
## Input Scheme
| Action | Keyboard | Gamepad | Touch |
|--------|----------|---------|-------|
## Scoring
- Points:
- Multipliers:
- High score:
## Progression
- Difficulty curve:
- Unlocks:
- Levels/waves:
## UI Screens
### {Screen Name}
- Elements:
- Transitions:
## Art Direction
- Style:
- Color palette: (hex values)
- Camera: {type}, {angle}
- Reference mood:
## Audio Direction
- Music style:
- Key SFX:
## Scope Estimate
- Estimated new modules:
- Packages to install from registry:
- Complexity: {low/medium/high}
git add docs/plans/{game-name}-gdd.md
git commit -m "docs: add {game-name} game design document"
The GDD file path, plus a brief summary of the game's core loop and estimated scope.
development
WalletModule reference — currency management with BigDouble support, reactive properties, caps, lifetime stats, and persistence. Use when working with currencies, wallets, or financial systems.
development
UnlockConditionModule reference — composable unlock conditions using ScriptableObjects with AND/OR/NOT logic, stat/currency/upgrade/prestige/gamestate/boolean checks, reactive service layer with progress tracking. Use when implementing unlock systems, gating, or progression requirements.
development
UndoModule reference — command pattern with undo/redo stacks, command merging, and reactive state. Use when implementing undo/redo, undoable actions, or command patterns.
tools
Unity UI Toolkit reference — UXML documents, USS styling, MVVM pattern (ViewModel + Presenter), custom VisualElements, responsive layout, animations, performance guidelines, and complete Figma-to-UI-Toolkit property mapping. Use when building or modifying UI with UI Toolkit, creating UXML/USS files, writing ViewModels or Presenters, designing screens/panels/components, or converting Figma designs to UI Toolkit.