bmad-method 5.0.0-beta.2 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +3 -3
  2. package/.github/ISSUE_TEMPLATE/feature_request.md +3 -3
  3. package/.github/workflows/discord.yaml +11 -2
  4. package/.github/workflows/format-check.yaml +42 -0
  5. package/.github/workflows/manual-release.yaml +173 -0
  6. package/.husky/pre-commit +3 -0
  7. package/.vscode/settings.json +26 -1
  8. package/CHANGELOG.md +0 -11
  9. package/README.md +2 -0
  10. package/bmad-core/agent-teams/team-all.yaml +1 -1
  11. package/bmad-core/agents/bmad-orchestrator.md +1 -1
  12. package/bmad-core/agents/dev.md +4 -4
  13. package/bmad-core/data/bmad-kb.md +1 -1
  14. package/bmad-core/data/test-levels-framework.md +12 -12
  15. package/bmad-core/tasks/facilitate-brainstorming-session.md +1 -1
  16. package/bmad-core/tasks/nfr-assess.md +10 -10
  17. package/bmad-core/tasks/qa-gate.md +23 -23
  18. package/bmad-core/tasks/review-story.md +18 -18
  19. package/bmad-core/tasks/risk-profile.md +25 -25
  20. package/bmad-core/tasks/test-design.md +9 -9
  21. package/bmad-core/tasks/trace-requirements.md +21 -21
  22. package/bmad-core/templates/architecture-tmpl.yaml +49 -49
  23. package/bmad-core/templates/brainstorming-output-tmpl.yaml +5 -5
  24. package/bmad-core/templates/brownfield-architecture-tmpl.yaml +31 -31
  25. package/bmad-core/templates/brownfield-prd-tmpl.yaml +13 -13
  26. package/bmad-core/templates/competitor-analysis-tmpl.yaml +19 -6
  27. package/bmad-core/templates/front-end-architecture-tmpl.yaml +21 -9
  28. package/bmad-core/templates/front-end-spec-tmpl.yaml +24 -24
  29. package/bmad-core/templates/fullstack-architecture-tmpl.yaml +122 -104
  30. package/bmad-core/templates/market-research-tmpl.yaml +2 -2
  31. package/bmad-core/templates/prd-tmpl.yaml +9 -9
  32. package/bmad-core/templates/project-brief-tmpl.yaml +4 -4
  33. package/bmad-core/templates/qa-gate-tmpl.yaml +9 -9
  34. package/bmad-core/templates/story-tmpl.yaml +12 -12
  35. package/bmad-core/workflows/brownfield-fullstack.yaml +9 -9
  36. package/bmad-core/workflows/brownfield-service.yaml +1 -1
  37. package/bmad-core/workflows/brownfield-ui.yaml +1 -1
  38. package/bmad-core/workflows/greenfield-fullstack.yaml +1 -1
  39. package/bmad-core/workflows/greenfield-service.yaml +1 -1
  40. package/bmad-core/workflows/greenfield-ui.yaml +1 -1
  41. package/common/utils/bmad-doc-template.md +5 -5
  42. package/dist/agents/analyst.txt +28 -15
  43. package/dist/agents/architect.txt +220 -190
  44. package/dist/agents/bmad-master.txt +298 -255
  45. package/dist/agents/bmad-orchestrator.txt +1 -1
  46. package/dist/agents/pm.txt +20 -20
  47. package/dist/agents/po.txt +11 -11
  48. package/dist/agents/qa.txt +275 -618
  49. package/dist/agents/sm.txt +11 -11
  50. package/dist/agents/ux-expert.txt +23 -23
  51. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.txt +109 -109
  52. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.txt +75 -77
  53. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.txt +41 -41
  54. package/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +483 -474
  55. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.txt +1 -1
  56. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.txt +149 -149
  57. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.txt +20 -20
  58. package/dist/expansion-packs/bmad-2d-unity-game-dev/teams/unity-2d-game-team.txt +371 -358
  59. package/dist/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.txt +25 -25
  60. package/dist/teams/team-all.txt +581 -881
  61. package/dist/teams/team-fullstack.txt +316 -273
  62. package/dist/teams/team-ide-minimal.txt +276 -619
  63. package/dist/teams/team-no-ui.txt +281 -238
  64. package/docs/versioning-and-releases.md +114 -44
  65. package/eslint.config.mjs +119 -0
  66. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.4 Deployment Configuration/1.4.2 - cloudbuild.yaml +26 -26
  67. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md +4 -4
  68. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md +1 -1
  69. package/expansion-packs/bmad-2d-phaser-game-dev/data/development-guidelines.md +26 -28
  70. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-architecture-tmpl.yaml +50 -50
  71. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-brief-tmpl.yaml +23 -23
  72. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.yaml +24 -24
  73. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-story-tmpl.yaml +42 -42
  74. package/expansion-packs/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.yaml +65 -65
  75. package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-dev-greenfield.yaml +5 -5
  76. package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-prototype.yaml +1 -1
  77. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.md +3 -3
  78. package/expansion-packs/bmad-2d-unity-game-dev/data/bmad-kb.md +1 -1
  79. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-brief-tmpl.yaml +23 -23
  80. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-design-doc-tmpl.yaml +63 -63
  81. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-story-tmpl.yaml +20 -20
  82. package/expansion-packs/bmad-2d-unity-game-dev/templates/level-design-doc-tmpl.yaml +65 -65
  83. package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-dev-greenfield.yaml +5 -5
  84. package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-prototype.yaml +1 -1
  85. package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-architecture-tmpl.yaml +20 -20
  86. package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.yaml +7 -7
  87. package/package.json +62 -39
  88. package/prettier.config.mjs +32 -0
  89. package/release_notes.md +30 -0
  90. package/tools/bmad-npx-wrapper.js +10 -10
  91. package/tools/builders/web-builder.js +124 -130
  92. package/tools/bump-all-versions.js +42 -33
  93. package/tools/bump-expansion-version.js +23 -16
  94. package/tools/cli.js +10 -12
  95. package/tools/flattener/aggregate.js +10 -10
  96. package/tools/flattener/binary.js +44 -17
  97. package/tools/flattener/discovery.js +19 -18
  98. package/tools/flattener/files.js +6 -6
  99. package/tools/flattener/ignoreRules.js +125 -125
  100. package/tools/flattener/main.js +201 -304
  101. package/tools/flattener/projectRoot.js +75 -73
  102. package/tools/flattener/prompts.js +9 -9
  103. package/tools/flattener/stats.helpers.js +131 -67
  104. package/tools/flattener/stats.js +3 -3
  105. package/tools/flattener/test-matrix.js +201 -193
  106. package/tools/flattener/xml.js +33 -31
  107. package/tools/installer/bin/bmad.js +130 -89
  108. package/tools/installer/config/ide-agent-config.yaml +1 -1
  109. package/tools/installer/config/install.config.yaml +2 -2
  110. package/tools/installer/lib/config-loader.js +46 -42
  111. package/tools/installer/lib/file-manager.js +91 -113
  112. package/tools/installer/lib/ide-base-setup.js +57 -56
  113. package/tools/installer/lib/ide-setup.js +375 -343
  114. package/tools/installer/lib/installer.js +875 -714
  115. package/tools/installer/lib/memory-profiler.js +54 -53
  116. package/tools/installer/lib/module-manager.js +19 -15
  117. package/tools/installer/lib/resource-locator.js +26 -28
  118. package/tools/installer/package.json +19 -19
  119. package/tools/lib/dependency-resolver.js +26 -30
  120. package/tools/lib/yaml-utils.js +7 -7
  121. package/tools/preview-release-notes.js +66 -0
  122. package/tools/shared/bannerArt.js +3 -3
  123. package/tools/sync-installer-version.js +7 -9
  124. package/tools/update-expansion-version.js +14 -15
  125. package/tools/upgraders/v3-to-v4-upgrader.js +203 -294
  126. package/tools/version-bump.js +41 -26
  127. package/tools/yaml-format.js +56 -43
  128. package/.github/workflows/promote-to-stable.yml +0 -144
  129. package/.github/workflows/release.yaml +0 -60
  130. package/.releaserc.json +0 -21
  131. package/tools/semantic-release-sync-installer.js +0 -30
@@ -420,7 +420,7 @@ dependencies:
420
420
  ==================== START: .bmad-2d-phaser-game-dev/tasks/facilitate-brainstorming-session.md ====================
421
421
  ---
422
422
  docOutputLocation: docs/brainstorming-session-results.md
423
- template: ".bmad-2d-phaser-game-dev/templates/brainstorming-output-tmpl.yaml"
423
+ template: '.bmad-2d-phaser-game-dev/templates/brainstorming-output-tmpl.yaml'
424
424
  ---
425
425
 
426
426
  # Facilitate Brainstorming Session Task
@@ -1431,12 +1431,12 @@ sections:
1431
1431
  - id: introduction
1432
1432
  instruction: |
1433
1433
  This template guides creation of a comprehensive Project Brief that serves as the foundational input for product development.
1434
-
1434
+
1435
1435
  Start by asking the user which mode they prefer:
1436
-
1436
+
1437
1437
  1. **Interactive Mode** - Work through each section collaboratively
1438
1438
  2. **YOLO Mode** - Generate complete draft for review and refinement
1439
-
1439
+
1440
1440
  Before beginning, understand what inputs are available (brainstorming results, market research, competitive analysis, initial ideas) and gather project context.
1441
1441
 
1442
1442
  - id: executive-summary
@@ -1757,7 +1757,7 @@ sections:
1757
1757
  instruction: Map the end-to-end customer experience for primary segments
1758
1758
  template: |
1759
1759
  For primary customer segment:
1760
-
1760
+
1761
1761
  1. **Awareness:** {{discovery_process}}
1762
1762
  2. **Consideration:** {{evaluation_criteria}}
1763
1763
  3. **Purchase:** {{decision_triggers}}
@@ -1958,7 +1958,7 @@ sections:
1958
1958
  title: Competitor Prioritization Matrix
1959
1959
  instruction: |
1960
1960
  Help categorize competitors by market share and strategic threat level
1961
-
1961
+
1962
1962
  Create a 2x2 matrix:
1963
1963
  - Priority 1 (Core Competitors): High Market Share + High Threat
1964
1964
  - Priority 2 (Emerging Threats): Low Market Share + High Threat
@@ -2023,7 +2023,14 @@ sections:
2023
2023
  title: Feature Comparison Matrix
2024
2024
  instruction: Create a detailed comparison table of key features across competitors
2025
2025
  type: table
2026
- columns: ["Feature Category", "{{your_company}}", "{{competitor_1}}", "{{competitor_2}}", "{{competitor_3}}"]
2026
+ columns:
2027
+ [
2028
+ "Feature Category",
2029
+ "{{your_company}}",
2030
+ "{{competitor_1}}",
2031
+ "{{competitor_2}}",
2032
+ "{{competitor_3}}",
2033
+ ]
2027
2034
  rows:
2028
2035
  - category: "Core Functionality"
2029
2036
  items:
@@ -2035,7 +2042,13 @@ sections:
2035
2042
  - ["Onboarding Time", "{{time}}", "{{time}}", "{{time}}", "{{time}}"]
2036
2043
  - category: "Integration & Ecosystem"
2037
2044
  items:
2038
- - ["API Availability", "{{availability}}", "{{availability}}", "{{availability}}", "{{availability}}"]
2045
+ - [
2046
+ "API Availability",
2047
+ "{{availability}}",
2048
+ "{{availability}}",
2049
+ "{{availability}}",
2050
+ "{{availability}}",
2051
+ ]
2039
2052
  - ["Third-party Integrations", "{{number}}", "{{number}}", "{{number}}", "{{number}}"]
2040
2053
  - category: "Pricing & Plans"
2041
2054
  items:
@@ -2062,7 +2075,7 @@ sections:
2062
2075
  title: Positioning Map
2063
2076
  instruction: |
2064
2077
  Describe competitor positions on key dimensions
2065
-
2078
+
2066
2079
  Create a positioning description using 2 key dimensions relevant to the market, such as:
2067
2080
  - Price vs. Features
2068
2081
  - Ease of Use vs. Power
@@ -2097,7 +2110,7 @@ sections:
2097
2110
  title: Blue Ocean Opportunities
2098
2111
  instruction: |
2099
2112
  Identify uncontested market spaces
2100
-
2113
+
2101
2114
  List opportunities to create new market space:
2102
2115
  - Underserved segments
2103
2116
  - Unaddressed use cases
@@ -2201,11 +2214,11 @@ sections:
2201
2214
  - id: summary-details
2202
2215
  template: |
2203
2216
  **Topic:** {{session_topic}}
2204
-
2217
+
2205
2218
  **Session Goals:** {{stated_goals}}
2206
-
2219
+
2207
2220
  **Techniques Used:** {{techniques_list}}
2208
-
2221
+
2209
2222
  **Total Ideas Generated:** {{total_ideas}}
2210
2223
  - id: key-themes
2211
2224
  title: "Key Themes Identified:"
@@ -2330,7 +2343,7 @@ sections:
2330
2343
  - id: footer
2331
2344
  content: |
2332
2345
  ---
2333
-
2346
+
2334
2347
  *Session facilitated using the BMAD-METHOD brainstorming framework*
2335
2348
  ==================== END: .bmad-2d-phaser-game-dev/templates/brainstorming-output-tmpl.yaml ====================
2336
2349
 
@@ -3332,7 +3345,7 @@ sections:
3332
3345
  - id: initial-setup
3333
3346
  instruction: |
3334
3347
  This template creates a comprehensive Game Design Document that will serve as the foundation for all game development work. The GDD should be detailed enough that developers can create user stories and epics from it. Focus on gameplay systems, mechanics, and technical requirements that can be broken down into implementable features.
3335
-
3348
+
3336
3349
  If available, review any provided documents or ask if any are optionally available: Project Brief, Market Research, Competitive Analysis
3337
3350
 
3338
3351
  - id: executive-summary
@@ -3377,7 +3390,7 @@ sections:
3377
3390
  instruction: Define the 30-60 second loop that players will repeat. Be specific about timing and player actions.
3378
3391
  template: |
3379
3392
  **Primary Loop ({{duration}} seconds):**
3380
-
3393
+
3381
3394
  1. {{action_1}} ({{time_1}}s)
3382
3395
  2. {{action_2}} ({{time_2}}s)
3383
3396
  3. {{action_3}} ({{time_3}}s)
@@ -3387,12 +3400,12 @@ sections:
3387
3400
  instruction: Clearly define success and failure states
