# GDD Workflow - Game Projects (All Levels)

<workflow>

<critical>The workflow execution engine is governed by: {project_root}/bmad/core/tasks/workflow.md</critical>
<critical>You MUST have already loaded and processed: {installed_path}/workflow.yaml</critical>
<critical>This is the GDD instruction set for GAME projects - replaces PRD with Game Design Document</critical>
<critical>Project analysis already completed - proceeding with game-specific design</critical>
<critical>Uses gdd_template for GDD output, game_types.csv for type-specific sections</critical>
<critical>Routes to 3-solutioning for architecture (platform-specific decisions handled there)</critical>
<critical>If users mention technical details, append to technical_preferences with timestamp</critical>

<step n="1" goal="Load context and determine game type">

<action>Load project-workflow-analysis.md</action>
<action>Confirm project_type == "game"</action>

<check>If continuation_mode == true:</check>
<action>Load existing GDD.md and check completion status</action>
<ask>Found existing work. Would you like to:

1. Review what's done and continue
2. Modify existing sections
3. Start fresh
   </ask>
   <action>If continuing, skip to first incomplete section</action>

<check>If new or starting fresh:</check>
Check `output_folder` for existing game docs.

<action>Check for existing game-brief in output_folder</action>

<check>If game-brief exists:</check>
<ask>Found existing game brief! Would you like to:

