define-player-controls
Use when mapping player actions to input devices (KBM, Xbox, PS, Touch) — need an Action → Input device matrix for a game with defined gameplay loop and rules.
SKILL.mdskills/game_dev/user/define-player-controls/SKILL.md
GitHub1. Overview
Extracts player actions from the gameplay loop and maps them to abstract input definitions before generating hardware-specific bindings. Core principle: define abstract actions first, then assign devices — never start with buttons.
2. Core Pattern: Extract → Confirm → Map
CRITICAL: Conduct full interview with user via question tool BEFORE generating any spec. Ask ONE question per turn. Wait for answer before proceeding.
- Read
game_loop.mdandraw_rules.md - Extract player actions →
questiontool → STOP - Select input devices/platforms →
questiontool → STOP - Present final mapping matrix →
questiontool → STOP - Generate
input_mapping.md
| Phase | Focus | Result |
|---|---|---|
| Analyze & Extract | Player-triggerable actions only (movement, combat) | Categorized action list |
| User Confirmation | Explicit approval of action list | Verified intention set |
| Device Mapping | Industry-standard mappings (KBM, Controller) | Finalized matrix |
3. When to Use
Use when:
- Starting a new project and
input_mapping.mddoesn't exist yet. - You have
game_loop.mdandraw_rules.mdand need to extract player actions into an input mapping. - You want industry-standard control mappings before generating hardware bindings.
Do not use when:
input_mapping.mdalready exists and you're only extending it — usecore/apply-input-bindingsinstead.- The gameplay loop and rules haven't been defined yet.
4. Interaction Protocol
Every step MUST use question tool. Present abstract actions, not hardware buttons.
- One Question Per Turn (MANDATORY): After
question(), response is COMPLETE. Wait for answer before next question. - [Missing Spec]: "Cannot extract actions without
game_loop.mdandraw_rules.md. Define them first." - [Action Bloat]: ">15 actions extracted. Combine or categorize more strictly?"
4. Quality Gates - STOP
- Hardware Dependency: Map abstract action list before assigning hardware buttons
- Environmental Noise: Include only player-triggerable actions from input mapping
- Action Bloat: Group similar mechanics into single abstract inputs instead of individual mappings
- Question Batching: One question per turn only
5. Execution Command
/define-player-controls