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>
This commit is contained in:
sjennings
2025-09-06 13:49:21 -05:00
committed by GitHub
parent 076c104b2c
commit f20d572216
71 changed files with 64443 additions and 0 deletions

View File

@@ -0,0 +1,368 @@
<!-- Powered by BMAD™ Core -->
# 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
```yaml
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:
```yaml
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:
```markdown
## 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:
```yaml
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
```yaml
# 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`
```markdown
# 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:
```text
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:**
```text
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