3388
3401
  template: |
3389
3402
  **Victory Conditions:**
3390
-
3403
+
3391
3404
  - {{win_condition_1}}
3392
3405
  - {{win_condition_2}}
3393
-
3406
+
3394
3407
  **Failure States:**
3395
-
3408
+
3396
3409
  - {{loss_condition_1}}
3397
3410
  - {{loss_condition_2}}
3398
3411
 
@@ -3408,17 +3421,17 @@ sections:
3408
3421
  title: "{{mechanic_name}}"
3409
3422
  template: |
3410
3423
  **Description:** {{detailed_description}}
3411
-
3424
+
3412
3425
  **Player Input:** {{input_method}}
3413
-
3426
+
3414
3427
  **System Response:** {{game_response}}
3415
-
3428
+
3416
3429
  **Implementation Notes:**
3417
-
3430
+
3418
3431
  - {{tech_requirement_1}}
3419
3432
  - {{tech_requirement_2}}
3420
3433
  - {{performance_consideration}}
3421
-
3434
+
3422
3435
  **Dependencies:** {{other_mechanics_needed}}
3423
3436
  - id: controls
3424
3437
  title: Controls
@@ -3437,9 +3450,9 @@ sections:
3437
3450
  title: Player Progression
3438
3451
  template: |
3439
3452
  **Progression Type:** {{linear|branching|metroidvania}}
3440
-
3453
+
3441
3454
  **Key Milestones:**
3442
-
3455
+
3443
3456
  1. **{{milestone_1}}** - {{unlock_description}}
3444
3457
  2. **{{milestone_2}}** - {{unlock_description}}
3445
3458
  3. **{{milestone_3}}** - {{unlock_description}}
@@ -3476,9 +3489,9 @@ sections:
3476
3489
  **Duration:** {{target_time}}
3477
3490
  **Key Elements:** {{required_mechanics}}
3478
3491
  **Difficulty:** {{relative_difficulty}}
3479
-
3492
+
3480
3493
  **Structure Template:**
3481
-
3494
+
3482
3495
  - Introduction: {{intro_description}}
3483
3496
  - Challenge: {{main_challenge}}
3484
3497
  - Resolution: {{completion_requirement}}
@@ -3504,13 +3517,13 @@ sections:
3504
3517
  title: Platform Specific
3505
3518
  template: |
3506
3519
  **Desktop:**
3507
-
3520
+
3508
3521
  - Resolution: {{min_resolution}} - {{max_resolution}}
3509
3522
  - Input: Keyboard, Mouse, Gamepad
3510
3523
  - Browser: Chrome 80+, Firefox 75+, Safari 13+
3511
-
3524
+
3512
3525
  **Mobile:**
3513
-
3526
+
3514
3527
  - Resolution: {{mobile_min}} - {{mobile_max}}
3515
3528
  - Input: Touch, Tilt (optional)
3516
3529
  - OS: iOS 13+, Android 8+
@@ -3519,14 +3532,14 @@ sections:
3519
3532
  instruction: Define asset specifications for the art and audio teams
3520
3533
  template: |
3521
3534
  **Visual Assets:**
3522
-
3535
+
3523
3536
  - Art Style: {{style_description}}
3524
3537
  - Color Palette: {{color_specification}}
3525
3538
  - Animation: {{animation_requirements}}
3526
3539
  - UI Resolution: {{ui_specs}}
3527
-
3540
+
3528
3541
  **Audio Assets:**
3529
-
3542
+
3530
3543
  - Music Style: {{music_genre}}
3531
3544
  - Sound Effects: {{sfx_requirements}}
3532
3545
  - Voice Acting: {{voice_needs}}
@@ -3539,7 +3552,7 @@ sections:
3539
3552
  title: Engine Configuration
3540
3553
  template: |
3541
3554
  **Phaser 3 Setup:**
3542
-
3555
+
3543
3556
  - TypeScript: Strict mode enabled
3544
3557
  - Physics: {{physics_system}} (Arcade/Matter)
3545
3558
  - Renderer: WebGL with Canvas fallback
@@ -3548,7 +3561,7 @@ sections:
3548
3561
  title: Code Architecture
3549
3562
  template: |
3550
3563
  **Required Systems:**
3551
-
3564
+
3552
3565
  - Scene Management
3553
3566
  - State Management
3554
3567
  - Asset Loading
@@ -3560,7 +3573,7 @@ sections:
3560
3573
  title: Data Management
3561
3574
  template: |
3562
3575
  **Save Data:**
3563
-
3576
+
3564
3577
  - Progress tracking
3565
3578
  - Settings persistence
3566
3579
  - Statistics collection
@@ -3678,7 +3691,7 @@ sections:
3678
3691
  - id: initial-setup
3679
3692
  instruction: |
3680
3693
  This template creates comprehensive level design documentation that guides both content creation and technical implementation. This document should provide enough detail for developers to create level loading systems and for designers to create specific levels.
3681
-
3694
+
3682
3695
  If available, review: Game Design Document (GDD), Game Architecture Document. This document should align with the game mechanics and technical systems defined in those documents.
3683
3696
 
3684
3697
  - id: introduction
@@ -3686,7 +3699,7 @@ sections:
3686
3699
  instruction: Establish the purpose and scope of level design for this game
3687
3700
  content: |
3688
3701
  This document defines the level design framework for {{game_title}}, providing guidelines for creating engaging, balanced levels that support the core gameplay mechanics defined in the Game Design Document.
3689
-
3702
+
3690
3703
  This framework ensures consistency across all levels while providing flexibility for creative level design within established technical and design constraints.
3691
3704
  sections:
3692
3705
  - id: change-log
@@ -3733,29 +3746,29 @@ sections:
3733
3746
  title: "{{category_name}} Levels"
3734
3747
  template: |
3735
3748
  **Purpose:** {{gameplay_purpose}}
3736
-
3749
+
3737
3750
  **Target Duration:** {{min_time}} - {{max_time}} minutes
3738
-
3751
+
3739
3752
  **Difficulty Range:** {{difficulty_scale}}
3740
-
3753
+
3741
3754
  **Key Mechanics Featured:**
3742
-
3755
+
3743
3756
  - {{mechanic_1}} - {{usage_description}}
3744
3757
  - {{mechanic_2}} - {{usage_description}}
3745
-
3758
+
3746
3759
  **Player Objectives:**
3747
-
3760
+
3748
3761
  - Primary: {{primary_objective}}
3749
3762
  - Secondary: {{secondary_objective}}
3750
3763
  - Hidden: {{secret_objective}}
3751
-
3764
+
3752
3765
  **Success Criteria:**
3753
-
3766
+
3754
3767
  - {{completion_requirement_1}}
3755
3768
  - {{completion_requirement_2}}
3756
-
3769
+
3757
3770
  **Technical Requirements:**
3758
-
3771
+
3759
3772
  - Maximum entities: {{entity_limit}}
3760
3773
  - Performance target: {{fps_target}} FPS
3761
3774
  - Memory budget: {{memory_limit}}MB
@@ -3770,11 +3783,11 @@ sections:
3770
3783
  instruction: Based on GDD requirements, define the overall level organization
3771
3784
  template: |
3772
3785
  **Organization Type:** {{linear|hub_world|open_world}}
3773
-
3786
+
3774
3787
  **Total Level Count:** {{number}}
3775
-
3788
+
3776
3789
  **World Breakdown:**
3777
-
3790
+
3778
3791
  - World 1: {{level_count}} levels - {{theme}} - {{difficulty_range}}
3779
3792
  - World 2: {{level_count}} levels - {{theme}} - {{difficulty_range}}
3780
3793
  - World 3: {{level_count}} levels - {{theme}} - {{difficulty_range}}
@@ -3809,7 +3822,7 @@ sections:
3809
3822
  instruction: Define how players access new levels
3810
3823
  template: |
3811
3824
  **Progression Gates:**
3812
-
3825
+
3813
3826
  - Linear progression: Complete previous level
3814
3827
  - Star requirements: {{star_count}} stars to unlock
3815
3828
  - Skill gates: Demonstrate {{skill_requirement}}
@@ -3824,17 +3837,17 @@ sections:
3824
3837
  instruction: Define all environmental components that can be used in levels
3825
3838
  template: |
3826
3839
  **Terrain Types:**
3827
-
3840
+
3828
3841
  - {{terrain_1}}: {{properties_and_usage}}
3829
3842
  - {{terrain_2}}: {{properties_and_usage}}
3830
-
3843
+
3831
3844
  **Interactive Objects:**
3832
-
3845
+
3833
3846
  - {{object_1}}: {{behavior_and_purpose}}
3834
3847
  - {{object_2}}: {{behavior_and_purpose}}
3835
-
3848
+
3836
3849
  **Hazards and Obstacles:**
3837
-
3850
+
3838
3851
  - {{hazard_1}}: {{damage_and_behavior}}
3839
3852
  - {{hazard_2}}: {{damage_and_behavior}}
3840
3853
  - id: collectibles-rewards
@@ -3842,18 +3855,18 @@ sections:
3842
3855
  instruction: Define all collectible items and their placement rules
3843
3856
  template: |
3844
3857
  **Collectible Types:**
3845
-
3858
+
3846
3859
  - {{collectible_1}}: {{value_and_purpose}}
3847
3860
  - {{collectible_2}}: {{value_and_purpose}}
3848
-
3861
+
3849
3862
  **Placement Guidelines:**
3850
-
3863
+
3851
3864
  - Mandatory collectibles: {{placement_rules}}
3852
3865
  - Optional collectibles: {{placement_rules}}
3853
3866
  - Secret collectibles: {{placement_rules}}
3854
-
3867
+
3855
3868
  **Reward Distribution:**
3856
-
3869
+
3857
3870
  - Easy to find: {{percentage}}%
3858
3871
  - Moderate challenge: {{percentage}}%
3859
3872
  - High skill required: {{percentage}}%
@@ -3862,18 +3875,18 @@ sections:
3862
3875
  instruction: Define how enemies should be placed and balanced in levels
3863
3876
  template: |
3864
3877
  **Enemy Categories:**
3865
-
3878
+
3866
3879
  - {{enemy_type_1}}: {{behavior_and_usage}}
3867
3880
  - {{enemy_type_2}}: {{behavior_and_usage}}
3868
-
3881
+
3869
3882
  **Placement Principles:**
3870
-
3883
+
3871
3884
  - Introduction encounters: {{guideline}}
3872
3885
  - Standard encounters: {{guideline}}
3873
3886
  - Challenge encounters: {{guideline}}
3874
-
3887
+
3875
3888
  **Difficulty Scaling:**
3876
-
3889
+
3877
3890
  - Enemy count progression: {{scaling_rule}}
3878
3891
  - Enemy type introduction: {{pacing_rule}}
3879
3892
  - Encounter complexity: {{complexity_rule}}
@@ -3886,14 +3899,14 @@ sections:
3886
3899
  title: Level Layout Principles
3887
3900
  template: |
3888
3901
  **Spatial Design:**
3889
-
3902
+
3890
3903
  - Grid size: {{grid_dimensions}}
3891
3904
  - Minimum path width: {{width_units}}
3892
3905
  - Maximum vertical distance: {{height_units}}
3893
3906
  - Safe zones placement: {{safety_guidelines}}
3894
-
3907
+
3895
3908
  **Navigation Design:**
3896
-
3909
+
3897
3910
  - Clear path indication: {{visual_cues}}
3898
3911
  - Landmark placement: {{landmark_rules}}
3899
3912
  - Dead end avoidance: {{dead_end_policy}}
@@ -3903,13 +3916,13 @@ sections:
3903
3916
  instruction: Define how to control the rhythm and pace of gameplay within levels
3904
3917
  template: |
3905
3918
  **Action Sequences:**
3906
-
3919
+
3907
3920
  - High intensity duration: {{max_duration}}
3908
3921
  - Rest period requirement: {{min_rest_time}}
3909
3922
  - Intensity variation: {{pacing_pattern}}
3910
-
3923
+
3911
3924
  **Learning Sequences:**
3912
-
3925
+
3913
3926
  - New mechanic introduction: {{teaching_method}}
3914
3927
  - Practice opportunity: {{practice_duration}}
3915
3928
  - Skill application: {{application_context}}
@@ -3918,14 +3931,14 @@ sections:
3918
3931
  instruction: Define how to create appropriate challenges for each level type
3919
3932
  template: |
3920
3933
  **Challenge Types:**
3921
-
3934
+
3922
3935
  - Execution challenges: {{skill_requirements}}
3923
3936
  - Puzzle challenges: {{complexity_guidelines}}
3924
3937
  - Time challenges: {{time_pressure_rules}}
3925
3938
  - Resource challenges: {{resource_management}}
3926
-
3939
+
3927
3940
  **Difficulty Calibration:**
3928
-
3941
+
3929
3942
  - Skill check frequency: {{frequency_guidelines}}
3930
3943
  - Failure recovery: {{retry_mechanics}}
3931
3944
  - Hint system integration: {{help_system}}
@@ -3939,7 +3952,7 @@ sections:
3939
3952
  instruction: Define how level data should be structured for implementation
3940
3953
  template: |
3941
3954
  **Level File Format:**
3942
-
3955
+
3943
3956
  - Data format: {{json|yaml|custom}}
3944
3957
  - File naming: `level_{{world}}_{{number}}.{{extension}}`
3945
3958
  - Data organization: {{structure_description}}
@@ -3977,14 +3990,14 @@ sections:
3977
3990
  instruction: Define how level assets are organized and loaded
3978
3991
  template: |
3979
3992
  **Tilemap Requirements:**
3980
-
3993
+
3981
3994
  - Tile size: {{tile_dimensions}}px
3982
3995
  - Tileset organization: {{tileset_structure}}
3983
3996
  - Layer organization: {{layer_system}}
3984
3997
  - Collision data: {{collision_format}}
3985
-
3998
+
3986
3999
  **Audio Integration:**
3987
-
4000
+
3988
4001
  - Background music: {{music_requirements}}
3989
4002
  - Ambient sounds: {{ambient_system}}
3990
4003
  - Dynamic audio: {{dynamic_audio_rules}}
@@ -3993,19 +4006,19 @@ sections:
3993
4006
  instruction: Define performance requirements for level systems
3994
4007
  template: |
3995
4008
  **Entity Limits:**
3996
-
4009
+
3997
4010
  - Maximum active entities: {{entity_limit}}
3998
4011
  - Maximum particles: {{particle_limit}}
3999
4012
  - Maximum audio sources: {{audio_limit}}
