Files
BMAD-METHOD/expansion-packs/bmad-godot-game-dev/tasks/game-risk-profile.md
sjennings f20d572216 Godot Game Dev expansion pack for BMAD (#532)
* Godot Game Dev expansion pack for BMAD

* Workflow changes

* Workflow changes

* Fixing config.yaml, editing README.md to indicate correct workflow

* Fixing references to config.yaml, adding missing QA review to game-dev agent

* More game story creation fixes

* More game story creation fixes

* Adding built web agent file

* - Adding ability for QA agent to have preloaded context files similar to Dev agent.
- Fixing stray Unity references in game-architecture-tmpl.yaml

---------

Co-authored-by: Brian <bmadcode@gmail.com>
2025-09-06 13:49:21 -05:00

9.2 KiB
Raw Blame History

game-risk-profile

Generate a comprehensive risk assessment matrix for a Godot game story implementation using probability × impact analysis focused on game development challenges.

Inputs

required:
  - story_id: '{epic}.{story}' # e.g., "1.3"
  - story_path: 'docs/stories/{epic}.{story}.*.md'
  - story_title: '{title}' # If missing, derive from story file H1
  - story_slug: '{slug}' # If missing, derive from title (lowercase, hyphenated)

Purpose

Identify, assess, and prioritize risks in Godot game feature implementation. Provide risk mitigation strategies and playtesting focus areas based on game development risk levels.

Risk Assessment Framework

Risk Categories

Category Prefixes:

  • TECH: Technical/Engine Risks
  • PERF: Performance/Optimization Risks
  • GAME: Gameplay/Mechanics Risks
  • ART: Art/Asset Pipeline Risks
  • PLAT: Platform/Deployment Risks
  • PLAY: Player Experience Risks
  1. Technical/Engine Risks (TECH)

    • Godot version compatibility issues
    • GDScript/C# integration problems
    • Node tree architecture complexity
    • Signal connection failures
    • Plugin/addon conflicts
    • Memory leak in scene transitions
  2. Performance/Optimization Risks (PERF)

    • Frame rate drops below 60 FPS
    • Draw call bottlenecks
    • Physics engine slowdowns
    • Particle system overload
    • Texture memory exhaustion
    • Shader compilation spikes
  3. Gameplay/Mechanics Risks (GAME)

    • Game balance issues
    • Control responsiveness problems
    • Collision detection failures
    • AI behavior bugs
    • Progression breaking bugs
    • Save/load system corruption
  4. Art/Asset Pipeline Risks (ART)

    • Asset import failures
    • Texture atlas overflow
    • Animation sync issues
    • Audio streaming problems
    • Font rendering issues
    • Sprite batching failures
  5. Platform/Deployment Risks (PLAT)

    • Export template issues
    • Platform-specific bugs
    • Mobile performance degradation
    • Web build compatibility
    • Console certification failures
    • Steam/itch.io integration problems
  6. Player Experience Risks (PLAY)

    • Tutorial unclear or broken
    • Difficulty curve too steep/shallow
    • Multiplayer desync issues
    • Achievements not triggering
    • Localization text overflow
    • Accessibility features missing

Risk Analysis Process

1. Risk Identification

For each category, identify specific risks:

risk:
  id: 'PERF-001' # Use prefixes: TECH, PERF, GAME, ART, PLAT, PLAY
  category: performance
  title: 'Particle system causing frame drops in boss battle'
  description: 'Multiple particle emitters active during boss fight drops FPS below 30'
  affected_components:
    - 'BossArena.tscn'
    - 'ParticleManager.gd'
    - 'BossAttackEffects'
  detection_method: 'Profiler showed 80% GPU usage on particles'

2. Risk Assessment

Evaluate each risk using probability × impact:

Probability Levels:

  • High (3): Likely to occur (>70% chance)
  • Medium (2): Possible occurrence (30-70% chance)
  • Low (1): Unlikely to occur (<30% chance)

Impact Levels:

  • High (3): Severe consequences (game unplayable, save corruption, platform rejection)
  • Medium (2): Moderate consequences (noticeable lag, minor bugs, progression issues)
  • Low (1): Minor consequences (visual glitches, UI issues, quality of life problems)

Risk Score = Probability × Impact

  • 9: Critical Risk (Red)
  • 6: High Risk (Orange)
  • 4: Medium Risk (Yellow)
  • 2-3: Low Risk (Green)
  • 1: Minimal Risk (Blue)

3. Risk Prioritization

Create risk matrix:

## Risk Matrix

| Risk ID  | Description                  | Probability | Impact     | Score | Priority |
| -------- | ---------------------------- | ----------- | ---------- | ----- | -------- |
| GAME-001 | Boss fight progression block | High (3)    | High (3)   | 9     | Critical |
| PERF-001 | Particle FPS drops           | Medium (2)  | Medium (2) | 4     | Medium   |
| PLAT-001 | Mobile export crashes        | Low (1)     | High (3)   | 3     | Low      |

4. Risk Mitigation Strategies

For each identified risk, provide mitigation:

mitigation:
  risk_id: 'PERF-001'
  strategy: 'preventive' # preventive|detective|corrective
  actions:
    - 'Implement particle pooling system'
    - 'Add LOD (Level of Detail) for particle effects'
    - 'Use GPU particles instead of CPU particles'
    - 'Limit max particle count per emitter'
  testing_requirements:
    - 'Performance profiling on min spec hardware'
    - 'Stress test with all effects active'
    - 'FPS monitoring during boss encounters'
  residual_risk: 'Low - May still drop to 45 FPS on very low-end devices'
  owner: 'game-dev'
  timeline: 'Before beta release'

Outputs

Output 1: Gate YAML Block

Generate for pasting into gate file under risk_summary:

Output rules:

  • Only include assessed risks; do not emit placeholders
  • Sort risks by score (desc) when emitting highest and any tabular lists
  • If no risks: totals all zeros, omit highest, keep recommendations arrays empty
# risk_summary (paste into gate file):
risk_summary:
  totals:
    critical: X # score 9
    high: Y # score 6
    medium: Z # score 4
    low: W # score 2-3
  highest:
    id: GAME-001
    score: 9
    title: 'Boss fight progression blocker'
  recommendations:
    must_fix:
      - 'Fix collision detection in boss arena'
    monitor:
      - 'Track FPS metrics during gameplay'

Output 2: Markdown Report

Save to: qa.qaLocation/assessments/{epic}.{story}-risk-{YYYYMMDD}.md

# Risk Profile: Story {epic}.{story}

Date: {date}
Reviewer: Linus (Test Architect)

## Executive Summary

- Total Risks Identified: X
- Critical Risks: Y
- High Risks: Z
- Risk Score: XX/100 (calculated)

## Critical Risks Requiring Immediate Attention

### 1. [ID]: Risk Title

**Score: 9 (Critical)**
**Probability**: High - Detailed reasoning
**Impact**: High - Potential consequences
**Mitigation**:

- Immediate action required
- Specific steps to take
  **Testing Focus**: Specific test scenarios needed

## Risk Distribution

### By Category

- Technical/Engine: X risks (Y critical)
- Performance: X risks (Y critical)
- Gameplay: X risks (Y critical)
- Art/Assets: X risks (Y critical)
- Platform: X risks (Y critical)
- Player Experience: X risks (Y critical)

### By Component

- Game Scenes: X risks
- Player Controller: X risks
- Enemy AI: X risks
- UI/Menus: X risks
- Audio System: X risks
- Save System: X risks

## Detailed Risk Register

[Full table of all risks with scores and mitigations]

## Risk-Based Testing Strategy

### Priority 1: Critical Risk Tests

- Playtesting scenarios for game-breaking bugs
- Performance testing on target platforms
- Save/load integrity testing
- Multiplayer stress testing (if applicable)

### Priority 2: High Risk Tests

- Integration test scenarios
- Edge case coverage

### Priority 3: Medium/Low Risk Tests

- Standard functional tests
- Regression test suite

## Risk Acceptance Criteria

### Must Fix Before Production

- All critical risks (score 9)
- High risks affecting security/data

### Can Deploy with Mitigation

- Medium risks with compensating controls
- Low risks with monitoring in place

### Accepted Risks

- Document any risks team accepts
- Include sign-off from appropriate authority

## Monitoring Requirements

Post-release monitoring for:

- Frame rate metrics and performance stats
- Crash reports and error logs
- Player progression analytics
- Achievement completion rates
- Player retention metrics

## Risk Review Triggers

Review and update risk profile when:

- Major gameplay mechanics added
- New platforms targeted
- Godot engine version upgraded
- Performance issues reported by playtesters
- Art style or asset pipeline changes
- Multiplayer features added

Risk Scoring Algorithm

Calculate overall story risk score:

Base Score = 100
For each risk:
  - Critical (9): Deduct 20 points
  - High (6): Deduct 10 points
  - Medium (4): Deduct 5 points
  - Low (2-3): Deduct 2 points

Minimum score = 0 (extremely risky)
Maximum score = 100 (minimal risk)

Risk-Based Recommendations

Based on risk profile, recommend:

  1. Testing Priority

    • Which tests to run first
    • Additional test types needed
    • Test environment requirements
  2. Development Focus

    • Code review emphasis areas
    • Additional validation needed
    • Security controls to implement
  3. Deployment Strategy

    • Phased rollout for high-risk changes
    • Feature flags for risky features
    • Rollback procedures
  4. Monitoring Setup

    • Metrics to track
    • Alerts to configure
    • Dashboard requirements

Integration with Quality Gates

Deterministic gate mapping:

  • Any risk with score ≥ 9 → Gate = FAIL (unless waived)
  • Else if any score ≥ 6 → Gate = CONCERNS
  • Else → Gate = PASS
  • Unmitigated risks → Document in gate

Output 3: Story Hook Line

Print this line for review task to quote:

Risk profile: qa.qaLocation/assessments/{epic}.{story}-risk-{YYYYMMDD}.md

Key Principles

  • Identify risks early and systematically
  • Use consistent probability × impact scoring
  • Provide actionable mitigation strategies
  • Link risks to specific test requirements
  • Track residual risk after mitigation
  • Update risk profile as story evolves