1. Use it as input (recommended - I'll extract key info)
2. Ignore it and start fresh

Your choice:</ask>

<check>If using game-brief:</check>
<action>Load and analyze game-brief document</action>
<action>Extract: game_name, core_concept, target_audience, platforms, game_pillars, primary_mechanics</action>
<action>Pre-fill relevant GDD sections with game-brief content</action>
<action>Note which sections were pre-filled from brief</action>

<ask>What type of game are you designing?

**Common Game Types:**

1. Action Platformer (e.g., Celeste, Hollow Knight)
2. RPG (e.g., Stardew Valley, Undertale)
3. Puzzle (e.g., Portal, The Witness)
4. Roguelike (e.g., Hades, Dead Cells)
5. Shooter (e.g., DOOM, Enter the Gungeon)
6. Strategy (e.g., Into the Breach, Slay the Spire)
7. Adventure (e.g., Firewatch, What Remains of Edith Finch)
8. Simulation (e.g., Factorio, Rimworld)
9. Other (I'll ask follow-up questions)

Select a number or describe your game type:</ask>

<action>Map selection to game_types.csv id</action>
<action>Load corresponding fragment file from game-types/ folder</action>
<action>Store game_type for later injection</action>

<action>Load gdd_template from workflow.yaml</action>

Get core game concept and vision.

<template-output>description</template-output>

</step>

<step n="2" goal="Define platforms and target audience">

<ask>What platform(s) are you targeting?

- Desktop (Windows/Mac/Linux)
- Mobile (iOS/Android)
- Web (Browser-based)
- Console (which consoles?)
- Multiple platforms

Your answer:</ask>

<template-output>platforms</template-output>

<ask>Who is your target audience?

Consider:

- Age range
- Gaming experience level (casual, core, hardcore)
- Genre familiarity
- Play session length preferences

Your answer:</ask>

<template-output>target_audience</template-output>

</step>

<step n="3" goal="Define goals and context">

**Goal Guidelines based on project level:**

- Level 0-1: 1-2 primary goals
- Level 2: 2-3 primary goals
- Level 3-4: 3-5 strategic goals

<template-output>goals</template-output>

Brief context on why this game matters now.

<template-output>context</template-output>

</step>

<step n="4" goal="Core gameplay definition">

<critical>These are game-defining decisions</critical>

<ask>What are the core game pillars (2-4 fundamental gameplay elements)?

Examples:

- Tight controls + challenging combat + rewarding exploration
- Strategic depth + replayability + quick sessions
- Narrative + atmosphere + player agency

Your game pillars:</ask>

<template-output>game_pillars</template-output>

<ask>Describe the core gameplay loop (what the player does repeatedly):

Example: "Player explores level → encounters enemies → defeats enemies with abilities → collects resources → upgrades abilities → explores deeper"

Your gameplay loop:</ask>

<template-output>gameplay_loop</template-output>

<ask>How does the player win? How do they lose?</ask>

<template-output>win_loss_conditions</template-output>

</step>

<step n="5" goal="Game mechanics and controls">

Define the primary game mechanics.

<template-output>primary_mechanics</template-output>
<elicit-required/>

<ask>Describe the control scheme and input method:

- Keyboard + Mouse
- Gamepad
- Touch screen
- Other

Include key bindings or button layouts if known.</ask>

<template-output>controls</template-output>

</step>

<step n="6" goal="Inject game-type-specific sections">

<action>Load game-type fragment from: {installed_path}/gdd/game-types/{{game_type}}.md</action>

<critical>Process each section in the fragment template</critical>

For each {{placeholder}} in the fragment, elicit and capture that information.

<template-output file="GDD.md">GAME_TYPE_SPECIFIC_SECTIONS</template-output>

<elicit-required/>

</step>

<step n="7" goal="Progression and balance">

<ask>How does player progression work?

- Skill-based (player gets better)
- Power-based (character gets stronger)
- Unlock-based (new abilities/areas)
- Narrative-based (story progression)
- Combination

Describe:</ask>

<template-output>player_progression</template-output>

<ask>Describe the difficulty curve:

- How does difficulty increase?
- Pacing (steady, spikes, player-controlled?)
- Accessibility options?</ask>

<template-output>difficulty_curve</template-output>

<ask optional="true">Is there an in-game economy or resource system?

Skip if not applicable.</ask>

<template-output>economy_resources</template-output>

</step>

<step n="8" goal="Level design framework">

<ask>What types of levels/stages does your game have?

Examples:

- Tutorial, early levels, mid-game, late-game, boss arenas
- Biomes/themes
- Procedural vs. handcrafted

Describe:</ask>

<template-output>level_types</template-output>

<ask>How do levels progress or unlock?

- Linear sequence
- Hub-based
- Open world
- Player choice

Describe:</ask>

<template-output>level_progression</template-output>

</step>

<step n="9" goal="Art and audio direction">

<ask>Describe the art style:

- Visual aesthetic (pixel art, low-poly, realistic, stylized, etc.)
- Color palette
- Inspirations or references

Your vision:</ask>

<template-output>art_style</template-output>

<ask>Describe audio and music direction:

- Music style/genre
- Sound effect tone
- Audio importance to gameplay

Your vision:</ask>

<template-output>audio_music</template-output>

</step>

<step n="10" goal="Technical specifications">

<ask>What are the performance requirements?

Consider:

- Target frame rate
- Resolution
- Load times
- Battery life (mobile)

Requirements:</ask>

<template-output>performance_requirements</template-output>

<ask>Any platform-specific considerations?

- Mobile: Touch controls, screen sizes
- PC: Keyboard/mouse, settings
- Console: Controller, certification
- Web: Browser compatibility, file size

Platform details:</ask>

<template-output>platform_details</template-output>

<ask>What are the key asset requirements?

- Art assets (sprites, models, animations)
- Audio assets (music, SFX, voice)
- Estimated asset counts/sizes
- Asset pipeline needs

Asset requirements:</ask>

<template-output>asset_requirements</template-output>

</step>

<step n="11" goal="Epic structure">

<action>Translate game features into development epics</action>

**Epic Guidelines based on project level:**

- Level 1: 1 epic with 1-10 stories
- Level 2: 1-2 epics with 5-15 stories total
- Level 3: 2-5 epics with 12-40 stories
- Level 4: 5+ epics with 40+ stories

<template-output>epics</template-output>
<elicit-required/>

</step>

<step n="12" goal="Success metrics">

<ask>What technical metrics will you track?

Examples:

- Frame rate consistency
- Load times
- Crash rate
- Memory usage

Your metrics:</ask>

<template-output>technical_metrics</template-output>

<ask>What gameplay metrics will you track?

Examples:

- Player completion rate
- Average session length
- Difficulty pain points
- Feature engagement

Your metrics:</ask>

<template-output>gameplay_metrics</template-output>

</step>

<step n="13" goal="Document out of scope and assumptions">

<template-output>out_of_scope</template-output>

<template-output>assumptions_and_dependencies</template-output>

</step>

<step n="14" goal="Generate solutioning handoff and next steps">

<action>Check if game-type fragment contained narrative tags</action>

<check>If fragment had <narrative-workflow-critical> or <narrative-workflow-recommended>:</check>
<action>Set needs_narrative = true</action>
<action>Extract narrative importance level from tag</action>

## Next Steps for {{game_name}}

<check>If needs_narrative == true:</check>
<ask>This game type ({{game_type}}) is **{{narrative_importance}}** for narrative.

Your game would benefit from a Narrative Design Document to detail:

- Story structure and beats
- Character profiles and arcs
- World lore and history
- Dialogue framework
- Environmental storytelling

Would you like to create a Narrative Design Document now?

1. Yes, create Narrative Design Document (recommended)
2. No, proceed directly to solutioning
3. Skip for now, I'll do it later

Your choice:</ask>

<check>If user selects option 1:</check>
<action>LOAD: {installed_path}/narrative/instructions-narrative.md</action>
<action>Pass GDD context to narrative workflow</action>
<action>Exit current workflow (narrative will hand off to solutioning when done)</action>

Since this is a Level {{project_level}} game project, you need solutioning for platform/engine architecture.

**Start new chat with solutioning workflow and provide:**

1. This GDD: `{{gdd_output_file}}`
2. Project analysis: `{{analysis_file}}`

**The solutioning workflow will:**

- Determine game engine/platform (Unity, Godot, Phaser, custom, etc.)
- Generate solution-architecture.md with engine-specific decisions
- Create per-epic tech specs
- Handle platform-specific architecture (from registry.csv game-\* entries)

## Complete Next Steps Checklist

<action>Generate comprehensive checklist based on project analysis</action>

### Phase 1: Solution Architecture and Engine Selection

- [ ] **Run solutioning workflow** (REQUIRED)
  - Command: `workflow solution-architecture`
  - Input: GDD.md, project-workflow-analysis.md
  - Output: solution-architecture.md with engine/platform specifics
  - Note: Registry.csv will provide engine-specific guidance

### Phase 2: Prototype and Playtesting

- [ ] **Create core mechanic prototype**
  - Validate game feel
  - Test control responsiveness
  - Iterate on game pillars

- [ ] **Playtest early and often**
  - Internal testing
  - External playtesting
  - Feedback integration

### Phase 3: Asset Production

- [ ] **Create asset pipeline**
  - Art style guides
  - Technical constraints
  - Asset naming conventions

- [ ] **Audio integration**
  - Music composition/licensing
  - SFX creation
  - Audio middleware setup

### Phase 4: Development

- [ ] **Generate detailed user stories**
  - Command: `workflow generate-stories`
  - Input: GDD.md + solution-architecture.md

- [ ] **Sprint planning**
  - Vertical slices
  - Milestone planning
  - Demo/playable builds

<ask>GDD Complete! Next immediate action:

<check>If needs_narrative == true:</check>

1. Create Narrative Design Document (recommended for {{game_type}})
2. Start solutioning workflow (engine/architecture)
3. Create prototype build
4. Begin asset production planning
5. Review GDD with team/stakeholders
6. Exit workflow

<check>Else:</check>

1. Start solutioning workflow (engine/architecture)
2. Create prototype build
3. Begin asset production planning
4. Review GDD with team/stakeholders
5. Exit workflow

Which would you like to proceed with?</ask>

<check>If user selects narrative option:</check>
<action>LOAD: {installed_path}/narrative/instructions-narrative.md</action>
<action>Pass GDD context to narrative workflow</action>

</step>

</workflow>