4000
-
4013
+
4001
4014
  **Memory Management:**
4002
-
4015
+
4003
4016
  - Texture memory budget: {{texture_memory}}MB
4004
4017
  - Audio memory budget: {{audio_memory}}MB
4005
4018
  - Level loading time: <{{load_time}}s
4006
-
4019
+
4007
4020
  **Culling and LOD:**
4008
-
4021
+
4009
4022
  - Off-screen culling: {{culling_distance}}
4010
4023
  - Level-of-detail rules: {{lod_system}}
4011
4024
  - Asset streaming: {{streaming_requirements}}
@@ -4018,13 +4031,13 @@ sections:
4018
4031
  title: Automated Testing
4019
4032
  template: |
4020
4033
  **Performance Testing:**
4021
-
4034
+
4022
4035
  - Frame rate validation: Maintain {{fps_target}} FPS
4023
4036
  - Memory usage monitoring: Stay under {{memory_limit}}MB
4024
4037
  - Loading time verification: Complete in <{{load_time}}s
4025
-
4038
+
4026
4039
  **Gameplay Testing:**
4027
-
4040
+
4028
4041
  - Completion path validation: All objectives achievable
4029
4042
  - Collectible accessibility: All items reachable
4030
4043
  - Softlock prevention: No unwinnable states
@@ -4052,14 +4065,14 @@ sections:
4052
4065
  title: Balance Validation
4053
4066
  template: |
4054
4067
  **Metrics Collection:**
4055
-
4068
+
4056
4069
  - Completion rate: Target {{completion_percentage}}%
4057
4070
  - Average completion time: {{target_time}} ± {{variance}}
4058
4071
  - Death count per level: <{{max_deaths}}
4059
4072
  - Collectible discovery rate: {{discovery_percentage}}%
4060
-
4073
+
4061
4074
  **Iteration Guidelines:**
4062
-
4075
+
4063
4076
  - Adjustment criteria: {{criteria_for_changes}}
4064
4077
  - Testing sample size: {{minimum_testers}}
4065
4078
  - Validation period: {{testing_duration}}
@@ -4072,14 +4085,14 @@ sections:
4072
4085
  title: Design Phase
4073
4086
  template: |
4074
4087
  **Concept Development:**
4075
-
4088
+
4076
4089
  1. Define level purpose and goals
4077
4090
  2. Create rough layout sketch
4078
4091
  3. Identify key mechanics and challenges
4079
4092
  4. Estimate difficulty and duration
4080
-
4093
+
4081
4094
  **Documentation Requirements:**
4082
-
4095
+
4083
4096
  - Level design brief
4084
4097
  - Layout diagrams
4085
4098
  - Mechanic integration notes
@@ -4088,15 +4101,15 @@ sections:
4088
4101
  title: Implementation Phase
4089
4102
  template: |
4090
4103
  **Technical Implementation:**
4091
-
4104
+
4092
4105
  1. Create level data file
4093
4106
  2. Build tilemap and layout
4094
4107
  3. Place entities and objects
4095
4108
  4. Configure level logic and triggers
4096
4109
  5. Integrate audio and visual effects
4097
-
4110
+
4098
4111
  **Quality Assurance:**
4099
-
4112
+
4100
4113
  1. Automated testing execution
4101
4114
  2. Internal playtesting
4102
4115
  3. Performance validation
@@ -4105,14 +4118,14 @@ sections:
4105
4118
  title: Integration Phase
4106
4119
  template: |
4107
4120
  **Game Integration:**
4108
-
4121
+
4109
4122
  1. Level progression integration
4110
4123
  2. Save system compatibility
4111
4124
  3. Analytics integration
4112
4125
  4. Achievement system integration
4113
-
4126
+
4114
4127
  **Final Validation:**
4115
-
4128
+
4116
4129
  1. Full game context testing
4117
4130
  2. Performance regression testing
4118
4131
  3. Platform compatibility verification
@@ -4165,7 +4178,7 @@ sections:
4165
4178
  - id: initial-setup
4166
4179
  instruction: |
4167
4180
  This template creates a comprehensive game brief that serves as the foundation for all subsequent game development work. The brief should capture the essential vision, scope, and requirements needed to create a detailed Game Design Document.
4168
-
4181
+
4169
4182
  This brief is typically created early in the ideation process, often after brainstorming sessions, to crystallize the game concept before moving into detailed design.
4170
4183
 
4171
4184
  - id: game-vision
@@ -4222,7 +4235,7 @@ sections:
4222
4235
  repeatable: true
4223
4236
  template: |
4224
4237
  **Core Mechanic: {{mechanic_name}}**
4225
-
4238
+
4226
4239
  - **Description:** {{how_it_works}}
4227
4240
  - **Player Value:** {{why_its_fun}}
4228
4241
  - **Implementation Scope:** {{complexity_estimate}}
@@ -4249,12 +4262,12 @@ sections:
4249
4262
  title: Technical Constraints
4250
4263
  template: |
4251
4264
  **Platform Requirements:**
4252
-
4265
+
4253
4266
  - Primary: {{platform_1}} - {{requirements}}
4254
4267
  - Secondary: {{platform_2}} - {{requirements}}
4255
-
4268
+
4256
4269
  **Technical Specifications:**
4257
-
4270
+
4258
4271
  - Engine: Phaser 3 + TypeScript
4259
4272
  - Performance Target: {{fps_target}} FPS on {{target_device}}
4260
4273
  - Memory Budget: <{{memory_limit}}MB
@@ -4292,10 +4305,10 @@ sections:
4292
4305
  title: Competitive Analysis
4293
4306
  template: |
4294
4307
  **Direct Competitors:**
4295
-
4308
+
4296
4309
  - {{competitor_1}}: {{strengths_and_weaknesses}}
4297
4310
  - {{competitor_2}}: {{strengths_and_weaknesses}}
4298
-
4311
+
4299
4312
  **Differentiation Strategy:**
4300
4313
  {{how_we_differ_and_why_thats_valuable}}
4301
4314
  - id: market-opportunity
@@ -4319,16 +4332,16 @@ sections:
4319
4332
  title: Content Categories
4320
4333
  template: |
4321
4334
  **Core Content:**
4322
-
4335
+
4323
4336
  - {{content_type_1}}: {{quantity_and_description}}
4324
4337
  - {{content_type_2}}: {{quantity_and_description}}
4325
-
4338
+
4326
4339
  **Optional Content:**
4327
-
4340
+
4328
4341
  - {{optional_content_type}}: {{quantity_and_description}}
4329
-
4342
+
4330
4343
  **Replay Elements:**
4331
-
4344
+
4332
4345
  - {{replayability_features}}
4333
4346
  - id: difficulty-accessibility
4334
4347
  title: Difficulty and Accessibility
@@ -4395,13 +4408,13 @@ sections:
4395
4408
  title: Player Experience Metrics
4396
4409
  template: |
4397
4410
  **Engagement Goals:**
4398
-
4411
+
4399
4412
  - Tutorial completion rate: >{{percentage}}%
4400
4413
  - Average session length: {{duration}} minutes
4401
4414
  - Player retention: D1 {{d1}}%, D7 {{d7}}%, D30 {{d30}}%
4402
-
4415
+
4403
4416
  **Quality Benchmarks:**
4404
-
4417
+
4405
4418
  - Player satisfaction: >{{rating}}/10
4406
4419
  - Completion rate: >{{percentage}}%
4407
4420
  - Technical performance: {{fps_target}} FPS consistent
@@ -4409,13 +4422,13 @@ sections:
4409
4422
  title: Development Metrics
4410
4423
  template: |
4411
4424
  **Technical Targets:**
4412
-
4425
+
4413
4426
  - Zero critical bugs at launch
4414
4427
  - Performance targets met on all platforms
4415
4428
  - Load times under {{seconds}}s
4416
-
4429
+
4417
4430
  **Process Goals:**
4418
-
4431
+
4419
4432
  - Development timeline adherence
4420
4433
  - Feature scope completion
4421
4434
  - Quality assurance standards
@@ -4424,7 +4437,7 @@ sections:
4424
4437
  condition: has_business_goals
4425
4438
  template: |
4426
4439
  **Commercial Goals:**
4427
-
4440
+
4428
4441
  - {{revenue_target}} in first {{time_period}}
4429
4442
  - {{user_acquisition_target}} players in first {{time_period}}
4430
4443
  - {{retention_target}} monthly active users
@@ -4477,12 +4490,12 @@ sections:
4477
4490
  title: Validation Plan
4478
4491
  template: |
4479
4492
  **Concept Testing:**
4480
-
4493
+
4481
4494
  - {{validation_method_1}} - {{timeline}}
4482
4495
  - {{validation_method_2}} - {{timeline}}
4483
-
4496
+
4484
4497
  **Prototype Testing:**
4485
-
4498
+
4486
4499
  - {{testing_approach}} - {{timeline}}
4487
4500
  - {{feedback_collection_method}} - {{timeline}}
4488
4501
 
@@ -4728,7 +4741,7 @@ sections:
4728
4741
  - id: initial-setup
4729
4742
  instruction: |
4730
4743
  This template creates a comprehensive game architecture document specifically for Phaser 3 + TypeScript projects. This should provide the technical foundation for all game development stories and epics.
4731
-
4744
+
4732
4745
  If available, review any provided documents: Game Design Document (GDD), Technical Preferences. This architecture should support all game mechanics defined in the GDD.
4733
4746
 
4734
4747
  - id: introduction
@@ -4736,7 +4749,7 @@ sections:
4736
4749
  instruction: Establish the document's purpose and scope for game development
4737
4750
  content: |
4738
4751
  This document outlines the complete technical architecture for {{game_title}}, a 2D game built with Phaser 3 and TypeScript. It serves as the technical foundation for AI-driven game development, ensuring consistency and scalability across all game systems.
4739
-
4752
+
4740
4753
  This architecture is designed to support the gameplay mechanics defined in the Game Design Document while maintaining 60 FPS performance and cross-platform compatibility.
4741
4754
  sections:
4742
4755
  - id: change-log
@@ -4755,7 +4768,7 @@ sections:
4755
4768
  title: Architecture Summary
4756
4769
  instruction: |
4757
4770
  Provide a comprehensive overview covering:
4758
-
4771
+
4759
4772
  - Game engine choice and configuration
4760
4773
  - Project structure and organization
4761
4774
  - Key systems and their interactions
@@ -4843,23 +4856,23 @@ sections:
4843
4856
  title: Scene Management System
4844
4857
  template: |
4845
4858
  **Purpose:** Handle game flow and scene transitions
4846
-
4859
+
4847
4860
  **Key Components:**
4848
-
4861
+
4849
4862
  - Scene loading and unloading
4850
4863
  - Data passing between scenes
4851
4864
  - Transition effects
4852
4865
  - Memory management
4853
-
4866
+
4854
4867
  **Implementation Requirements:**
4855
-
4868
+
4856
4869
  - Preload scene for asset loading
4857
4870
  - Menu system with navigation
4858
4871
  - Gameplay scenes with state management
4859
4872
  - Pause/resume functionality
4860
-
4873
+
4861
4874
  **Files to Create:**
4862
-
4875
+
4863
4876
  - `src/scenes/BootScene.ts`
4864
4877
  - `src/scenes/PreloadScene.ts`
4865
4878
  - `src/scenes/MenuScene.ts`
@@ -4869,23 +4882,23 @@ sections:
4869
4882
  title: Game State Management
4870
4883
  template: |
4871
4884
  **Purpose:** Track player progress and game status
4872
-
4885
+
4873
4886
  **State Categories:**
4874
-
4887
+
4875
4888
  - Player progress (levels, unlocks)
4876
4889
  - Game settings (audio, controls)
4877
4890
  - Session data (current level, score)
4878
4891
  - Persistent data (achievements, statistics)
4879
-
4892
+
4880
4893
  **Implementation Requirements:**
4881
-
4894
+
4882
4895
  - Save/load system with localStorage
4883
4896
  - State validation and error recovery
4884
4897
  - Cross-session data persistence
4885
4898
  - Settings management
4886
-
4899
+
4887
4900
  **Files to Create:**
4888
-
4901
+
4889
4902
  - `src/systems/GameState.ts`
4890
4903
  - `src/systems/SaveManager.ts`
4891
4904
  - `src/types/GameData.ts`
@@ -4893,23 +4906,23 @@ sections:
4893
4906
  title: Asset Management System
4894
4907
  template: |
4895
4908
  **Purpose:** Efficient loading and management of game assets
4896
-
4909
+
4897
4910
  **Asset Categories:**
4898
-
4911
+
4899
4912
  - Sprite sheets and animations
4900
4913
  - Audio files and music
4901
4914
  - Level data and configurations
4902
4915
  - UI assets and fonts
4903
-
4916
+
4904
4917
  **Implementation Requirements:**
4905
-
4918
+
4906
4919
  - Progressive loading strategy
4907
4920
  - Asset caching and optimization
4908
4921
  - Error handling for failed loads
4909
4922
  - Memory management for large assets
4910
-
4923
+
4911
4924
  **Files to Create:**
4912
-
4925
+
4913
4926
  - `src/systems/AssetManager.ts`
4914
4927
  - `src/config/AssetConfig.ts`
4915
4928
  - `src/utils/AssetLoader.ts`
@@ -4917,23 +4930,23 @@ sections:
4917
4930
  title: Input Management System
4918
4931
  template: |
4919
4932
  **Purpose:** Handle all player input across platforms
4920
-
4933
+
4921
4934
  **Input Types:**
4922
-
4935
+
4923
4936
  - Keyboard controls
4924
4937
  - Mouse/pointer interaction
4925
4938
  - Touch gestures (mobile)
4926
4939
  - Gamepad support (optional)
4927
-
4940
+
4928
4941
  **Implementation Requirements:**
4929
-
4942
+
4930
4943
  - Input mapping and configuration
4931
4944
  - Touch-friendly mobile controls
4932
4945
  - Input buffering for responsive gameplay
4933
4946
  - Customizable control schemes
4934
-
4947
+
4935
4948
  **Files to Create:**
4936
-
4949
+
4937
4950
  - `src/systems/InputManager.ts`
4938
4951
  - `src/utils/TouchControls.ts`
4939
4952
  - `src/types/InputTypes.ts`
@@ -4946,19 +4959,19 @@ sections:
4946
4959
  title: "{{mechanic_name}} System"
4947
4960
  template: |
4948
4961
  **Purpose:** {{system_purpose}}
4949
-
4962
+
4950
4963
  **Core Functionality:**
4951
-
4964
+
4952
4965
  - {{feature_1}}
4953
4966
  - {{feature_2}}
4954
4967
  - {{feature_3}}
4955
-
4968
+
4956
4969
  **Dependencies:** {{required_systems}}
4957
-
4970
+
4958
4971
  **Performance Considerations:** {{optimization_notes}}
4959
-
4972
+
4960
4973
  **Files to Create:**
4961
-
4974
+
4962
4975
  - `src/systems/{{system_name}}.ts`
4963
4976
  - `src/gameObjects/{{related_object}}.ts`
4964
4977
  - `src/types/{{system_types}}.ts`
@@ -4966,65 +4979,65 @@ sections:
4966
4979
  title: Physics & Collision System
4967
4980
  template: |
4968
4981
  **Physics Engine:** {{physics_choice}} (Arcade Physics/Matter.js)
4969
-
4982
+
4970
4983
  **Collision Categories:**
4971
-
4984
+
4972
4985
  - Player collision
4973
4986
  - Enemy interactions
4974
4987
  - Environmental objects
4975
4988
  - Collectibles and items
4976
-
4989
+
4977
4990
  **Implementation Requirements:**
4978
-
4991
+
4979
4992
  - Optimized collision detection
4980
4993
  - Physics body management
4981
4994
  - Collision callbacks and events
4982
4995
  - Performance monitoring
4983
-
4996
+
4984
4997
  **Files to Create:**
4985
-
4998
+
4986
4999
  - `src/systems/PhysicsManager.ts`
4987
5000
  - `src/utils/CollisionGroups.ts`
4988
5001
  - id: audio-system
4989
5002
  title: Audio System
4990
5003
  template: |
4991
5004
  **Audio Requirements:**
4992
-
5005
+
4993
5006
  - Background music with looping
4994
5007
  - Sound effects for actions
4995
5008
  - Audio settings and volume control
4996
5009
  - Mobile audio optimization
4997
-
5010
+
4998
5011
  **Implementation Features:**
4999
-
5012
+
5000
5013
  - Audio sprite management
5001
5014
  - Dynamic music system
5002
5015
  - Spatial audio (if applicable)
5003
5016
  - Audio pooling for performance
5004
-
5017
+
5005
5018
  **Files to Create:**
5006
-
5019
+
5007
5020
  - `src/systems/AudioManager.ts`
5008
5021
  - `src/config/AudioConfig.ts`
5009
5022
  - id: ui-system
5010
5023
  title: UI System
5011
5024
  template: |
5012
5025
  **UI Components:**
5013
-
5026
+
5014
5027
  - HUD elements (score, health, etc.)
5015
5028
  - Menu navigation
5016
5029
  - Modal dialogs
5017
5030
  - Settings screens
5018
-
5031
+
5019
5032
  **Implementation Requirements:**
5020
-
5033
+
5021
5034
  - Responsive layout system
5022
5035
  - Touch-friendly interface
5023
5036
  - Keyboard navigation support
5024
5037
  - Animation and transitions
5025
-
5038
+
5026
5039
  **Files to Create:**
5027
-
5040
+
5028
5041
  - `src/systems/UIManager.ts`
5029
5042
  - `src/gameObjects/UI/`
5030
5043
  - `src/types/UITypes.ts`
@@ -5566,7 +5579,7 @@ interface GameState {
5566
5579
  interface GameSettings {
5567
5580
  musicVolume: number;
5568
5581
  sfxVolume: number;
5569
- difficulty: "easy" | "normal" | "hard";
5582
+ difficulty: 'easy' | 'normal' | 'hard';
5570
5583
  controls: ControlScheme;
5571
5584
  }
5572
5585
  ```
@@ -5607,12 +5620,12 @@ class GameScene extends Phaser.Scene {
5607
5620
  private inputManager!: InputManager;
5608
5621
 
5609
5622
  constructor() {
5610
- super({ key: "GameScene" });
5623
+ super({ key: 'GameScene' });
5611
5624
  }
5612
5625
 
5613
5626
  preload(): void {
5614
5627
  // Load only scene-specific assets
5615
- this.load.image("player", "assets/player.png");
5628
+ this.load.image('player', 'assets/player.png');
5616
5629
  }
5617
5630
 
5618
5631
  create(data: SceneData): void {
@@ -5637,7 +5650,7 @@ class GameScene extends Phaser.Scene {
5637
5650
  this.inputManager.destroy();
5638
5651
 
5639
5652
  // Remove event listeners
5640
- this.events.off("*");
5653
+ this.events.off('*');
5641
5654
  }
5642
5655
  }
5643
5656
  ```
@@ -5646,13 +5659,13 @@ class GameScene extends Phaser.Scene {
5646
5659
 
5647
5660
  ```typescript
5648
5661
  // Proper scene transitions with data
5649
- this.scene.start("NextScene", {
5662
+ this.scene.start('NextScene', {
5650
5663
  playerScore: this.playerScore,
5651
5664
  currentLevel: this.currentLevel + 1,
5652
5665
  });
5653
5666
 
5654
5667
  // Scene overlays for UI
5655
- this.scene.launch("PauseMenuScene");
5668
+ this.scene.launch('PauseMenuScene');
5656
5669
  this.scene.pause();
5657
5670
  ```
5658
5671
 
@@ -5696,7 +5709,7 @@ class Player extends GameEntity {
5696
5709
  private health!: HealthComponent;
5697
5710
 
5698
5711
  constructor(scene: Phaser.Scene, x: number, y: number) {
5699
- super(scene, x, y, "player");
5712
+ super(scene, x, y, 'player');
5700
5713
 
5701
5714
  this.movement = this.addComponent(new MovementComponent(this));
5702
5715
  this.health = this.addComponent(new HealthComponent(this, 100));
@@ -5716,7 +5729,7 @@ class GameManager {
5716
5729
 
5717
5730
  constructor(scene: Phaser.Scene) {
5718
5731
  if (GameManager.instance) {
5719
- throw new Error("GameManager already exists!");
5732
+ throw new Error('GameManager already exists!');
5720
5733
  }
5721
5734
 
5722
5735
  this.scene = scene;
@@ -5726,7 +5739,7 @@ class GameManager {
5726
5739
 
5727
5740
  static getInstance(): GameManager {
5728
5741
  if (!GameManager.instance) {
5729
- throw new Error("GameManager not initialized!");
5742
+ throw new Error('GameManager not initialized!');
5730
5743
  }
5731
5744
  return GameManager.instance;
5732
5745
  }
@@ -5773,7 +5786,7 @@ class BulletPool {
5773
5786
  }
5774
5787
 
5775
5788
  // Pool exhausted - create new bullet
5776
- console.warn("Bullet pool exhausted, creating new bullet");
5789
+ console.warn('Bullet pool exhausted, creating new bullet');
5777
5790
  return new Bullet(this.scene, 0, 0);
5778
5791
  }
5779
5792
 
@@ -5873,14 +5886,12 @@ class InputManager {
5873
5886
  }
5874
5887
 
5875
5888
  private setupKeyboard(): void {
5876
- this.keys = this.scene.input.keyboard.addKeys(
5877
- "W,A,S,D,SPACE,ESC,UP,DOWN,LEFT,RIGHT",
5878
- );
5889
+ this.keys = this.scene.input.keyboard.addKeys('W,A,S,D,SPACE,ESC,UP,DOWN,LEFT,RIGHT');
5879
5890
  }
5880
5891
 
5881
5892
  private setupTouch(): void {
5882
- this.scene.input.on("pointerdown", this.handlePointerDown, this);
5883
- this.scene.input.on("pointerup", this.handlePointerUp, this);
5893
+ this.scene.input.on('pointerdown', this.handlePointerDown, this);
5894
+ this.scene.input.on('pointerup', this.handlePointerUp, this);
5884
5895
  }
5885
5896
 
5886
5897
  update(): void {
@@ -5907,9 +5918,9 @@ class InputManager {
5907
5918
  class AssetManager {
5908
5919
  loadAssets(): Promise<void> {
5909
5920
  return new Promise((resolve, reject) => {
5910
- this.scene.load.on("filecomplete", this.handleFileComplete, this);
5911
- this.scene.load.on("loaderror", this.handleLoadError, this);
5912
- this.scene.load.on("complete", () => resolve());
5921
+ this.scene.load.on('filecomplete', this.handleFileComplete, this);
5922
+ this.scene.load.on('loaderror', this.handleLoadError, this);
5923
+ this.scene.load.on('complete', () => resolve());
5913
5924
 
5914
5925
  this.scene.load.start();
5915
5926
  });
@@ -5925,8 +5936,8 @@ class AssetManager {
5925
5936
  private loadFallbackAsset(key: string): void {
5926
5937
  // Load placeholder or default assets
5927
5938
  switch (key) {
5928
- case "player":
5929
- this.scene.load.image("player", "assets/defaults/default-player.png");
5939
+ case 'player':
5940
+ this.scene.load.image('player', 'assets/defaults/default-player.png');
5930
5941
  break;
5931
5942
  default:
5932
5943
  console.warn(`No fallback for asset: ${key}`);
@@ -5953,11 +5964,11 @@ class GameSystem {
5953
5964
 
5954
5965
  private attemptRecovery(context: string): void {
5955
5966
  switch (context) {
5956
- case "update":
5967
+ case 'update':
5957
5968
  // Reset system state
5958
5969
  this.reset();
5959
5970
  break;
5960
- case "render":
5971
+ case 'render':
5961
5972
  // Disable visual effects
5962
5973
  this.disableEffects();
5963
5974
  break;
@@ -5977,7 +5988,7 @@ class GameSystem {
5977
5988
 
5978
5989
  ```typescript
5979
5990
  // Example test for game mechanics
5980
- describe("HealthComponent", () => {
5991
+ describe('HealthComponent', () => {
5981
5992
  let healthComponent: HealthComponent;
5982
5993
 
5983
5994
  beforeEach(() => {
@@ -5985,18 +5996,18 @@ describe("HealthComponent", () => {
5985
5996
  healthComponent = new HealthComponent(mockEntity, 100);
5986
5997
  });
5987
5998
 
5988
- test("should initialize with correct health", () => {
5999
+ test('should initialize with correct health', () => {
5989
6000
  expect(healthComponent.currentHealth).toBe(100);
5990
6001
  expect(healthComponent.maxHealth).toBe(100);
5991
6002
  });
5992
6003
 
5993
- test("should handle damage correctly", () => {
6004
+ test('should handle damage correctly', () => {
5994
6005
  healthComponent.takeDamage(25);
5995
6006
  expect(healthComponent.currentHealth).toBe(75);
5996
6007
  expect(healthComponent.isAlive()).toBe(true);
5997
6008
  });
5998
6009
 
5999
- test("should handle death correctly", () => {
6010
+ test('should handle death correctly', () => {
6000
6011
  healthComponent.takeDamage(150);
6001
6012
  expect(healthComponent.currentHealth).toBe(0);
6002
6013
  expect(healthComponent.isAlive()).toBe(false);
@@ -6009,7 +6020,7 @@ describe("HealthComponent", () => {
6009
6020
  **Scene Testing:**
6010
6021
 
6011
6022
  ```typescript
6012
- describe("GameScene Integration", () => {
6023
+ describe('GameScene Integration', () => {
6013
6024
  let scene: GameScene;
6014
6025
  let mockGame: Phaser.Game;
6015
6026
 
@@ -6019,7 +6030,7 @@ describe("GameScene Integration", () => {
6019
6030
  scene = new GameScene();
6020
6031
  });
6021
6032
 
6022
- test("should initialize all systems", () => {
6033
+ test('should initialize all systems', () => {
6023
6034
  scene.create({});
6024
6035
 
6025
6036
  expect(scene.gameManager).toBeDefined();
@@ -6378,13 +6389,13 @@ sections:
6378
6389
  - id: initial-setup
6379
6390
  instruction: |
6380
6391
  This template creates detailed game development stories that are immediately actionable by game developers. Each story should focus on a single, implementable feature that contributes to the overall game functionality.
6381
-
6392
+
6382
6393
  Before starting, ensure you have access to:
6383
-
6394
+
6384
6395
  - Game Design Document (GDD)
6385
6396
  - Game Architecture Document
6386
6397
  - Any existing stories in this epic
6387
-
6398
+
6388
6399
  The story should be specific enough that a developer can implement it without requiring additional design decisions.
6389
6400
 
6390
6401
  - id: story-header
@@ -6433,12 +6444,12 @@ sections:
6433
6444
  title: Files to Create/Modify
6434
6445
  template: |
6435
6446
  **New Files:**
6436
-
6447
+
6437
6448
  - `{{file_path_1}}` - {{purpose}}
6438
6449
  - `{{file_path_2}}` - {{purpose}}
6439
-
6450
+
6440
6451
  **Modified Files:**
6441
-
6452
+
6442
6453
  - `{{existing_file_1}}` - {{changes_needed}}
6443
6454
  - `{{existing_file_2}}` - {{changes_needed}}
6444
6455
  - id: class-interface-definitions
@@ -6453,15 +6464,15 @@ sections:
6453
6464
  {{property_2}}: {{type}};
6454
6465
  {{method_1}}({{params}}): {{return_type}};
6455
6466
  }
6456
-
6467
+
6457
6468
  // {{class_name}}
6458
6469
  class {{class_name}} extends {{phaser_class}} {
6459
6470
  private {{property}}: {{type}};
6460
-
6471
+
6461
6472
  constructor({{params}}) {
6462
6473
  // Implementation requirements
6463
6474
  }
6464
-
6475
+
6465
6476
  public {{method}}({{params}}): {{return_type}} {
6466
6477
  // Method requirements
6467
6478
  }
@@ -6471,15 +6482,15 @@ sections:
6471
6482
  instruction: Specify how this feature integrates with existing systems
6472
6483
  template: |
6473
6484
  **Scene Integration:**
6474
-
6485
+
6475
6486
  - {{scene_name}}: {{integration_details}}
6476
-
6487
+
6477
6488
  **System Dependencies:**
6478
-
6489
+
6479
6490
  - {{system_name}}: {{dependency_description}}
6480
-
6491
+
6481
6492
  **Event Communication:**
6482
-
6493
+
6483
6494
  - Emits: `{{event_name}}` when {{condition}}
6484
6495
  - Listens: `{{event_name}}` to {{response}}
6485
6496
 
@@ -6491,7 +6502,7 @@ sections:
6491
6502
  title: Dev Agent Record
6492
6503
  template: |
6493
6504
  **Tasks:**
6494
-
6505
+
6495
6506
  - [ ] {{task_1_description}}
6496
6507
  - [ ] {{task_2_description}}
6497
6508
  - [ ] {{task_3_description}}
@@ -6499,18 +6510,18 @@ sections:
6499
6510
  - [ ] Write unit tests for {{component}}
6500
6511
  - [ ] Integration testing with {{related_system}}
6501
6512
  - [ ] Performance testing and optimization
6502
-
6513
+
6503
6514
  **Debug Log:**
6504
6515
  | Task | File | Change | Reverted? |
6505
6516
  |------|------|--------|-----------|
6506
6517
  | | | | |
6507
-
6518
+
6508
6519
  **Completion Notes:**
6509
-
6520
+
6510
6521
  <!-- Only note deviations from requirements, keep under 50 words -->
6511
-
6522
+
6512
6523
  **Change Log:**
6513
-
6524
+
6514
6525
  <!-- Only requirement changes during implementation -->
6515
6526
 
6516
6527
  - id: game-design-context
@@ -6518,13 +6529,13 @@ sections:
6518
6529
  instruction: Reference the specific sections of the GDD that this story implements
6519
6530
  template: |
6520
6531
  **GDD Reference:** {{section_name}} ({{page_or_section_number}})
6521
-
6532
+
6522
6533
  **Game Mechanic:** {{mechanic_name}}
6523
-
6534
+
6524
6535
  **Player Experience Goal:** {{experience_description}}
6525
-
6536
+
6526
6537
  **Balance Parameters:**
6527
-
6538
+
6528
6539
  - {{parameter_1}}: {{value_or_range}}
6529
6540
  - {{parameter_2}}: {{value_or_range}}
6530
6541
 
@@ -6536,11 +6547,11 @@ sections:
6536
6547
  title: Unit Tests
6537
6548
  template: |
6538
6549
  **Test Files:**
6539
-
6550
+
6540
6551
  - `tests/{{component_name}}.test.ts`
6541
-
6552
+
6542
6553
  **Test Scenarios:**
6543
-
6554
+
6544
6555
  - {{test_scenario_1}}
6545
6556
  - {{test_scenario_2}}
6546
6557
  - {{edge_case_test}}
@@ -6548,12 +6559,12 @@ sections:
6548
6559
  title: Game Testing
6549
6560
  template: |
6550
6561
  **Manual Test Cases:**
6551
-
6562
+
6552
6563
  1. {{test_case_1_description}}
6553
-
6564
+
6554
6565
  - Expected: {{expected_behavior}}
6555
6566
  - Performance: {{performance_expectation}}
6556
-
6567
+
6557
6568
  2. {{test_case_2_description}}
6558
6569
  - Expected: {{expected_behavior}}
6559
6570
  - Edge Case: {{edge_case_handling}}
@@ -6561,7 +6572,7 @@ sections:
6561
6572
  title: Performance Tests
6562
6573
  template: |
6563
6574
  **Metrics to Verify:**
6564
-
6575
+
6565
6576
  - Frame rate maintains {{fps_target}} FPS
6566
6577
  - Memory usage stays under {{memory_limit}}MB
6567
6578
  - {{feature_specific_performance_metric}}
@@ -6571,15 +6582,15 @@ sections:
6571
6582
  instruction: List any dependencies that must be completed before this story can be implemented
6572
6583
  template: |
6573
6584
  **Story Dependencies:**
6574
-
6585
+
6575
6586
  - {{story_id}}: {{dependency_description}}
6576
-
6587
+
6577
6588
  **Technical Dependencies:**
6578
-
6589
+
6579
6590
  - {{system_or_file}}: {{requirement}}
6580
-
6591
+
6581
6592
  **Asset Dependencies:**
6582
-
6593
+
6583
6594
  - {{asset_type}}: {{asset_description}}
6584
6595
  - Location: `{{asset_path}}`
6585
6596
 
@@ -6602,17 +6613,17 @@ sections:
6602
6613
  instruction: Any additional context, design decisions, or implementation notes
6603
6614
  template: |
6604
6615
  **Implementation Notes:**
6605
-
6616
+
6606
6617
  - {{note_1}}
6607
6618
  - {{note_2}}
6608
-
6619
+
6609
6620
  **Design Decisions:**
6610
-
6621
+
6611
6622
  - {{decision_1}}: {{rationale}}
6612
6623
  - {{decision_2}}: {{rationale}}
6613
-
6624
+
6614
6625
  **Future Considerations:**
6615
-
6626
+
6616
6627
  - {{future_enhancement_1}}
6617
6628
  - {{future_optimization_1}}
6618
6629
  ==================== END: .bmad-2d-phaser-game-dev/templates/game-story-tmpl.yaml ====================
@@ -6634,7 +6645,7 @@ sections:
6634
6645
  - id: initial-setup
6635
6646
  instruction: |
6636
6647
  This template creates a comprehensive game architecture document specifically for Phaser 3 + TypeScript projects. This should provide the technical foundation for all game development stories and epics.
6637
-
6648
+
6638
6649
  If available, review any provided documents: Game Design Document (GDD), Technical Preferences. This architecture should support all game mechanics defined in the GDD.
6639
6650
 
6640
6651
  - id: introduction
@@ -6642,7 +6653,7 @@ sections:
6642
6653
  instruction: Establish the document's purpose and scope for game development
6643
6654
  content: |
6644
6655
  This document outlines the complete technical architecture for {{game_title}}, a 2D game built with Phaser 3 and TypeScript. It serves as the technical foundation for AI-driven game development, ensuring consistency and scalability across all game systems.
6645
-
6656
+
6646
6657
  This architecture is designed to support the gameplay mechanics defined in the Game Design Document while maintaining 60 FPS performance and cross-platform compatibility.
6647
6658
  sections:
6648
6659
  - id: change-log
@@ -6661,7 +6672,7 @@ sections:
6661
6672
  title: Architecture Summary
6662
6673
  instruction: |
6663
6674
  Provide a comprehensive overview covering:
6664
-
6675
+
6665
6676
  - Game engine choice and configuration
6666
6677
  - Project structure and organization
6667
6678
  - Key systems and their interactions
@@ -6749,23 +6760,23 @@ sections:
6749
6760
  title: Scene Management System
6750
6761
  template: |
6751
6762
  **Purpose:** Handle game flow and scene transitions
6752
-
6763
+
6753
6764
  **Key Components:**
6754
-
6765
+
6755
6766
  - Scene loading and unloading
6756
6767
  - Data passing between scenes
6757
6768
  - Transition effects
6758
6769
  - Memory management
6759
-
6770
+
6760
6771
  **Implementation Requirements:**
6761
-
6772
+
6762
6773
  - Preload scene for asset loading
6763
6774
  - Menu system with navigation
6764
6775
  - Gameplay scenes with state management
6765
6776
  - Pause/resume functionality
6766
-
6777
+
6767
6778
  **Files to Create:**
6768
-
6779
+
6769
6780
  - `src/scenes/BootScene.ts`
6770
6781
  - `src/scenes/PreloadScene.ts`
6771
6782
  - `src/scenes/MenuScene.ts`
@@ -6775,23 +6786,23 @@ sections:
6775
6786
  title: Game State Management
6776
6787
  template: |
6777
6788
  **Purpose:** Track player progress and game status
6778
-
6789
+
6779
6790
  **State Categories:**
6780
-
6791
+
6781
6792
  - Player progress (levels, unlocks)
6782
6793
  - Game settings (audio, controls)
6783
6794
  - Session data (current level, score)
6784
6795
  - Persistent data (achievements, statistics)
6785
-
6796
+
6786
6797
  **Implementation Requirements:**
6787
-
6798
+
6788
6799
  - Save/load system with localStorage
6789
6800
  - State validation and error recovery
6790
6801
  - Cross-session data persistence
6791
6802
  - Settings management
6792
-
6803
+
6793
6804
  **Files to Create:**
6794
-
6805
+
6795
6806
  - `src/systems/GameState.ts`
6796
6807
  - `src/systems/SaveManager.ts`
6797
6808
  - `src/types/GameData.ts`
@@ -6799,23 +6810,23 @@ sections:
6799
6810
  title: Asset Management System
6800
6811
  template: |
6801
6812
  **Purpose:** Efficient loading and management of game assets
6802
-
6813
+
6803
6814
  **Asset Categories:**
6804
-
6815
+
6805
6816
  - Sprite sheets and animations
6806
6817
  - Audio files and music
6807
6818
  - Level data and configurations
6808
6819
  - UI assets and fonts
6809
-
6820
+
6810
6821
  **Implementation Requirements:**
6811
-
6822
+
6812
6823
  - Progressive loading strategy
6813
6824
  - Asset caching and optimization
6814
6825
  - Error handling for failed loads
6815
6826
  - Memory management for large assets
6816
-
6827
+
6817
6828
  **Files to Create:**
6818
-
6829
+
6819
6830
  - `src/systems/AssetManager.ts`
6820
6831
  - `src/config/AssetConfig.ts`
6821
6832
  - `src/utils/AssetLoader.ts`
@@ -6823,23 +6834,23 @@ sections:
6823
6834
  title: Input Management System
6824
6835
  template: |
6825
6836
  **Purpose:** Handle all player input across platforms
6826
-
6837
+
6827
6838
  **Input Types:**
6828
-
6839
+
6829
6840
  - Keyboard controls
6830
6841
  - Mouse/pointer interaction
6831
6842
  - Touch gestures (mobile)
6832
6843
  - Gamepad support (optional)
6833
-
6844
+
6834
6845
  **Implementation Requirements:**
6835
-
6846
+
6836
6847
  - Input mapping and configuration
6837
6848
  - Touch-friendly mobile controls
6838
6849
  - Input buffering for responsive gameplay
6839
6850
  - Customizable control schemes
6840
-
6851
+
6841
6852
  **Files to Create:**
6842
-
6853
+
6843
6854
  - `src/systems/InputManager.ts`
6844
6855
  - `src/utils/TouchControls.ts`
6845
6856
  - `src/types/InputTypes.ts`
@@ -6852,19 +6863,19 @@ sections:
6852
6863
  title: "{{mechanic_name}} System"
6853
6864
  template: |
6854
6865
  **Purpose:** {{system_purpose}}
6855
-
6866
+
6856
6867
  **Core Functionality:**
6857
-
6868
+
6858
6869
  - {{feature_1}}
6859
6870
  - {{feature_2}}
6860
6871
  - {{feature_3}}
6861
-
6872
+
6862
6873
  **Dependencies:** {{required_systems}}
6863
-
6874
+
6864
6875
  **Performance Considerations:** {{optimization_notes}}
6865
-
6876
+
6866
6877
  **Files to Create:**
6867
-
6878
+
6868
6879
  - `src/systems/{{system_name}}.ts`
6869
6880
  - `src/gameObjects/{{related_object}}.ts`
6870
6881
  - `src/types/{{system_types}}.ts`
@@ -6872,65 +6883,65 @@ sections:
6872
6883
  title: Physics & Collision System
6873
6884
  template: |
6874
6885
  **Physics Engine:** {{physics_choice}} (Arcade Physics/Matter.js)
6875
-
6886
+
6876
6887
  **Collision Categories:**
6877
-
6888
+
6878
6889
  - Player collision
6879
6890
  - Enemy interactions
6880
6891
  - Environmental objects
6881
6892
  - Collectibles and items
6882
-
6893
+
6883
6894
  **Implementation Requirements:**
6884
-
6895
+
6885
6896
  - Optimized collision detection
6886
6897
  - Physics body management
6887
6898
  - Collision callbacks and events
6888
6899
  - Performance monitoring
6889
-
6900
+
6890
6901
  **Files to Create:**
6891
-
6902
+
6892
6903
  - `src/systems/PhysicsManager.ts`
6893
6904
  - `src/utils/CollisionGroups.ts`
6894
6905
  - id: audio-system
6895
6906
  title: Audio System
6896
6907
  template: |
6897
6908
  **Audio Requirements:**
6898
-
6909
+
6899
6910
  - Background music with looping
6900
6911
  - Sound effects for actions
6901
6912
  - Audio settings and volume control
6902
6913
  - Mobile audio optimization
6903
-
6914
+
6904
6915
  **Implementation Features:**
6905
-
6916
+
6906
6917
  - Audio sprite management
6907
6918
  - Dynamic music system
6908
6919
  - Spatial audio (if applicable)
6909
6920
  - Audio pooling for performance
6910
-
6921
+
6911
6922
  **Files to Create:**
6912
-
6923
+
6913
6924
  - `src/systems/AudioManager.ts`
6914
6925
  - `src/config/AudioConfig.ts`
6915
6926
  - id: ui-system
6916
6927
  title: UI System
6917
6928
  template: |
6918
6929
  **UI Components:**
6919
-
6930
+
6920
6931
  - HUD elements (score, health, etc.)
6921
6932
  - Menu navigation
6922
6933
  - Modal dialogs
6923
6934
  - Settings screens
6924
-
6935
+
6925
6936
  **Implementation Requirements:**
6926
-
6937
+
6927
6938
  - Responsive layout system
6928
6939
  - Touch-friendly interface
6929
6940
  - Keyboard navigation support
6930
6941
  - Animation and transitions
6931
-
6942
+
6932
6943
  **Files to Create:**
6933
-
6944
+
6934
6945
  - `src/systems/UIManager.ts`
6935
6946
  - `src/gameObjects/UI/`
6936
6947
  - `src/types/UITypes.ts`
@@ -7250,7 +7261,7 @@ sections:
7250
7261
  - id: initial-setup
7251
7262
  instruction: |
7252
7263
  This template creates a comprehensive game brief that serves as the foundation for all subsequent game development work. The brief should capture the essential vision, scope, and requirements needed to create a detailed Game Design Document.
7253
-
7264
+
7254
7265
  This brief is typically created early in the ideation process, often after brainstorming sessions, to crystallize the game concept before moving into detailed design.
7255
7266
 
7256
7267
  - id: game-vision
@@ -7307,7 +7318,7 @@ sections:
7307
7318
  repeatable: true
7308
7319
  template: |
7309
7320
  **Core Mechanic: {{mechanic_name}}**
7310
-
7321
+
7311
7322
  - **Description:** {{how_it_works}}
7312
7323
  - **Player Value:** {{why_its_fun}}
7313
7324
  - **Implementation Scope:** {{complexity_estimate}}
@@ -7334,12 +7345,12 @@ sections:
7334
7345
  title: Technical Constraints
7335
7346
  template: |
7336
7347
  **Platform Requirements:**
7337
-
7348
+
7338
7349
  - Primary: {{platform_1}} - {{requirements}}
7339
7350
  - Secondary: {{platform_2}} - {{requirements}}
7340
-
7351
+
7341
7352
  **Technical Specifications:**
7342
-
7353
+
7343
7354
  - Engine: Phaser 3 + TypeScript
7344
7355
  - Performance Target: {{fps_target}} FPS on {{target_device}}
7345
7356
  - Memory Budget: <{{memory_limit}}MB
@@ -7377,10 +7388,10 @@ sections:
7377
7388
  title: Competitive Analysis
7378
7389
  template: |
7379
7390
  **Direct Competitors:**
7380
-
7391
+
7381
7392
  - {{competitor_1}}: {{strengths_and_weaknesses}}
7382
7393
  - {{competitor_2}}: {{strengths_and_weaknesses}}
7383
-
7394
+
7384
7395
  **Differentiation Strategy:**
7385
7396
  {{how_we_differ_and_why_thats_valuable}}
7386
7397
  - id: market-opportunity
@@ -7404,16 +7415,16 @@ sections:
7404
7415
  title: Content Categories
7405
7416
  template: |
7406
7417
  **Core Content:**
7407
-
7418
+
7408
7419
  - {{content_type_1}}: {{quantity_and_description}}
7409
7420
  - {{content_type_2}}: {{quantity_and_description}}
7410
-
7421
+
7411
7422
  **Optional Content:**
7412
-
7423
+
7413
7424
  - {{optional_content_type}}: {{quantity_and_description}}
7414
-
7425
+
7415
7426
  **Replay Elements:**
7416
-
7427
+
7417
7428
  - {{replayability_features}}
7418
7429
  - id: difficulty-accessibility
7419
7430
  title: Difficulty and Accessibility
@@ -7480,13 +7491,13 @@ sections:
7480
7491
  title: Player Experience Metrics
7481
7492
  template: |
7482
7493
  **Engagement Goals:**
7483
-
7494
+
7484
7495
  - Tutorial completion rate: >{{percentage}}%
7485
7496
  - Average session length: {{duration}} minutes
7486
7497
  - Player retention: D1 {{d1}}%, D7 {{d7}}%, D30 {{d30}}%
7487
-
7498
+
7488
7499
  **Quality Benchmarks:**
7489
-
7500
+
7490
7501
  - Player satisfaction: >{{rating}}/10
7491
7502
  - Completion rate: >{{percentage}}%
7492
7503
  - Technical performance: {{fps_target}} FPS consistent
@@ -7494,13 +7505,13 @@ sections:
7494
7505
  title: Development Metrics
7495
7506
  template: |
7496
7507
  **Technical Targets:**
7497
-
7508
+
7498
7509
  - Zero critical bugs at launch
7499
7510
  - Performance targets met on all platforms
7500
7511
  - Load times under {{seconds}}s
7501
-
7512
+
7502
7513
  **Process Goals:**
7503
-
7514
+
7504
7515
  - Development timeline adherence
7505
7516
  - Feature scope completion
7506
7517
  - Quality assurance standards
@@ -7509,7 +7520,7 @@ sections:
7509
7520
  condition: has_business_goals
7510
7521
  template: |
7511
7522
  **Commercial Goals:**
7512
-
7523
+
7513
7524
  - {{revenue_target}} in first {{time_period}}
7514
7525
  - {{user_acquisition_target}} players in first {{time_period}}
7515
7526
  - {{retention_target}} monthly active users
@@ -7562,12 +7573,12 @@ sections:
7562
7573
  title: Validation Plan
7563
7574
  template: |
7564
7575
  **Concept Testing:**
7565
-
7576
+
7566
7577
  - {{validation_method_1}} - {{timeline}}
7567
7578
  - {{validation_method_2}} - {{timeline}}
7568
-
7579
+
7569
7580
  **Prototype Testing:**
7570
-
7581
+
7571
7582
  - {{testing_approach}} - {{timeline}}
7572
7583
  - {{feedback_collection_method}} - {{timeline}}
7573
7584
 
@@ -7609,7 +7620,7 @@ sections:
7609
7620
  - id: initial-setup
7610
7621
  instruction: |
7611
7622
  This template creates a comprehensive Game Design Document that will serve as the foundation for all game development work. The GDD should be detailed enough that developers can create user stories and epics from it. Focus on gameplay systems, mechanics, and technical requirements that can be broken down into implementable features.
7612
-
7623
+
7613
7624
  If available, review any provided documents or ask if any are optionally available: Project Brief, Market Research, Competitive Analysis
7614
7625
 
7615
7626
  - id: executive-summary
@@ -7654,7 +7665,7 @@ sections:
7654
7665
  instruction: Define the 30-60 second loop that players will repeat. Be specific about timing and player actions.
7655
7666
  template: |
7656
7667
  **Primary Loop ({{duration}} seconds):**
7657
-
7668
+
7658
7669
  1. {{action_1}} ({{time_1}}s)
7659
7670
  2. {{action_2}} ({{time_2}}s)
7660
7671
  3. {{action_3}} ({{time_3}}s)
@@ -7664,12 +7675,12 @@ sections:
7664
7675
  instruction: Clearly define success and failure states
7665
7676
  template: |
7666
7677
  **Victory Conditions:**
7667
-
7678
+
7668
7679
  - {{win_condition_1}}
7669
7680
  - {{win_condition_2}}
7670
-
7681
+
7671
7682
  **Failure States:**
7672
-
7683
+
7673
7684
  - {{loss_condition_1}}
7674
7685
  - {{loss_condition_2}}
7675
7686
 
@@ -7685,17 +7696,17 @@ sections:
7685
7696
  title: "{{mechanic_name}}"
7686
7697
  template: |
7687
7698
  **Description:** {{detailed_description}}
7688
-
7699
+
7689
7700
  **Player Input:** {{input_method}}
7690
-
7701
+
7691
7702
  **System Response:** {{game_response}}
7692
-
7703
+
7693
7704
  **Implementation Notes:**
7694
-
7705
+
7695
7706
  - {{tech_requirement_1}}
7696
7707
  - {{tech_requirement_2}}
7697
7708
  - {{performance_consideration}}
7698
-
7709
+
7699
7710
  **Dependencies:** {{other_mechanics_needed}}
7700
7711
  - id: controls
7701
7712
  title: Controls
@@ -7714,9 +7725,9 @@ sections:
7714
7725
  title: Player Progression
7715
7726
  template: |
7716
7727
  **Progression Type:** {{linear|branching|metroidvania}}
7717
-
7728
+
7718
7729
  **Key Milestones:**
7719
-
7730
+
7720
7731
  1. **{{milestone_1}}** - {{unlock_description}}
7721
7732
  2. **{{milestone_2}}** - {{unlock_description}}
7722
7733
  3. **{{milestone_3}}** - {{unlock_description}}
@@ -7753,9 +7764,9 @@ sections:
7753
7764
  **Duration:** {{target_time}}
7754
7765
  **Key Elements:** {{required_mechanics}}
7755
7766
  **Difficulty:** {{relative_difficulty}}
7756
-
7767
+
7757
7768
  **Structure Template:**
7758
-
7769
+
7759
7770
  - Introduction: {{intro_description}}
7760
7771
  - Challenge: {{main_challenge}}
7761
7772
  - Resolution: {{completion_requirement}}
@@ -7781,13 +7792,13 @@ sections:
7781
7792
  title: Platform Specific
7782
7793
  template: |
7783
7794
  **Desktop:**
7784
-
7795
+
7785
7796
  - Resolution: {{min_resolution}} - {{max_resolution}}
7786
7797
  - Input: Keyboard, Mouse, Gamepad
7787
7798
  - Browser: Chrome 80+, Firefox 75+, Safari 13+
7788
-
7799
+
7789
7800
  **Mobile:**
7790
-
7801
+
7791
7802
  - Resolution: {{mobile_min}} - {{mobile_max}}
7792
7803
  - Input: Touch, Tilt (optional)
7793
7804
  - OS: iOS 13+, Android 8+
@@ -7796,14 +7807,14 @@ sections:
7796
7807
  instruction: Define asset specifications for the art and audio teams
7797
7808
  template: |
7798
7809
  **Visual Assets:**
7799
-
7810
+
7800
7811
  - Art Style: {{style_description}}
7801
7812
  - Color Palette: {{color_specification}}
7802
7813
  - Animation: {{animation_requirements}}
7803
7814
  - UI Resolution: {{ui_specs}}
7804
-
7815
+
7805
7816
  **Audio Assets:**
7806
-
7817
+
7807
7818
  - Music Style: {{music_genre}}
7808
7819
  - Sound Effects: {{sfx_requirements}}
7809
7820
  - Voice Acting: {{voice_needs}}
@@ -7816,7 +7827,7 @@ sections:
7816
7827
  title: Engine Configuration
7817
7828
  template: |
7818
7829
  **Phaser 3 Setup:**
7819
-
7830
+
7820
7831
  - TypeScript: Strict mode enabled
7821
7832
  - Physics: {{physics_system}} (Arcade/Matter)
7822
7833
  - Renderer: WebGL with Canvas fallback
@@ -7825,7 +7836,7 @@ sections:
7825
7836
  title: Code Architecture
7826
7837
  template: |
7827
7838
  **Required Systems:**
7828
-
7839
+
7829
7840
  - Scene Management
7830
7841
  - State Management
7831
7842
  - Asset Loading
@@ -7837,7 +7848,7 @@ sections:
7837
7848
  title: Data Management
7838
7849
  template: |
7839
7850
  **Save Data:**
7840
-
7851
+
7841
7852
  - Progress tracking
7842
7853
  - Settings persistence
7843
7854
  - Statistics collection
@@ -7955,13 +7966,13 @@ sections:
7955
7966
  - id: initial-setup
7956
7967
  instruction: |
7957
7968
  This template creates detailed game development stories that are immediately actionable by game developers. Each story should focus on a single, implementable feature that contributes to the overall game functionality.
7958
-
7969
+
7959
7970
  Before starting, ensure you have access to:
7960
-
7971
+
7961
7972
  - Game Design Document (GDD)
7962
7973
  - Game Architecture Document
7963
7974
  - Any existing stories in this epic
7964
-
7975
+
7965
7976
  The story should be specific enough that a developer can implement it without requiring additional design decisions.
7966
7977
 
7967
7978
  - id: story-header
@@ -8010,12 +8021,12 @@ sections:
8010
8021
  title: Files to Create/Modify
8011
8022
  template: |
8012
8023
  **New Files:**
8013
-
8024
+
8014
8025
  - `{{file_path_1}}` - {{purpose}}
8015
8026
  - `{{file_path_2}}` - {{purpose}}
8016
-
8027
+
8017
8028
  **Modified Files:**
8018
-
8029
+
8019
8030
  - `{{existing_file_1}}` - {{changes_needed}}
8020
8031
  - `{{existing_file_2}}` - {{changes_needed}}
8021
8032
  - id: class-interface-definitions
@@ -8030,15 +8041,15 @@ sections:
8030
8041
  {{property_2}}: {{type}};
8031
8042
  {{method_1}}({{params}}): {{return_type}};
8032
8043
  }
8033
-
8044
+
8034
8045
  // {{class_name}}
8035
8046
  class {{class_name}} extends {{phaser_class}} {
8036
8047
  private {{property}}: {{type}};
8037
-
8048
+
8038
8049
  constructor({{params}}) {
8039
8050
  // Implementation requirements
8040
8051
  }
8041
-
8052
+
8042
8053
  public {{method}}({{params}}): {{return_type}} {
8043
8054
  // Method requirements
8044
8055
  }
@@ -8048,15 +8059,15 @@ sections:
8048
8059
  instruction: Specify how this feature integrates with existing systems
8049
8060
  template: |
8050
8061
  **Scene Integration:**
8051
-
8062
+
8052
8063
  - {{scene_name}}: {{integration_details}}
8053
-
8064
+
8054
8065
  **System Dependencies:**
8055
-
8066
+
8056
8067
  - {{system_name}}: {{dependency_description}}
8057
-
8068
+
8058
8069
  **Event Communication:**
8059
-
8070
+
8060
8071
  - Emits: `{{event_name}}` when {{condition}}
8061
8072
  - Listens: `{{event_name}}` to {{response}}
8062
8073
 
@@ -8068,7 +8079,7 @@ sections:
8068
8079
  title: Dev Agent Record
8069
8080
  template: |
8070
8081
  **Tasks:**
8071
-
8082
+
8072
8083
  - [ ] {{task_1_description}}
8073
8084
  - [ ] {{task_2_description}}
8074
8085
  - [ ] {{task_3_description}}
@@ -8076,18 +8087,18 @@ sections:
8076
8087
  - [ ] Write unit tests for {{component}}
8077
8088
  - [ ] Integration testing with {{related_system}}
8078
8089
  - [ ] Performance testing and optimization
8079
-
8090
+
8080
8091
  **Debug Log:**
8081
8092
  | Task | File | Change | Reverted? |
8082
8093
  |------|------|--------|-----------|
8083
8094
  | | | | |
8084
-
8095
+
8085
8096
  **Completion Notes:**
8086
-
8097
+
8087
8098
  <!-- Only note deviations from requirements, keep under 50 words -->
8088
-
8099
+
8089
8100
  **Change Log:**
8090
-
8101
+
8091
8102
  <!-- Only requirement changes during implementation -->
8092
8103
 
8093
8104
  - id: game-design-context
@@ -8095,13 +8106,13 @@ sections:
8095
8106
  instruction: Reference the specific sections of the GDD that this story implements
8096
8107
  template: |
8097
8108
  **GDD Reference:** {{section_name}} ({{page_or_section_number}})
8098
-
8109
+
8099
8110
  **Game Mechanic:** {{mechanic_name}}
8100
-
8111
+
8101
8112
  **Player Experience Goal:** {{experience_description}}
8102
-
8113
+
8103
8114
  **Balance Parameters:**
8104
-
8115
+
8105
8116
  - {{parameter_1}}: {{value_or_range}}
8106
8117
  - {{parameter_2}}: {{value_or_range}}
8107
8118
 
@@ -8113,11 +8124,11 @@ sections:
8113
8124
  title: Unit Tests
8114
8125
  template: |
8115
8126
  **Test Files:**
8116
-
8127
+
8117
8128
  - `tests/{{component_name}}.test.ts`
8118
-
8129
+
8119
8130
  **Test Scenarios:**
8120
-
8131
+
8121
8132
  - {{test_scenario_1}}
8122
8133
  - {{test_scenario_2}}
8123
8134
  - {{edge_case_test}}
@@ -8125,12 +8136,12 @@ sections:
8125
8136
  title: Game Testing
8126
8137
  template: |
8127
8138
  **Manual Test Cases:**
8128
-
8139
+
8129
8140
  1. {{test_case_1_description}}
8130
-
8141
+
8131
8142
  - Expected: {{expected_behavior}}
8132
8143
  - Performance: {{performance_expectation}}
8133
-
8144
+
8134
8145
  2. {{test_case_2_description}}
8135
8146
  - Expected: {{expected_behavior}}
8136
8147
  - Edge Case: {{edge_case_handling}}
@@ -8138,7 +8149,7 @@ sections:
8138
8149
  title: Performance Tests
8139
8150
  template: |
8140
8151
  **Metrics to Verify:**
8141
-
8152
+
8142
8153
  - Frame rate maintains {{fps_target}} FPS
8143
8154
  - Memory usage stays under {{memory_limit}}MB
8144
8155
  - {{feature_specific_performance_metric}}
@@ -8148,15 +8159,15 @@ sections:
8148
8159
  instruction: List any dependencies that must be completed before this story can be implemented
8149
8160
  template: |
8150
8161
  **Story Dependencies:**
8151
-
8162
+
8152
8163
  - {{story_id}}: {{dependency_description}}
8153
-
8164
+
8154
8165
  **Technical Dependencies:**
8155
-
8166
+
8156
8167
  - {{system_or_file}}: {{requirement}}
8157
-
8168
+
8158
8169
  **Asset Dependencies:**
8159
-
8170
+
8160
8171
  - {{asset_type}}: {{asset_description}}
8161
8172
  - Location: `{{asset_path}}`
8162
8173
 
@@ -8179,17 +8190,17 @@ sections:
8179
8190
  instruction: Any additional context, design decisions, or implementation notes
8180
8191
  template: |
8181
8192
  **Implementation Notes:**
8182
-
8193
+
8183
8194
  - {{note_1}}
8184
8195
  - {{note_2}}
8185
-
8196
+
8186
8197
  **Design Decisions:**
8187
-
8198
+
8188
8199
  - {{decision_1}}: {{rationale}}
8189
8200
  - {{decision_2}}: {{rationale}}
8190
-
8201
+
8191
8202
  **Future Considerations:**
8192
-
8203
+
8193
8204
  - {{future_enhancement_1}}
8194
8205
  - {{future_optimization_1}}
8195
8206
  ==================== END: .bmad-2d-phaser-game-dev/templates/game-story-tmpl.yaml ====================
@@ -8211,7 +8222,7 @@ sections:
8211
8222
  - id: initial-setup
8212
8223
  instruction: |
8213
8224
  This template creates comprehensive level design documentation that guides both content creation and technical implementation. This document should provide enough detail for developers to create level loading systems and for designers to create specific levels.
8214
-
8225
+
8215
8226
  If available, review: Game Design Document (GDD), Game Architecture Document. This document should align with the game mechanics and technical systems defined in those documents.
8216
8227
 
8217
8228
  - id: introduction
@@ -8219,7 +8230,7 @@ sections:
8219
8230
  instruction: Establish the purpose and scope of level design for this game
8220
8231
  content: |
8221
8232
  This document defines the level design framework for {{game_title}}, providing guidelines for creating engaging, balanced levels that support the core gameplay mechanics defined in the Game Design Document.
8222
-
8233
+
8223
8234
  This framework ensures consistency across all levels while providing flexibility for creative level design within established technical and design constraints.
8224
8235
  sections:
8225
8236
  - id: change-log
@@ -8266,29 +8277,29 @@ sections:
8266
8277
  title: "{{category_name}} Levels"
8267
8278
  template: |
8268
8279
  **Purpose:** {{gameplay_purpose}}
8269
-
8280
+
8270
8281
  **Target Duration:** {{min_time}} - {{max_time}} minutes
8271
-
8282
+
8272
8283
  **Difficulty Range:** {{difficulty_scale}}
8273
-
8284
+
8274
8285
  **Key Mechanics Featured:**
8275
-
8286
+
8276
8287
  - {{mechanic_1}} - {{usage_description}}
8277
8288
  - {{mechanic_2}} - {{usage_description}}
8278
-
8289
+
8279
8290
  **Player Objectives:**
8280
-
8291
+
8281
8292
  - Primary: {{primary_objective}}
8282
8293
  - Secondary: {{secondary_objective}}
8283
8294
  - Hidden: {{secret_objective}}
8284
-
8295
+
8285
8296
  **Success Criteria:**
8286
-
8297
+
8287
8298
  - {{completion_requirement_1}}
8288
8299
  - {{completion_requirement_2}}
8289
-
8300
+
8290
8301
  **Technical Requirements:**
8291
-
8302
+
8292
8303
  - Maximum entities: {{entity_limit}}
8293
8304
  - Performance target: {{fps_target}} FPS
8294
8305
  - Memory budget: {{memory_limit}}MB
@@ -8303,11 +8314,11 @@ sections:
8303
8314
  instruction: Based on GDD requirements, define the overall level organization
8304
8315
  template: |
8305
8316
  **Organization Type:** {{linear|hub_world|open_world}}
8306
-
8317
+
8307
8318
  **Total Level Count:** {{number}}
8308
-
8319
+
8309
8320
  **World Breakdown:**
8310
-
8321
+
8311
8322
  - World 1: {{level_count}} levels - {{theme}} - {{difficulty_range}}
8312
8323
  - World 2: {{level_count}} levels - {{theme}} - {{difficulty_range}}
8313
8324
  - World 3: {{level_count}} levels - {{theme}} - {{difficulty_range}}
@@ -8342,7 +8353,7 @@ sections:
8342
8353
  instruction: Define how players access new levels
8343
8354
  template: |
8344
8355
  **Progression Gates:**
8345
-
8356
+
8346
8357
  - Linear progression: Complete previous level
8347
8358
  - Star requirements: {{star_count}} stars to unlock
8348
8359
  - Skill gates: Demonstrate {{skill_requirement}}
@@ -8357,17 +8368,17 @@ sections:
8357
8368
  instruction: Define all environmental components that can be used in levels
8358
8369
  template: |
8359
8370
  **Terrain Types:**
8360
-
8371
+
8361
8372
  - {{terrain_1}}: {{properties_and_usage}}
8362
8373
  - {{terrain_2}}: {{properties_and_usage}}
8363
-
8374
+
8364
8375
  **Interactive Objects:**
8365
-
8376
+
8366
8377
  - {{object_1}}: {{behavior_and_purpose}}
8367
8378
  - {{object_2}}: {{behavior_and_purpose}}
8368
-
8379
+
8369
8380
  **Hazards and Obstacles:**
8370
-
8381
+
8371
8382
  - {{hazard_1}}: {{damage_and_behavior}}
8372
8383
  - {{hazard_2}}: {{damage_and_behavior}}
8373
8384
  - id: collectibles-rewards
@@ -8375,18 +8386,18 @@ sections:
8375
8386
  instruction: Define all collectible items and their placement rules
8376
8387
  template: |
8377
8388
  **Collectible Types:**
8378
-
8389
+
8379
8390
  - {{collectible_1}}: {{value_and_purpose}}
8380
8391
  - {{collectible_2}}: {{value_and_purpose}}
8381
-
8392
+
8382
8393
  **Placement Guidelines:**
8383
-
8394
+
8384
8395
  - Mandatory collectibles: {{placement_rules}}
8385
8396
  - Optional collectibles: {{placement_rules}}
8386
8397
  - Secret collectibles: {{placement_rules}}
8387
-
8398
+
8388
8399
  **Reward Distribution:**
8389
-
8400
+
8390
8401
  - Easy to find: {{percentage}}%
8391
8402
  - Moderate challenge: {{percentage}}%
8392
8403
  - High skill required: {{percentage}}%
@@ -8395,18 +8406,18 @@ sections:
8395
8406
  instruction: Define how enemies should be placed and balanced in levels
8396
8407
  template: |
8397
8408
  **Enemy Categories:**
8398
-
8409
+
8399
8410
  - {{enemy_type_1}}: {{behavior_and_usage}}
8400
8411
  - {{enemy_type_2}}: {{behavior_and_usage}}
8401
-
8412
+
8402
8413
  **Placement Principles:**
8403
-
8414
+
8404
8415
  - Introduction encounters: {{guideline}}
8405
8416
  - Standard encounters: {{guideline}}
8406
8417
  - Challenge encounters: {{guideline}}
8407
-
8418
+
8408
8419
  **Difficulty Scaling:**
8409
-
8420
+
8410
8421
  - Enemy count progression: {{scaling_rule}}
8411
8422
  - Enemy type introduction: {{pacing_rule}}
8412
8423
  - Encounter complexity: {{complexity_rule}}
@@ -8419,14 +8430,14 @@ sections:
8419
8430
  title: Level Layout Principles
8420
8431
  template: |
8421
8432
  **Spatial Design:**
8422
-
8433
+
8423
8434
  - Grid size: {{grid_dimensions}}
8424
8435
  - Minimum path width: {{width_units}}
8425
8436
  - Maximum vertical distance: {{height_units}}
8426
8437
  - Safe zones placement: {{safety_guidelines}}
8427
-
8438
+
8428
8439
  **Navigation Design:**
8429
-
8440
+
8430
8441
  - Clear path indication: {{visual_cues}}
8431
8442
  - Landmark placement: {{landmark_rules}}
8432
8443
  - Dead end avoidance: {{dead_end_policy}}
@@ -8436,13 +8447,13 @@ sections:
8436
8447
  instruction: Define how to control the rhythm and pace of gameplay within levels
8437
8448
  template: |
8438
8449
  **Action Sequences:**
8439
-
8450
+
8440
8451
  - High intensity duration: {{max_duration}}
8441
8452
  - Rest period requirement: {{min_rest_time}}
8442
8453
  - Intensity variation: {{pacing_pattern}}
8443
-
8454
+
8444
8455
  **Learning Sequences:**
8445
-
8456
+
8446
8457
  - New mechanic introduction: {{teaching_method}}
8447
8458
  - Practice opportunity: {{practice_duration}}
8448
8459
  - Skill application: {{application_context}}
@@ -8451,14 +8462,14 @@ sections:
8451
8462
  instruction: Define how to create appropriate challenges for each level type
8452
8463
  template: |
8453
8464
  **Challenge Types:**
8454
-
8465
+
8455
8466
  - Execution challenges: {{skill_requirements}}
8456
8467
  - Puzzle challenges: {{complexity_guidelines}}
8457
8468
  - Time challenges: {{time_pressure_rules}}
8458
8469
  - Resource challenges: {{resource_management}}
8459
-
8470
+
8460
8471
  **Difficulty Calibration:**
8461
-
8472
+
8462
8473
  - Skill check frequency: {{frequency_guidelines}}
8463
8474
  - Failure recovery: {{retry_mechanics}}
8464
8475
  - Hint system integration: {{help_system}}
@@ -8472,7 +8483,7 @@ sections:
8472
8483
  instruction: Define how level data should be structured for implementation
8473
8484
  template: |
8474
8485
  **Level File Format:**
8475
-
8486
+
8476
8487
  - Data format: {{json|yaml|custom}}
8477
8488
  - File naming: `level_{{world}}_{{number}}.{{extension}}`
8478
8489
  - Data organization: {{structure_description}}
@@ -8510,14 +8521,14 @@ sections:
8510
8521
  instruction: Define how level assets are organized and loaded
8511
8522
  template: |
8512
8523
  **Tilemap Requirements:**
8513
-
8524
+
8514
8525
  - Tile size: {{tile_dimensions}}px
8515
8526
  - Tileset organization: {{tileset_structure}}
8516
8527
  - Layer organization: {{layer_system}}
8517
8528
  - Collision data: {{collision_format}}
8518
-
8529
+
8519
8530
  **Audio Integration:**
8520
-
8531
+
8521
8532
  - Background music: {{music_requirements}}
8522
8533
  - Ambient sounds: {{ambient_system}}
8523
8534
  - Dynamic audio: {{dynamic_audio_rules}}
@@ -8526,19 +8537,19 @@ sections:
8526
8537
  instruction: Define performance requirements for level systems
8527
8538
  template: |
8528
8539
  **Entity Limits:**
8529
-
8540
+
8530
8541
  - Maximum active entities: {{entity_limit}}
8531
8542
  - Maximum particles: {{particle_limit}}
8532
8543
  - Maximum audio sources: {{audio_limit}}
8533
-
8544
+
8534
8545
  **Memory Management:**
8535
-
8546
+
8536
8547
  - Texture memory budget: {{texture_memory}}MB
8537
8548
  - Audio memory budget: {{audio_memory}}MB
8538
8549
  - Level loading time: <{{load_time}}s
8539
-
8550
+
8540
8551
  **Culling and LOD:**
8541
-
8552
+
8542
8553
  - Off-screen culling: {{culling_distance}}
8543
8554
  - Level-of-detail rules: {{lod_system}}
8544
8555
  - Asset streaming: {{streaming_requirements}}
@@ -8551,13 +8562,13 @@ sections:
8551
8562
  title: Automated Testing
8552
8563
  template: |
8553
8564
  **Performance Testing:**
8554
-
8565
+
8555
8566
  - Frame rate validation: Maintain {{fps_target}} FPS
8556
8567
  - Memory usage monitoring: Stay under {{memory_limit}}MB
8557
8568
  - Loading time verification: Complete in <{{load_time}}s
8558
-
8569
+
8559
8570
  **Gameplay Testing:**
8560
-
8571
+
8561
8572
  - Completion path validation: All objectives achievable
8562
8573
  - Collectible accessibility: All items reachable
8563
8574
  - Softlock prevention: No unwinnable states
@@ -8585,14 +8596,14 @@ sections:
8585
8596
  title: Balance Validation
8586
8597
  template: |
8587
8598
  **Metrics Collection:**
8588
-
8599
+
8589
8600
  - Completion rate: Target {{completion_percentage}}%
8590
8601
  - Average completion time: {{target_time}} ± {{variance}}
8591
8602
  - Death count per level: <{{max_deaths}}
8592
8603
  - Collectible discovery rate: {{discovery_percentage}}%
8593
-
8604
+
8594
8605
  **Iteration Guidelines:**
8595
-
8606
+
8596
8607
  - Adjustment criteria: {{criteria_for_changes}}
8597
8608
  - Testing sample size: {{minimum_testers}}
8598
8609
  - Validation period: {{testing_duration}}
@@ -8605,14 +8616,14 @@ sections:
8605
8616
  title: Design Phase
8606
8617
  template: |
8607
8618
  **Concept Development:**
8608
-
8619
+
8609
8620
  1. Define level purpose and goals
8610
8621
  2. Create rough layout sketch
8611
8622
  3. Identify key mechanics and challenges
8612
8623
  4. Estimate difficulty and duration
8613
-
8624
+
8614
8625
  **Documentation Requirements:**
8615
-
8626
+
8616
8627
  - Level design brief
8617
8628
  - Layout diagrams
8618
8629
  - Mechanic integration notes
@@ -8621,15 +8632,15 @@ sections:
8621
8632
  title: Implementation Phase
8622
8633
  template: |
8623
8634
  **Technical Implementation:**
8624
-
8635
+
8625
8636
  1. Create level data file
8626
8637
  2. Build tilemap and layout
8627
8638
  3. Place entities and objects
8628
8639
  4. Configure level logic and triggers
8629
8640
  5. Integrate audio and visual effects
8630
-
8641
+
8631
8642
  **Quality Assurance:**
8632
-
8643
+
8633
8644
  1. Automated testing execution
8634
8645
  2. Internal playtesting
8635
8646
  3. Performance validation
@@ -8638,14 +8649,14 @@ sections:
8638
8649
  title: Integration Phase
8639
8650
  template: |
8640
8651
  **Game Integration:**
8641
-
8652
+
8642
8653
  1. Level progression integration
8643
8654
  2. Save system compatibility
8644
8655
  3. Analytics integration
8645
8656
  4. Achievement system integration
8646
-
8657
+
8647
8658
  **Final Validation:**
8648
-
8659
+
8649
8660
  1. Full game context testing
8650
8661
  2. Performance regression testing
8651
8662
  3. Platform compatibility verification
@@ -9693,21 +9704,21 @@ workflow:
9693
9704
  - brainstorming_session
9694
9705
  - game_research_prompt
9695
9706
  - player_research
9696
- notes: 'Start with brainstorming game concepts, then create comprehensive game brief. SAVE OUTPUT: Copy final game-brief.md to your project''s docs/design/ folder.'
9707
+ notes: "Start with brainstorming game concepts, then create comprehensive game brief. SAVE OUTPUT: Copy final game-brief.md to your project's docs/design/ folder."
9697
9708
  - agent: game-designer
9698
9709
  creates: game-design-doc.md
9699
9710
  requires: game-brief.md
9700
9711
  optional_steps:
9701
9712
  - competitive_analysis
9702
9713
  - technical_research
9703
- notes: 'Create detailed Game Design Document using game-design-doc-tmpl. Defines all gameplay mechanics, progression, and technical requirements. SAVE OUTPUT: Copy final game-design-doc.md to your project''s docs/design/ folder.'
9714
+ notes: "Create detailed Game Design Document using game-design-doc-tmpl. Defines all gameplay mechanics, progression, and technical requirements. SAVE OUTPUT: Copy final game-design-doc.md to your project's docs/design/ folder."
9704
9715
  - agent: game-designer
9705
9716
  creates: level-design-doc.md
9706
9717
  requires: game-design-doc.md
9707
9718
  optional_steps:
9708
9719
  - level_prototyping
9709
9720
  - difficulty_analysis
9710
- notes: 'Create level design framework using level-design-doc-tmpl. Establishes content creation guidelines and performance requirements. SAVE OUTPUT: Copy final level-design-doc.md to your project''s docs/design/ folder.'
9721
+ notes: "Create level design framework using level-design-doc-tmpl. Establishes content creation guidelines and performance requirements. SAVE OUTPUT: Copy final level-design-doc.md to your project's docs/design/ folder."
9711
9722
  - agent: solution-architect
9712
9723
  creates: game-architecture.md
9713
9724
  requires:
@@ -9717,7 +9728,7 @@ workflow:
9717
9728
  - technical_research_prompt
9718
9729
  - performance_analysis
9719
9730
  - platform_research
9720
- notes: 'Create comprehensive technical architecture using game-architecture-tmpl. Defines Phaser 3 systems, performance optimization, and code structure. SAVE OUTPUT: Copy final game-architecture.md to your project''s docs/architecture/ folder.'
9731
+ notes: "Create comprehensive technical architecture using game-architecture-tmpl. Defines Phaser 3 systems, performance optimization, and code structure. SAVE OUTPUT: Copy final game-architecture.md to your project's docs/architecture/ folder."
9721
9732
  - agent: game-designer
9722
9733
  validates: design_consistency
9723
9734
  requires: all_design_documents
@@ -9742,7 +9753,7 @@ workflow:
9742
9753
  optional_steps:
9743
9754
  - quick_brainstorming
9744
9755
  - concept_validation
9745
- notes: 'Create focused game brief for prototype. Emphasize core mechanics and immediate playability. SAVE OUTPUT: Copy final game-brief.md to your project''s docs/ folder.'
9756
+ notes: "Create focused game brief for prototype. Emphasize core mechanics and immediate playability. SAVE OUTPUT: Copy final game-brief.md to your project's docs/ folder."
9746
9757
  - agent: game-designer
9747
9758
  creates: prototype-design.md
9748
9759
  uses: create-doc prototype-design OR create-game-story
@@ -9906,7 +9917,7 @@ workflow:
9906
9917
  notes: Implement stories in priority order. Test frequently and adjust design based on what feels fun. Document discoveries.
9907
9918
  workflow_end:
9908
9919
  action: prototype_evaluation
9909
- notes: 'Prototype complete. Evaluate core mechanics, gather feedback, and decide next steps: iterate, expand, or archive.'
9920
+ notes: "Prototype complete. Evaluate core mechanics, gather feedback, and decide next steps: iterate, expand, or archive."
9910
9921
  game_jam_sequence:
9911
9922
  - step: jam_concept
9912
9923
  agent: game-designer
@@ -10366,7 +10377,7 @@ interface GameState {
10366
10377
  interface GameSettings {
10367
10378
  musicVolume: number;
10368
10379
  sfxVolume: number;
10369
- difficulty: "easy" | "normal" | "hard";
10380
+ difficulty: 'easy' | 'normal' | 'hard';
10370
10381
  controls: ControlScheme;
10371
10382
  }
10372
10383
  ```
@@ -10407,12 +10418,12 @@ class GameScene extends Phaser.Scene {
10407
10418
  private inputManager!: InputManager;
10408
10419
 
10409
10420
  constructor() {
10410
- super({ key: "GameScene" });
10421
+ super({ key: 'GameScene' });
10411
10422
  }
10412
10423
 
10413
10424
  preload(): void {
10414
10425
  // Load only scene-specific assets
10415
- this.load.image("player", "assets/player.png");
10426
+ this.load.image('player', 'assets/player.png');
10416
10427
  }
10417
10428
 
10418
10429
  create(data: SceneData): void {
@@ -10437,7 +10448,7 @@ class GameScene extends Phaser.Scene {
10437
10448
  this.inputManager.destroy();
10438
10449
 
10439
10450
  // Remove event listeners
10440
- this.events.off("*");
10451
+ this.events.off('*');
10441
10452
  }
10442
10453
  }
10443
10454
  ```
@@ -10446,13 +10457,13 @@ class GameScene extends Phaser.Scene {
10446
10457
 
10447
10458
  ```typescript
10448
10459
  // Proper scene transitions with data
10449
- this.scene.start("NextScene", {
10460
+ this.scene.start('NextScene', {
10450
10461
  playerScore: this.playerScore,
10451
10462
  currentLevel: this.currentLevel + 1,
10452
10463
  });
10453
10464
 
10454
10465
  // Scene overlays for UI
10455
- this.scene.launch("PauseMenuScene");
10466
+ this.scene.launch('PauseMenuScene');
10456
10467
  this.scene.pause();
10457
10468
  ```
10458
10469
 
@@ -10496,7 +10507,7 @@ class Player extends GameEntity {
10496
10507
  private health!: HealthComponent;
10497
10508
 
10498
10509
  constructor(scene: Phaser.Scene, x: number, y: number) {
10499
- super(scene, x, y, "player");
10510
+ super(scene, x, y, 'player');
10500
10511
 
10501
10512
  this.movement = this.addComponent(new MovementComponent(this));
10502
10513
  this.health = this.addComponent(new HealthComponent(this, 100));
@@ -10516,7 +10527,7 @@ class GameManager {
10516
10527
 
10517
10528
  constructor(scene: Phaser.Scene) {
10518
10529
  if (GameManager.instance) {
10519
- throw new Error("GameManager already exists!");
10530
+ throw new Error('GameManager already exists!');
10520
10531
  }
10521
10532
 
10522
10533
  this.scene = scene;
@@ -10526,7 +10537,7 @@ class GameManager {
10526
10537
 
10527
10538
  static getInstance(): GameManager {
10528
10539
  if (!GameManager.instance) {
10529
- throw new Error("GameManager not initialized!");
10540
+ throw new Error('GameManager not initialized!');
10530
10541
  }
10531
10542
  return GameManager.instance;
10532
10543
  }
@@ -10573,7 +10584,7 @@ class BulletPool {
10573
10584
  }
10574
10585
 
10575
10586
  // Pool exhausted - create new bullet
10576
- console.warn("Bullet pool exhausted, creating new bullet");
10587
+ console.warn('Bullet pool exhausted, creating new bullet');
10577
10588
  return new Bullet(this.scene, 0, 0);
10578
10589
  }
10579
10590
 
@@ -10673,14 +10684,12 @@ class InputManager {
10673
10684
  }
10674
10685
 
10675
10686
  private setupKeyboard(): void {
10676
- this.keys = this.scene.input.keyboard.addKeys(
10677
- "W,A,S,D,SPACE,ESC,UP,DOWN,LEFT,RIGHT",
10678
- );
10687
+ this.keys = this.scene.input.keyboard.addKeys('W,A,S,D,SPACE,ESC,UP,DOWN,LEFT,RIGHT');
10679
10688
  }
10680
10689
 
10681
10690
  private setupTouch(): void {
10682
- this.scene.input.on("pointerdown", this.handlePointerDown, this);
10683
- this.scene.input.on("pointerup", this.handlePointerUp, this);
10691
+ this.scene.input.on('pointerdown', this.handlePointerDown, this);
10692
+ this.scene.input.on('pointerup', this.handlePointerUp, this);
10684
10693
  }
10685
10694
 
10686
10695
  update(): void {
@@ -10707,9 +10716,9 @@ class InputManager {
10707
10716
  class AssetManager {
10708
10717
  loadAssets(): Promise<void> {
10709
10718
  return new Promise((resolve, reject) => {
10710
- this.scene.load.on("filecomplete", this.handleFileComplete, this);
10711
- this.scene.load.on("loaderror", this.handleLoadError, this);
10712
- this.scene.load.on("complete", () => resolve());
10719
+ this.scene.load.on('filecomplete', this.handleFileComplete, this);
10720
+ this.scene.load.on('loaderror', this.handleLoadError, this);
10721
+ this.scene.load.on('complete', () => resolve());
10713
10722
 
10714
10723
  this.scene.load.start();
10715
10724
  });
@@ -10725,8 +10734,8 @@ class AssetManager {
10725
10734
  private loadFallbackAsset(key: string): void {
10726
10735
  // Load placeholder or default assets
10727
10736
  switch (key) {
10728
- case "player":
10729
- this.scene.load.image("player", "assets/defaults/default-player.png");
10737
+ case 'player':
10738
+ this.scene.load.image('player', 'assets/defaults/default-player.png');
10730
10739
  break;
10731
10740
  default:
10732
10741
  console.warn(`No fallback for asset: ${key}`);
@@ -10753,11 +10762,11 @@ class GameSystem {
10753
10762
 
10754
10763
  private attemptRecovery(context: string): void {
10755
10764
  switch (context) {
10756
- case "update":
10765
+ case 'update':
10757
10766
  // Reset system state
10758
10767
  this.reset();
10759
10768
  break;
10760
- case "render":
10769
+ case 'render':
10761
10770
  // Disable visual effects
10762
10771
  this.disableEffects();
10763
10772
  break;
@@ -10777,7 +10786,7 @@ class GameSystem {
10777
10786
 
10778
10787
  ```typescript
10779
10788
  // Example test for game mechanics
10780
- describe("HealthComponent", () => {
10789
+ describe('HealthComponent', () => {
10781
10790
  let healthComponent: HealthComponent;
10782
10791
 
10783
10792
  beforeEach(() => {
@@ -10785,18 +10794,18 @@ describe("HealthComponent", () => {
10785
10794
  healthComponent = new HealthComponent(mockEntity, 100);
10786
10795
  });
10787
10796
 
10788
- test("should initialize with correct health", () => {
10797
+ test('should initialize with correct health', () => {
10789
10798
  expect(healthComponent.currentHealth).toBe(100);
10790
10799
  expect(healthComponent.maxHealth).toBe(100);
10791
10800
  });
10792
10801
 
10793
- test("should handle damage correctly", () => {
10802
+ test('should handle damage correctly', () => {
10794
10803
  healthComponent.takeDamage(25);
10795
10804
  expect(healthComponent.currentHealth).toBe(75);
10796
10805
  expect(healthComponent.isAlive()).toBe(true);
10797
10806
  });
10798
10807
 
10799
- test("should handle death correctly", () => {
10808
+ test('should handle death correctly', () => {
10800
10809
  healthComponent.takeDamage(150);
10801
10810
  expect(healthComponent.currentHealth).toBe(0);
10802
10811
  expect(healthComponent.isAlive()).toBe(false);
@@ -10809,7 +10818,7 @@ describe("HealthComponent", () => {
10809
10818
  **Scene Testing:**
10810
10819
 
10811
10820
  ```typescript
10812
- describe("GameScene Integration", () => {
10821
+ describe('GameScene Integration', () => {
10813
10822
  let scene: GameScene;
10814
10823
  let mockGame: Phaser.Game;
10815
10824
 
@@ -10819,7 +10828,7 @@ describe("GameScene Integration", () => {
10819
10828
  scene = new GameScene();
10820
10829
  });
10821
10830
 
10822
- test("should initialize all systems", () => {
10831
+ test('should initialize all systems', () => {
10823
10832
  scene.create({});
10824
10833
 
10825
10834
  expect(scene.gameManager).toBeDefined();