bmad-method 4.9.0 → 4.9.2
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.
- package/CHANGELOG.md +14 -0
- package/bmad-core/tasks/shard-doc.md +1 -1
- package/bmad-core/templates/architecture-tmpl.md +2 -2
- package/bmad-core/templates/brownfield-architecture-tmpl.md +2 -2
- package/bmad-core/templates/front-end-spec-tmpl.md +1 -1
- package/bmad-core/utils/workflow-management.md +5 -5
- package/bmad-core/workflows/brownfield-service.yml +1 -1
- package/dist/agents/architect.txt +4 -4
- package/dist/agents/bmad-master.txt +11 -11
- package/dist/agents/bmad-orchestrator.txt +5 -5
- package/dist/agents/dev.txt +9 -17
- package/dist/agents/pm.txt +1 -1
- package/dist/agents/po.txt +1 -1
- package/dist/agents/ux-expert.txt +1 -1
- package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.txt +144 -18
- package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.txt +139 -95
- package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.txt +39 -0
- package/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +310 -118
- package/dist/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.txt +16 -16
- package/dist/expansion-packs/expansion-creator/agents/bmad-the-creator.txt +25 -27
- package/dist/teams/team-all.txt +20 -28
- package/dist/teams/team-fullstack.txt +11 -11
- package/dist/teams/team-ide-minimal.txt +15 -23
- package/dist/teams/team-no-ui.txt +10 -10
- package/docs/core-architecture.md +5 -3
- package/docs/how-to-contribute-with-pull-requests.md +6 -6
- package/docs/user-guide.md +51 -66
- package/expansion-packs/bmad-2d-phaser-game-dev/data/development-guidelines.md +107 -87
- package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-architecture-tmpl.md +4 -4
- package/expansion-packs/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.md +21 -2
- package/expansion-packs/bmad-infrastructure-devops/README.md +5 -5
- package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.md +0 -0
- package/expansion-packs/expansion-creator/tasks/create-agent.md +10 -10
- package/expansion-packs/expansion-creator/tasks/generate-expansion-pack.md +2 -4
- package/expansion-packs/expansion-creator/templates/agent-teams-tmpl.md +6 -6
- package/expansion-packs/expansion-creator/templates/agent-tmpl.md +15 -15
- package/expansion-packs/expansion-creator/utils/workflow-management.md +8 -8
- package/package.json +1 -1
- package/tools/installer/README.md +3 -3
- package/tools/installer/package.json +1 -1
|
@@ -1147,6 +1147,7 @@ This elicitation task is specifically designed for game development and should b
|
|
|
1147
1147
|
- **Platform Considerations**: When adapting designs for different devices and input methods
|
|
1148
1148
|
|
|
1149
1149
|
The questions and perspectives offered should always consider:
|
|
1150
|
+
|
|
1150
1151
|
- Player psychology and motivation
|
|
1151
1152
|
- Technical feasibility with Phaser 3 and TypeScript
|
|
1152
1153
|
- Performance implications for 60 FPS targets
|
|
@@ -2283,7 +2284,7 @@ Available workflows for [Team Name]:
|
|
|
2283
2284
|
[... etc. ...]
|
|
2284
2285
|
|
|
2285
2286
|
Use /workflow-start {number or id} to begin a workflow.
|
|
2286
|
-
```
|
|
2287
|
+
```
|
|
2287
2288
|
|
|
2288
2289
|
### /workflow-start {workflow-id}
|
|
2289
2290
|
|
|
@@ -2309,7 +2310,7 @@ In Progress:
|
|
|
2309
2310
|
- Create PRD (John) - awaiting input
|
|
2310
2311
|
|
|
2311
2312
|
Next: Technical Architecture
|
|
2312
|
-
```
|
|
2313
|
+
```
|
|
2313
2314
|
|
|
2314
2315
|
### /workflow-resume
|
|
2315
2316
|
|
|
@@ -2325,7 +2326,7 @@ BMad: I see you've completed Discovery and part of Product Planning.
|
|
|
2325
2326
|
- UX Strategy with Sally (ux-expert)
|
|
2326
2327
|
|
|
2327
2328
|
Would you like me to load Sally to continue?
|
|
2328
|
-
```
|
|
2329
|
+
```
|
|
2329
2330
|
|
|
2330
2331
|
### /workflow-next
|
|
2331
2332
|
|
|
@@ -2395,7 +2396,7 @@ BMad: I see you have a PRD and architecture document. Based on these artifacts,
|
|
|
2395
2396
|
- Load Sarah (Product Owner) to validate all artifacts
|
|
2396
2397
|
|
|
2397
2398
|
Would you like to continue with this workflow?
|
|
2398
|
-
```
|
|
2399
|
+
```
|
|
2399
2400
|
|
|
2400
2401
|
## Workflow Context Passing
|
|
2401
2402
|
|
|
@@ -2421,7 +2422,7 @@ Sally: I see we're in the Product Planning stage of the greenfield-fullstack wor
|
|
|
2421
2422
|
|
|
2422
2423
|
Let's create the UX strategy and UI specifications. First, let me review
|
|
2423
2424
|
the PRD to understand the features we're designing for...
|
|
2424
|
-
```
|
|
2425
|
+
```
|
|
2425
2426
|
|
|
2426
2427
|
## Multi-Path Workflows
|
|
2427
2428
|
|
|
@@ -2571,6 +2572,7 @@ This task provides a comprehensive toolkit of creative brainstorming techniques
|
|
|
2571
2572
|
[[LLM: Begin by understanding the game design context and goals. Ask clarifying questions if needed to determine the best approach for game-specific ideation.]]
|
|
2572
2573
|
|
|
2573
2574
|
1. **Establish Game Context**
|
|
2575
|
+
|
|
2574
2576
|
- Understand the game genre or opportunity area
|
|
2575
2577
|
- Identify target audience and platform constraints
|
|
2576
2578
|
- Determine session goals (concept exploration vs. mechanic refinement)
|
|
@@ -2726,26 +2728,31 @@ This task provides a comprehensive toolkit of creative brainstorming techniques
|
|
|
2726
2728
|
[[LLM: Help user select appropriate techniques based on their specific game design needs.]]
|
|
2727
2729
|
|
|
2728
2730
|
**For Initial Game Concepts:**
|
|
2731
|
+
|
|
2729
2732
|
- What If Game Scenarios
|
|
2730
2733
|
- Cross-Genre Fusion
|
|
2731
2734
|
- Emotion-First Design
|
|
2732
2735
|
|
|
2733
2736
|
**For Stuck/Blocked Creativity:**
|
|
2737
|
+
|
|
2734
2738
|
- Player Motivation Reversal
|
|
2735
2739
|
- Constraint-Based Creativity
|
|
2736
2740
|
- Genre Expectation Subversion
|
|
2737
2741
|
|
|
2738
2742
|
**For Mechanic Development:**
|
|
2743
|
+
|
|
2739
2744
|
- SCAMPER for Game Mechanics
|
|
2740
2745
|
- Core Loop Deconstruction
|
|
2741
2746
|
- Player Agency Spectrum
|
|
2742
2747
|
|
|
2743
2748
|
**For Player Experience:**
|
|
2749
|
+
|
|
2744
2750
|
- Player Archetype Brainstorming
|
|
2745
2751
|
- Emotion-First Design
|
|
2746
2752
|
- Accessibility-First Innovation
|
|
2747
2753
|
|
|
2748
2754
|
**For World Building:**
|
|
2755
|
+
|
|
2749
2756
|
- Environmental Storytelling
|
|
2750
2757
|
- Player-Generated Narrative
|
|
2751
2758
|
- Platform-Specific Design
|
|
@@ -2755,16 +2762,19 @@ This task provides a comprehensive toolkit of creative brainstorming techniques
|
|
|
2755
2762
|
[[LLM: Guide the brainstorming session with appropriate pacing for game design exploration.]]
|
|
2756
2763
|
|
|
2757
2764
|
1. **Inspiration Phase** (10-15 min)
|
|
2765
|
+
|
|
2758
2766
|
- Reference existing games and mechanics
|
|
2759
2767
|
- Explore player experiences and emotions
|
|
2760
2768
|
- Gather visual and thematic inspiration
|
|
2761
2769
|
|
|
2762
2770
|
2. **Divergent Exploration** (25-35 min)
|
|
2771
|
+
|
|
2763
2772
|
- Generate many game concepts or mechanics
|
|
2764
2773
|
- Use expansion and fusion techniques
|
|
2765
2774
|
- Encourage wild and impossible ideas
|
|
2766
2775
|
|
|
2767
2776
|
3. **Player-Centered Filtering** (15-20 min)
|
|
2777
|
+
|
|
2768
2778
|
- Consider target audience reactions
|
|
2769
2779
|
- Evaluate emotional impact and engagement
|
|
2770
2780
|
- Group ideas by player experience goals
|
|
@@ -2779,6 +2789,7 @@ This task provides a comprehensive toolkit of creative brainstorming techniques
|
|
|
2779
2789
|
[[LLM: Present brainstorming results in a format useful for game development.]]
|
|
2780
2790
|
|
|
2781
2791
|
**Session Summary:**
|
|
2792
|
+
|
|
2782
2793
|
- Techniques used and focus areas
|
|
2783
2794
|
- Total concepts/mechanics generated
|
|
2784
2795
|
- Key themes and patterns identified
|
|
@@ -2794,21 +2805,25 @@ This task provides a comprehensive toolkit of creative brainstorming techniques
|
|
|
2794
2805
|
**Development Readiness:**
|
|
2795
2806
|
|
|
2796
2807
|
**Prototype-Ready Ideas:**
|
|
2808
|
+
|
|
2797
2809
|
- Ideas that can be tested immediately
|
|
2798
2810
|
- Minimum viable implementations
|
|
2799
2811
|
- Quick validation approaches
|
|
2800
2812
|
|
|
2801
2813
|
**Research-Required Ideas:**
|
|
2814
|
+
|
|
2802
2815
|
- Concepts needing technical investigation
|
|
2803
2816
|
- Player testing and market research needs
|
|
2804
2817
|
- Competitive analysis requirements
|
|
2805
2818
|
|
|
2806
2819
|
**Future Innovation Pipeline:**
|
|
2820
|
+
|
|
2807
2821
|
- Ideas requiring significant development
|
|
2808
2822
|
- Technology-dependent concepts
|
|
2809
2823
|
- Market timing considerations
|
|
2810
2824
|
|
|
2811
2825
|
**Next Steps:**
|
|
2826
|
+
|
|
2812
2827
|
- Which concepts to prototype first
|
|
2813
2828
|
- Recommended research areas
|
|
2814
2829
|
- Suggested playtesting approaches
|
|
@@ -2817,24 +2832,28 @@ This task provides a comprehensive toolkit of creative brainstorming techniques
|
|
|
2817
2832
|
## Game Design Specific Considerations
|
|
2818
2833
|
|
|
2819
2834
|
### Platform and Audience Awareness
|
|
2835
|
+
|
|
2820
2836
|
- Always consider target platform limitations and advantages
|
|
2821
2837
|
- Keep target audience preferences and expectations in mind
|
|
2822
2838
|
- Balance innovation with familiar game design patterns
|
|
2823
2839
|
- Consider monetization and business model implications
|
|
2824
2840
|
|
|
2825
2841
|
### Rapid Prototyping Mindset
|
|
2842
|
+
|
|
2826
2843
|
- Focus on ideas that can be quickly tested
|
|
2827
2844
|
- Emphasize core mechanics over complex features
|
|
2828
2845
|
- Design for iteration and player feedback
|
|
2829
2846
|
- Consider digital and paper prototyping approaches
|
|
2830
2847
|
|
|
2831
2848
|
### Player Psychology Integration
|
|
2849
|
+
|
|
2832
2850
|
- Understand motivation and engagement drivers
|
|
2833
2851
|
- Consider learning curves and skill development
|
|
2834
2852
|
- Design for different play session lengths
|
|
2835
2853
|
- Balance challenge and reward appropriately
|
|
2836
2854
|
|
|
2837
2855
|
### Technical Feasibility
|
|
2856
|
+
|
|
2838
2857
|
- Keep development resources and timeline in mind
|
|
2839
2858
|
- Consider art and audio asset requirements
|
|
2840
2859
|
- Think about performance and optimization needs
|
|
@@ -2908,6 +2927,7 @@ If available, review any provided documents or ask if any are optionally availab
|
|
|
2908
2927
|
[[LLM: Define the 30-60 second loop that players will repeat. Be specific about timing and player actions.]]
|
|
2909
2928
|
|
|
2910
2929
|
**Primary Loop ({{duration}} seconds):**
|
|
2930
|
+
|
|
2911
2931
|
1. {{action_1}} ({{time_1}}s)
|
|
2912
2932
|
2. {{action_2}} ({{time_2}}s)
|
|
2913
2933
|
3. {{action_3}} ({{time_3}}s)
|
|
@@ -2918,10 +2938,12 @@ If available, review any provided documents or ask if any are optionally availab
|
|
|
2918
2938
|
[[LLM: Clearly define success and failure states]]
|
|
2919
2939
|
|
|
2920
2940
|
**Victory Conditions:**
|
|
2941
|
+
|
|
2921
2942
|
- {{win_condition_1}}
|
|
2922
2943
|
- {{win_condition_2}}
|
|
2923
2944
|
|
|
2924
2945
|
**Failure States:**
|
|
2946
|
+
|
|
2925
2947
|
- {{loss_condition_1}}
|
|
2926
2948
|
- {{loss_condition_2}}
|
|
2927
2949
|
|
|
@@ -2942,6 +2964,7 @@ If available, review any provided documents or ask if any are optionally availab
|
|
|
2942
2964
|
**System Response:** {{game_response}}
|
|
2943
2965
|
|
|
2944
2966
|
**Implementation Notes:**
|
|
2967
|
+
|
|
2945
2968
|
- {{tech_requirement_1}}
|
|
2946
2969
|
- {{tech_requirement_2}}
|
|
2947
2970
|
- {{performance_consideration}}
|
|
@@ -2954,8 +2977,8 @@ If available, review any provided documents or ask if any are optionally availab
|
|
|
2954
2977
|
|
|
2955
2978
|
[[LLM: Define all input methods for different platforms]]
|
|
2956
2979
|
|
|
2957
|
-
| Action
|
|
2958
|
-
|
|
2980
|
+
| Action | Desktop | Mobile | Gamepad |
|
|
2981
|
+
| ------------ | ------- | ----------- | ---------- |
|
|
2959
2982
|
| {{action_1}} | {{key}} | {{gesture}} | {{button}} |
|
|
2960
2983
|
| {{action_2}} | {{key}} | {{gesture}} | {{button}} |
|
|
2961
2984
|
|
|
@@ -2968,6 +2991,7 @@ If available, review any provided documents or ask if any are optionally availab
|
|
|
2968
2991
|
**Progression Type:** {{linear|branching|metroidvania}}
|
|
2969
2992
|
|
|
2970
2993
|
**Key Milestones:**
|
|
2994
|
+
|
|
2971
2995
|
1. **{{milestone_1}}** - {{unlock_description}}
|
|
2972
2996
|
2. **{{milestone_2}}** - {{unlock_description}}
|
|
2973
2997
|
3. **{{milestone_3}}** - {{unlock_description}}
|
|
@@ -2987,9 +3011,9 @@ If available, review any provided documents or ask if any are optionally availab
|
|
|
2987
3011
|
|
|
2988
3012
|
[[LLM: Define any in-game currencies, resources, or collectibles]]
|
|
2989
3013
|
|
|
2990
|
-
| Resource
|
|
2991
|
-
|
|
2992
|
-
| {{resource_1}} | {{rate}}
|
|
3014
|
+
| Resource | Earn Rate | Spend Rate | Purpose | Cap |
|
|
3015
|
+
| -------------- | --------- | ---------- | ------- | ------- |
|
|
3016
|
+
| {{resource_1}} | {{rate}} | {{rate}} | {{use}} | {{max}} |
|
|
2993
3017
|
|
|
2994
3018
|
^^/CONDITION: has_economy^^
|
|
2995
3019
|
|
|
@@ -3009,6 +3033,7 @@ If available, review any provided documents or ask if any are optionally availab
|
|
|
3009
3033
|
**Difficulty:** {{relative_difficulty}}
|
|
3010
3034
|
|
|
3011
3035
|
**Structure Template:**
|
|
3036
|
+
|
|
3012
3037
|
- Introduction: {{intro_description}}
|
|
3013
3038
|
- Challenge: {{main_challenge}}
|
|
3014
3039
|
- Resolution: {{completion_requirement}}
|
|
@@ -3035,11 +3060,13 @@ If available, review any provided documents or ask if any are optionally availab
|
|
|
3035
3060
|
### Platform Specific
|
|
3036
3061
|
|
|
3037
3062
|
**Desktop:**
|
|
3063
|
+
|
|
3038
3064
|
- Resolution: {{min_resolution}} - {{max_resolution}}
|
|
3039
3065
|
- Input: Keyboard, Mouse, Gamepad
|
|
3040
3066
|
- Browser: Chrome 80+, Firefox 75+, Safari 13+
|
|
3041
3067
|
|
|
3042
3068
|
**Mobile:**
|
|
3069
|
+
|
|
3043
3070
|
- Resolution: {{mobile_min}} - {{mobile_max}}
|
|
3044
3071
|
- Input: Touch, Tilt (optional)
|
|
3045
3072
|
- OS: iOS 13+, Android 8+
|
|
@@ -3049,12 +3076,14 @@ If available, review any provided documents or ask if any are optionally availab
|
|
|
3049
3076
|
[[LLM: Define asset specifications for the art and audio teams]]
|
|
3050
3077
|
|
|
3051
3078
|
**Visual Assets:**
|
|
3079
|
+
|
|
3052
3080
|
- Art Style: {{style_description}}
|
|
3053
3081
|
- Color Palette: {{color_specification}}
|
|
3054
3082
|
- Animation: {{animation_requirements}}
|
|
3055
3083
|
- UI Resolution: {{ui_specs}}
|
|
3056
3084
|
|
|
3057
3085
|
**Audio Assets:**
|
|
3086
|
+
|
|
3058
3087
|
- Music Style: {{music_genre}}
|
|
3059
3088
|
- Sound Effects: {{sfx_requirements}}
|
|
3060
3089
|
- Voice Acting: {{voice_needs}}
|
|
@@ -3066,6 +3095,7 @@ If available, review any provided documents or ask if any are optionally availab
|
|
|
3066
3095
|
### Engine Configuration
|
|
3067
3096
|
|
|
3068
3097
|
**Phaser 3 Setup:**
|
|
3098
|
+
|
|
3069
3099
|
- TypeScript: Strict mode enabled
|
|
3070
3100
|
- Physics: {{physics_system}} (Arcade/Matter)
|
|
3071
3101
|
- Renderer: WebGL with Canvas fallback
|
|
@@ -3074,6 +3104,7 @@ If available, review any provided documents or ask if any are optionally availab
|
|
|
3074
3104
|
### Code Architecture
|
|
3075
3105
|
|
|
3076
3106
|
**Required Systems:**
|
|
3107
|
+
|
|
3077
3108
|
- Scene Management
|
|
3078
3109
|
- State Management
|
|
3079
3110
|
- Asset Loading
|
|
@@ -3085,6 +3116,7 @@ If available, review any provided documents or ask if any are optionally availab
|
|
|
3085
3116
|
### Data Management
|
|
3086
3117
|
|
|
3087
3118
|
**Save Data:**
|
|
3119
|
+
|
|
3088
3120
|
- Progress tracking
|
|
3089
3121
|
- Settings persistence
|
|
3090
3122
|
- Statistics collection
|
|
@@ -3097,12 +3129,14 @@ If available, review any provided documents or ask if any are optionally availab
|
|
|
3097
3129
|
### Phase 1: Core Systems ({{duration}})
|
|
3098
3130
|
|
|
3099
3131
|
**Epic: Foundation**
|
|
3132
|
+
|
|
3100
3133
|
- Engine setup and configuration
|
|
3101
3134
|
- Basic scene management
|
|
3102
3135
|
- Core input handling
|
|
3103
3136
|
- Asset loading pipeline
|
|
3104
3137
|
|
|
3105
3138
|
**Epic: Core Mechanics**
|
|
3139
|
+
|
|
3106
3140
|
- {{primary_mechanic}} implementation
|
|
3107
3141
|
- Basic physics and collision
|
|
3108
3142
|
- Player controller
|
|
@@ -3110,11 +3144,13 @@ If available, review any provided documents or ask if any are optionally availab
|
|
|
3110
3144
|
### Phase 2: Gameplay Features ({{duration}})
|
|
3111
3145
|
|
|
3112
3146
|
**Epic: Game Systems**
|
|
3147
|
+
|
|
3113
3148
|
- {{mechanic_2}} implementation
|
|
3114
3149
|
- {{mechanic_3}} implementation
|
|
3115
3150
|
- Game state management
|
|
3116
3151
|
|
|
3117
3152
|
**Epic: Content Creation**
|
|
3153
|
+
|
|
3118
3154
|
- Level loading system
|
|
3119
3155
|
- First playable levels
|
|
3120
3156
|
- Basic UI implementation
|
|
@@ -3122,11 +3158,13 @@ If available, review any provided documents or ask if any are optionally availab
|
|
|
3122
3158
|
### Phase 3: Polish & Optimization ({{duration}})
|
|
3123
3159
|
|
|
3124
3160
|
**Epic: Performance**
|
|
3161
|
+
|
|
3125
3162
|
- Optimization and profiling
|
|
3126
3163
|
- Mobile platform testing
|
|
3127
3164
|
- Memory management
|
|
3128
3165
|
|
|
3129
3166
|
**Epic: User Experience**
|
|
3167
|
+
|
|
3130
3168
|
- Audio implementation
|
|
3131
3169
|
- Visual effects and polish
|
|
3132
3170
|
- Final UI/UX refinement
|
|
@@ -3136,12 +3174,14 @@ If available, review any provided documents or ask if any are optionally availab
|
|
|
3136
3174
|
[[LLM: Define measurable goals for the game]]
|
|
3137
3175
|
|
|
3138
3176
|
**Technical Metrics:**
|
|
3177
|
+
|
|
3139
3178
|
- Frame rate: {{fps_target}}
|
|
3140
3179
|
- Load time: {{load_target}}
|
|
3141
3180
|
- Crash rate: <{{crash_threshold}}%
|
|
3142
3181
|
- Memory usage: <{{memory_target}}MB
|
|
3143
3182
|
|
|
3144
3183
|
**Gameplay Metrics:**
|
|
3184
|
+
|
|
3145
3185
|
- Tutorial completion: {{completion_rate}}%
|
|
3146
3186
|
- Average session: {{session_length}} minutes
|
|
3147
3187
|
- Level completion: {{level_completion}}%
|
|
@@ -3232,19 +3272,23 @@ This framework ensures consistency across all levels while providing flexibility
|
|
|
3232
3272
|
**Difficulty Range:** {{difficulty_scale}}
|
|
3233
3273
|
|
|
3234
3274
|
**Key Mechanics Featured:**
|
|
3275
|
+
|
|
3235
3276
|
- {{mechanic_1}} - {{usage_description}}
|
|
3236
3277
|
- {{mechanic_2}} - {{usage_description}}
|
|
3237
3278
|
|
|
3238
3279
|
**Player Objectives:**
|
|
3280
|
+
|
|
3239
3281
|
- Primary: {{primary_objective}}
|
|
3240
3282
|
- Secondary: {{secondary_objective}}
|
|
3241
3283
|
- Hidden: {{secret_objective}}
|
|
3242
3284
|
|
|
3243
3285
|
**Success Criteria:**
|
|
3286
|
+
|
|
3244
3287
|
- {{completion_requirement_1}}
|
|
3245
3288
|
- {{completion_requirement_2}}
|
|
3246
3289
|
|
|
3247
3290
|
**Technical Requirements:**
|
|
3291
|
+
|
|
3248
3292
|
- Maximum entities: {{entity_limit}}
|
|
3249
3293
|
- Performance target: {{fps_target}} FPS
|
|
3250
3294
|
- Memory budget: {{memory_limit}}MB
|
|
@@ -3265,6 +3309,7 @@ This framework ensures consistency across all levels while providing flexibility
|
|
|
3265
3309
|
**Total Level Count:** {{number}}
|
|
3266
3310
|
|
|
3267
3311
|
**World Breakdown:**
|
|
3312
|
+
|
|
3268
3313
|
- World 1: {{level_count}} levels - {{theme}} - {{difficulty_range}}
|
|
3269
3314
|
- World 2: {{level_count}} levels - {{theme}} - {{difficulty_range}}
|
|
3270
3315
|
- World 3: {{level_count}} levels - {{theme}} - {{difficulty_range}}
|
|
@@ -3274,7 +3319,8 @@ This framework ensures consistency across all levels while providing flexibility
|
|
|
3274
3319
|
[[LLM: Define how challenge increases across the game]]
|
|
3275
3320
|
|
|
3276
3321
|
**Progression Curve:**
|
|
3277
|
-
|
|
3322
|
+
|
|
3323
|
+
````text
|
|
3278
3324
|
Difficulty
|
|
3279
3325
|
^ ___/```
|
|
3280
3326
|
| /
|
|
@@ -3284,9 +3330,10 @@ Difficulty
|
|
|
3284
3330
|
|/ /
|
|
3285
3331
|
+-----------> Level Number
|
|
3286
3332
|
Tutorial Early Mid Late
|
|
3287
|
-
|
|
3333
|
+
````
|
|
3288
3334
|
|
|
3289
3335
|
**Scaling Parameters:**
|
|
3336
|
+
|
|
3290
3337
|
- Enemy count: {{start_count}} → {{end_count}}
|
|
3291
3338
|
- Enemy difficulty: {{start_diff}} → {{end_diff}}
|
|
3292
3339
|
- Level complexity: {{start_complex}} → {{end_complex}}
|
|
@@ -3297,6 +3344,7 @@ Difficulty
|
|
|
3297
3344
|
[[LLM: Define how players access new levels]]
|
|
3298
3345
|
|
|
3299
3346
|
**Progression Gates:**
|
|
3347
|
+
|
|
3300
3348
|
- Linear progression: Complete previous level
|
|
3301
3349
|
- Star requirements: {{star_count}} stars to unlock
|
|
3302
3350
|
- Skill gates: Demonstrate {{skill_requirement}}
|
|
@@ -3311,14 +3359,17 @@ Difficulty
|
|
|
3311
3359
|
[[LLM: Define all environmental components that can be used in levels]]
|
|
3312
3360
|
|
|
3313
3361
|
**Terrain Types:**
|
|
3362
|
+
|
|
3314
3363
|
- {{terrain_1}}: {{properties_and_usage}}
|
|
3315
3364
|
- {{terrain_2}}: {{properties_and_usage}}
|
|
3316
3365
|
|
|
3317
3366
|
**Interactive Objects:**
|
|
3367
|
+
|
|
3318
3368
|
- {{object_1}}: {{behavior_and_purpose}}
|
|
3319
3369
|
- {{object_2}}: {{behavior_and_purpose}}
|
|
3320
3370
|
|
|
3321
3371
|
**Hazards and Obstacles:**
|
|
3372
|
+
|
|
3322
3373
|
- {{hazard_1}}: {{damage_and_behavior}}
|
|
3323
3374
|
- {{hazard_2}}: {{damage_and_behavior}}
|
|
3324
3375
|
|
|
@@ -3327,15 +3378,18 @@ Difficulty
|
|
|
3327
3378
|
[[LLM: Define all collectible items and their placement rules]]
|
|
3328
3379
|
|
|
3329
3380
|
**Collectible Types:**
|
|
3381
|
+
|
|
3330
3382
|
- {{collectible_1}}: {{value_and_purpose}}
|
|
3331
3383
|
- {{collectible_2}}: {{value_and_purpose}}
|
|
3332
3384
|
|
|
3333
3385
|
**Placement Guidelines:**
|
|
3386
|
+
|
|
3334
3387
|
- Mandatory collectibles: {{placement_rules}}
|
|
3335
3388
|
- Optional collectibles: {{placement_rules}}
|
|
3336
3389
|
- Secret collectibles: {{placement_rules}}
|
|
3337
3390
|
|
|
3338
3391
|
**Reward Distribution:**
|
|
3392
|
+
|
|
3339
3393
|
- Easy to find: {{percentage}}%
|
|
3340
3394
|
- Moderate challenge: {{percentage}}%
|
|
3341
3395
|
- High skill required: {{percentage}}%
|
|
@@ -3345,15 +3399,18 @@ Difficulty
|
|
|
3345
3399
|
[[LLM: Define how enemies should be placed and balanced in levels]]
|
|
3346
3400
|
|
|
3347
3401
|
**Enemy Categories:**
|
|
3402
|
+
|
|
3348
3403
|
- {{enemy_type_1}}: {{behavior_and_usage}}
|
|
3349
3404
|
- {{enemy_type_2}}: {{behavior_and_usage}}
|
|
3350
3405
|
|
|
3351
3406
|
**Placement Principles:**
|
|
3407
|
+
|
|
3352
3408
|
- Introduction encounters: {{guideline}}
|
|
3353
3409
|
- Standard encounters: {{guideline}}
|
|
3354
3410
|
- Challenge encounters: {{guideline}}
|
|
3355
3411
|
|
|
3356
3412
|
**Difficulty Scaling:**
|
|
3413
|
+
|
|
3357
3414
|
- Enemy count progression: {{scaling_rule}}
|
|
3358
3415
|
- Enemy type introduction: {{pacing_rule}}
|
|
3359
3416
|
- Encounter complexity: {{complexity_rule}}
|
|
@@ -3365,12 +3422,14 @@ Difficulty
|
|
|
3365
3422
|
### Level Layout Principles
|
|
3366
3423
|
|
|
3367
3424
|
**Spatial Design:**
|
|
3425
|
+
|
|
3368
3426
|
- Grid size: {{grid_dimensions}}
|
|
3369
3427
|
- Minimum path width: {{width_units}}
|
|
3370
3428
|
- Maximum vertical distance: {{height_units}}
|
|
3371
3429
|
- Safe zones placement: {{safety_guidelines}}
|
|
3372
3430
|
|
|
3373
3431
|
**Navigation Design:**
|
|
3432
|
+
|
|
3374
3433
|
- Clear path indication: {{visual_cues}}
|
|
3375
3434
|
- Landmark placement: {{landmark_rules}}
|
|
3376
3435
|
- Dead end avoidance: {{dead_end_policy}}
|
|
@@ -3381,11 +3440,13 @@ Difficulty
|
|
|
3381
3440
|
[[LLM: Define how to control the rhythm and pace of gameplay within levels]]
|
|
3382
3441
|
|
|
3383
3442
|
**Action Sequences:**
|
|
3443
|
+
|
|
3384
3444
|
- High intensity duration: {{max_duration}}
|
|
3385
3445
|
- Rest period requirement: {{min_rest_time}}
|
|
3386
3446
|
- Intensity variation: {{pacing_pattern}}
|
|
3387
3447
|
|
|
3388
3448
|
**Learning Sequences:**
|
|
3449
|
+
|
|
3389
3450
|
- New mechanic introduction: {{teaching_method}}
|
|
3390
3451
|
- Practice opportunity: {{practice_duration}}
|
|
3391
3452
|
- Skill application: {{application_context}}
|
|
@@ -3395,12 +3456,14 @@ Difficulty
|
|
|
3395
3456
|
[[LLM: Define how to create appropriate challenges for each level type]]
|
|
3396
3457
|
|
|
3397
3458
|
**Challenge Types:**
|
|
3459
|
+
|
|
3398
3460
|
- Execution challenges: {{skill_requirements}}
|
|
3399
3461
|
- Puzzle challenges: {{complexity_guidelines}}
|
|
3400
3462
|
- Time challenges: {{time_pressure_rules}}
|
|
3401
3463
|
- Resource challenges: {{resource_management}}
|
|
3402
3464
|
|
|
3403
3465
|
**Difficulty Calibration:**
|
|
3466
|
+
|
|
3404
3467
|
- Skill check frequency: {{frequency_guidelines}}
|
|
3405
3468
|
- Failure recovery: {{retry_mechanics}}
|
|
3406
3469
|
- Hint system integration: {{help_system}}
|
|
@@ -3414,11 +3477,13 @@ Difficulty
|
|
|
3414
3477
|
[[LLM: Define how level data should be structured for implementation]]
|
|
3415
3478
|
|
|
3416
3479
|
**Level File Format:**
|
|
3480
|
+
|
|
3417
3481
|
- Data format: {{json|yaml|custom}}
|
|
3418
3482
|
- File naming: `level_{{world}}_{{number}}.{{extension}}`
|
|
3419
3483
|
- Data organization: {{structure_description}}
|
|
3420
3484
|
|
|
3421
3485
|
**Required Data Fields:**
|
|
3486
|
+
|
|
3422
3487
|
```json
|
|
3423
3488
|
{
|
|
3424
3489
|
"levelId": "{{unique_identifier}}",
|
|
@@ -3450,12 +3515,14 @@ Difficulty
|
|
|
3450
3515
|
[[LLM: Define how level assets are organized and loaded]]
|
|
3451
3516
|
|
|
3452
3517
|
**Tilemap Requirements:**
|
|
3518
|
+
|
|
3453
3519
|
- Tile size: {{tile_dimensions}}px
|
|
3454
3520
|
- Tileset organization: {{tileset_structure}}
|
|
3455
3521
|
- Layer organization: {{layer_system}}
|
|
3456
3522
|
- Collision data: {{collision_format}}
|
|
3457
3523
|
|
|
3458
3524
|
**Audio Integration:**
|
|
3525
|
+
|
|
3459
3526
|
- Background music: {{music_requirements}}
|
|
3460
3527
|
- Ambient sounds: {{ambient_system}}
|
|
3461
3528
|
- Dynamic audio: {{dynamic_audio_rules}}
|
|
@@ -3465,16 +3532,19 @@ Difficulty
|
|
|
3465
3532
|
[[LLM: Define performance requirements for level systems]]
|
|
3466
3533
|
|
|
3467
3534
|
**Entity Limits:**
|
|
3535
|
+
|
|
3468
3536
|
- Maximum active entities: {{entity_limit}}
|
|
3469
3537
|
- Maximum particles: {{particle_limit}}
|
|
3470
3538
|
- Maximum audio sources: {{audio_limit}}
|
|
3471
3539
|
|
|
3472
3540
|
**Memory Management:**
|
|
3541
|
+
|
|
3473
3542
|
- Texture memory budget: {{texture_memory}}MB
|
|
3474
3543
|
- Audio memory budget: {{audio_memory}}MB
|
|
3475
3544
|
- Level loading time: <{{load_time}}s
|
|
3476
3545
|
|
|
3477
3546
|
**Culling and LOD:**
|
|
3547
|
+
|
|
3478
3548
|
- Off-screen culling: {{culling_distance}}
|
|
3479
3549
|
- Level-of-detail rules: {{lod_system}}
|
|
3480
3550
|
- Asset streaming: {{streaming_requirements}}
|
|
@@ -3486,11 +3556,13 @@ Difficulty
|
|
|
3486
3556
|
### Automated Testing
|
|
3487
3557
|
|
|
3488
3558
|
**Performance Testing:**
|
|
3559
|
+
|
|
3489
3560
|
- Frame rate validation: Maintain {{fps_target}} FPS
|
|
3490
3561
|
- Memory usage monitoring: Stay under {{memory_limit}}MB
|
|
3491
3562
|
- Loading time verification: Complete in <{{load_time}}s
|
|
3492
3563
|
|
|
3493
3564
|
**Gameplay Testing:**
|
|
3565
|
+
|
|
3494
3566
|
- Completion path validation: All objectives achievable
|
|
3495
3567
|
- Collectible accessibility: All items reachable
|
|
3496
3568
|
- Softlock prevention: No unwinnable states
|
|
@@ -3498,6 +3570,7 @@ Difficulty
|
|
|
3498
3570
|
### Manual Testing Protocol
|
|
3499
3571
|
|
|
3500
3572
|
**Playtesting Checklist:**
|
|
3573
|
+
|
|
3501
3574
|
- [ ] Level completes within target time range
|
|
3502
3575
|
- [ ] All mechanics function correctly
|
|
3503
3576
|
- [ ] Difficulty feels appropriate for level category
|
|
@@ -3505,6 +3578,7 @@ Difficulty
|
|
|
3505
3578
|
- [ ] No exploits or sequence breaks (unless intended)
|
|
3506
3579
|
|
|
3507
3580
|
**Player Experience Testing:**
|
|
3581
|
+
|
|
3508
3582
|
- [ ] Tutorial levels teach effectively
|
|
3509
3583
|
- [ ] Challenge feels fair and rewarding
|
|
3510
3584
|
- [ ] Flow and pacing maintain engagement
|
|
@@ -3513,12 +3587,14 @@ Difficulty
|
|
|
3513
3587
|
### Balance Validation
|
|
3514
3588
|
|
|
3515
3589
|
**Metrics Collection:**
|
|
3590
|
+
|
|
3516
3591
|
- Completion rate: Target {{completion_percentage}}%
|
|
3517
3592
|
- Average completion time: {{target_time}} ± {{variance}}
|
|
3518
3593
|
- Death count per level: <{{max_deaths}}
|
|
3519
3594
|
- Collectible discovery rate: {{discovery_percentage}}%
|
|
3520
3595
|
|
|
3521
3596
|
**Iteration Guidelines:**
|
|
3597
|
+
|
|
3522
3598
|
- Adjustment criteria: {{criteria_for_changes}}
|
|
3523
3599
|
- Testing sample size: {{minimum_testers}}
|
|
3524
3600
|
- Validation period: {{testing_duration}}
|
|
@@ -3530,12 +3606,14 @@ Difficulty
|
|
|
3530
3606
|
### Design Phase
|
|
3531
3607
|
|
|
3532
3608
|
**Concept Development:**
|
|
3609
|
+
|
|
3533
3610
|
1. Define level purpose and goals
|
|
3534
3611
|
2. Create rough layout sketch
|
|
3535
3612
|
3. Identify key mechanics and challenges
|
|
3536
3613
|
4. Estimate difficulty and duration
|
|
3537
3614
|
|
|
3538
3615
|
**Documentation Requirements:**
|
|
3616
|
+
|
|
3539
3617
|
- Level design brief
|
|
3540
3618
|
- Layout diagrams
|
|
3541
3619
|
- Mechanic integration notes
|
|
@@ -3544,6 +3622,7 @@ Difficulty
|
|
|
3544
3622
|
### Implementation Phase
|
|
3545
3623
|
|
|
3546
3624
|
**Technical Implementation:**
|
|
3625
|
+
|
|
3547
3626
|
1. Create level data file
|
|
3548
3627
|
2. Build tilemap and layout
|
|
3549
3628
|
3. Place entities and objects
|
|
@@ -3551,6 +3630,7 @@ Difficulty
|
|
|
3551
3630
|
5. Integrate audio and visual effects
|
|
3552
3631
|
|
|
3553
3632
|
**Quality Assurance:**
|
|
3633
|
+
|
|
3554
3634
|
1. Automated testing execution
|
|
3555
3635
|
2. Internal playtesting
|
|
3556
3636
|
3. Performance validation
|
|
@@ -3559,12 +3639,14 @@ Difficulty
|
|
|
3559
3639
|
### Integration Phase
|
|
3560
3640
|
|
|
3561
3641
|
**Game Integration:**
|
|
3642
|
+
|
|
3562
3643
|
1. Level progression integration
|
|
3563
3644
|
2. Save system compatibility
|
|
3564
3645
|
3. Analytics integration
|
|
3565
3646
|
4. Achievement system integration
|
|
3566
3647
|
|
|
3567
3648
|
**Final Validation:**
|
|
3649
|
+
|
|
3568
3650
|
1. Full game context testing
|
|
3569
3651
|
2. Performance regression testing
|
|
3570
3652
|
3. Platform compatibility verification
|
|
@@ -3575,18 +3657,21 @@ Difficulty
|
|
|
3575
3657
|
[[LLM: Define how to measure level design success]]
|
|
3576
3658
|
|
|
3577
3659
|
**Player Engagement:**
|
|
3660
|
+
|
|
3578
3661
|
- Level completion rate: {{target_rate}}%
|
|
3579
3662
|
- Replay rate: {{replay_target}}%
|
|
3580
3663
|
- Time spent per level: {{engagement_time}}
|
|
3581
3664
|
- Player satisfaction scores: {{satisfaction_target}}/10
|
|
3582
3665
|
|
|
3583
3666
|
**Technical Performance:**
|
|
3667
|
+
|
|
3584
3668
|
- Frame rate consistency: {{fps_consistency}}%
|
|
3585
3669
|
- Loading time compliance: {{load_compliance}}%
|
|
3586
3670
|
- Memory usage efficiency: {{memory_efficiency}}%
|
|
3587
3671
|
- Crash rate: <{{crash_threshold}}%
|
|
3588
3672
|
|
|
3589
3673
|
**Design Quality:**
|
|
3674
|
+
|
|
3590
3675
|
- Difficulty curve adherence: {{curve_accuracy}}
|
|
3591
3676
|
- Mechanic integration effectiveness: {{integration_score}}
|
|
3592
3677
|
- Player guidance clarity: {{guidance_score}}
|
|
@@ -3656,11 +3741,13 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
3656
3741
|
[[LLM: List the 3-5 most important gameplay mechanics that define the player experience]]
|
|
3657
3742
|
|
|
3658
3743
|
**Core Mechanic 1: {{mechanic_name}}**
|
|
3744
|
+
|
|
3659
3745
|
- **Description:** {{how_it_works}}
|
|
3660
3746
|
- **Player Value:** {{why_its_fun}}
|
|
3661
3747
|
- **Implementation Scope:** {{complexity_estimate}}
|
|
3662
3748
|
|
|
3663
3749
|
**Core Mechanic 2: {{mechanic_name}}**
|
|
3750
|
+
|
|
3664
3751
|
- **Description:** {{how_it_works}}
|
|
3665
3752
|
- **Player Value:** {{why_its_fun}}
|
|
3666
3753
|
- **Implementation Scope:** {{complexity_estimate}}
|
|
@@ -3687,10 +3774,12 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
3687
3774
|
### Technical Constraints
|
|
3688
3775
|
|
|
3689
3776
|
**Platform Requirements:**
|
|
3777
|
+
|
|
3690
3778
|
- Primary: {{platform_1}} - {{requirements}}
|
|
3691
3779
|
- Secondary: {{platform_2}} - {{requirements}}
|
|
3692
3780
|
|
|
3693
3781
|
**Technical Specifications:**
|
|
3782
|
+
|
|
3694
3783
|
- Engine: Phaser 3 + TypeScript
|
|
3695
3784
|
- Performance Target: {{fps_target}} FPS on {{target_device}}
|
|
3696
3785
|
- Memory Budget: <{{memory_limit}}MB
|
|
@@ -3721,6 +3810,7 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
3721
3810
|
### Inspiration Games
|
|
3722
3811
|
|
|
3723
3812
|
**Primary References:**
|
|
3813
|
+
|
|
3724
3814
|
1. **{{reference_game_1}}** - {{what_we_learn_from_it}}
|
|
3725
3815
|
2. **{{reference_game_2}}** - {{what_we_learn_from_it}}
|
|
3726
3816
|
3. **{{reference_game_3}}** - {{what_we_learn_from_it}}
|
|
@@ -3728,6 +3818,7 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
3728
3818
|
### Competitive Analysis
|
|
3729
3819
|
|
|
3730
3820
|
**Direct Competitors:**
|
|
3821
|
+
|
|
3731
3822
|
- {{competitor_1}}: {{strengths_and_weaknesses}}
|
|
3732
3823
|
- {{competitor_2}}: {{strengths_and_weaknesses}}
|
|
3733
3824
|
|
|
@@ -3753,13 +3844,16 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
3753
3844
|
### Content Categories
|
|
3754
3845
|
|
|
3755
3846
|
**Core Content:**
|
|
3847
|
+
|
|
3756
3848
|
- {{content_type_1}}: {{quantity_and_description}}
|
|
3757
3849
|
- {{content_type_2}}: {{quantity_and_description}}
|
|
3758
3850
|
|
|
3759
3851
|
**Optional Content:**
|
|
3852
|
+
|
|
3760
3853
|
- {{optional_content_type}}: {{quantity_and_description}}
|
|
3761
3854
|
|
|
3762
3855
|
**Replay Elements:**
|
|
3856
|
+
|
|
3763
3857
|
- {{replayability_features}}
|
|
3764
3858
|
|
|
3765
3859
|
### Difficulty and Accessibility
|
|
@@ -3797,23 +3891,23 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
3797
3891
|
|
|
3798
3892
|
### Technical Risks
|
|
3799
3893
|
|
|
3800
|
-
| Risk
|
|
3801
|
-
|
|
3802
|
-
| {{technical_risk_1}} | {{high|med|low}}
|
|
3803
|
-
| {{technical_risk_2}} | {{high|med|low}}
|
|
3894
|
+
| Risk | Probability | Impact | Mitigation Strategy |
|
|
3895
|
+
| -------------------- | ----------- | ------ | ------------------- | ------ | --- | ----- | ----------------------- |
|
|
3896
|
+
| {{technical_risk_1}} | {{high | med | low}} | {{high | med | low}} | {{mitigation_approach}} |
|
|
3897
|
+
| {{technical_risk_2}} | {{high | med | low}} | {{high | med | low}} | {{mitigation_approach}} |
|
|
3804
3898
|
|
|
3805
3899
|
### Design Risks
|
|
3806
3900
|
|
|
3807
|
-
| Risk
|
|
3808
|
-
|
|
3809
|
-
| {{design_risk_1}} | {{high|med|low}}
|
|
3810
|
-
| {{design_risk_2}} | {{high|med|low}}
|
|
3901
|
+
| Risk | Probability | Impact | Mitigation Strategy |
|
|
3902
|
+
| ----------------- | ----------- | ------ | ------------------- | ------ | --- | ----- | ----------------------- |
|
|
3903
|
+
| {{design_risk_1}} | {{high | med | low}} | {{high | med | low}} | {{mitigation_approach}} |
|
|
3904
|
+
| {{design_risk_2}} | {{high | med | low}} | {{high | med | low}} | {{mitigation_approach}} |
|
|
3811
3905
|
|
|
3812
3906
|
### Market Risks
|
|
3813
3907
|
|
|
3814
|
-
| Risk
|
|
3815
|
-
|
|
3816
|
-
| {{market_risk_1}} | {{high|med|low}}
|
|
3908
|
+
| Risk | Probability | Impact | Mitigation Strategy |
|
|
3909
|
+
| ----------------- | ----------- | ------ | ------------------- | ------ | --- | ----- | ----------------------- |
|
|
3910
|
+
| {{market_risk_1}} | {{high | med | low}} | {{high | med | low}} | {{mitigation_approach}} |
|
|
3817
3911
|
|
|
3818
3912
|
## Success Criteria
|
|
3819
3913
|
|
|
@@ -3822,11 +3916,13 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
3822
3916
|
### Player Experience Metrics
|
|
3823
3917
|
|
|
3824
3918
|
**Engagement Goals:**
|
|
3919
|
+
|
|
3825
3920
|
- Tutorial completion rate: >{{percentage}}%
|
|
3826
3921
|
- Average session length: {{duration}} minutes
|
|
3827
3922
|
- Player retention: D1 {{d1}}%, D7 {{d7}}%, D30 {{d30}}%
|
|
3828
3923
|
|
|
3829
3924
|
**Quality Benchmarks:**
|
|
3925
|
+
|
|
3830
3926
|
- Player satisfaction: >{{rating}}/10
|
|
3831
3927
|
- Completion rate: >{{percentage}}%
|
|
3832
3928
|
- Technical performance: {{fps_target}} FPS consistent
|
|
@@ -3834,11 +3930,13 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
3834
3930
|
### Development Metrics
|
|
3835
3931
|
|
|
3836
3932
|
**Technical Targets:**
|
|
3933
|
+
|
|
3837
3934
|
- Zero critical bugs at launch
|
|
3838
3935
|
- Performance targets met on all platforms
|
|
3839
3936
|
- Load times under {{seconds}}s
|
|
3840
3937
|
|
|
3841
3938
|
**Process Goals:**
|
|
3939
|
+
|
|
3842
3940
|
- Development timeline adherence
|
|
3843
3941
|
- Feature scope completion
|
|
3844
3942
|
- Quality assurance standards
|
|
@@ -3848,6 +3946,7 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
3848
3946
|
### Business Metrics
|
|
3849
3947
|
|
|
3850
3948
|
**Commercial Goals:**
|
|
3949
|
+
|
|
3851
3950
|
- {{revenue_target}} in first {{time_period}}
|
|
3852
3951
|
- {{user_acquisition_target}} players in first {{time_period}}
|
|
3853
3952
|
- {{retention_target}} monthly active users
|
|
@@ -3867,16 +3966,19 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
3867
3966
|
### Development Roadmap
|
|
3868
3967
|
|
|
3869
3968
|
**Phase 1: Pre-Production** ({{duration}})
|
|
3969
|
+
|
|
3870
3970
|
- Detailed Game Design Document creation
|
|
3871
3971
|
- Technical architecture planning
|
|
3872
3972
|
- Art style exploration and pipeline setup
|
|
3873
3973
|
|
|
3874
3974
|
**Phase 2: Prototype** ({{duration}})
|
|
3975
|
+
|
|
3875
3976
|
- Core mechanic implementation
|
|
3876
3977
|
- Technical proof of concept
|
|
3877
3978
|
- Initial playtesting and iteration
|
|
3878
3979
|
|
|
3879
3980
|
**Phase 3: Production** ({{duration}})
|
|
3981
|
+
|
|
3880
3982
|
- Full feature development
|
|
3881
3983
|
- Content creation and integration
|
|
3882
3984
|
- Comprehensive testing and optimization
|
|
@@ -3884,6 +3986,7 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
3884
3986
|
### Documentation Pipeline
|
|
3885
3987
|
|
|
3886
3988
|
**Required Documents:**
|
|
3989
|
+
|
|
3887
3990
|
1. Game Design Document (GDD) - {{target_completion}}
|
|
3888
3991
|
2. Technical Architecture Document - {{target_completion}}
|
|
3889
3992
|
3. Art Style Guide - {{target_completion}}
|
|
@@ -3892,10 +3995,12 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
3892
3995
|
### Validation Plan
|
|
3893
3996
|
|
|
3894
3997
|
**Concept Testing:**
|
|
3998
|
+
|
|
3895
3999
|
- {{validation_method_1}} - {{timeline}}
|
|
3896
4000
|
- {{validation_method_2}} - {{timeline}}
|
|
3897
4001
|
|
|
3898
4002
|
**Prototype Testing:**
|
|
4003
|
+
|
|
3899
4004
|
- {{testing_approach}} - {{timeline}}
|
|
3900
4005
|
- {{feedback_collection_method}} - {{timeline}}
|
|
3901
4006
|
|
|
@@ -3927,6 +4032,7 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
3927
4032
|
## Document Completeness
|
|
3928
4033
|
|
|
3929
4034
|
### Executive Summary
|
|
4035
|
+
|
|
3930
4036
|
- [ ] **Core Concept** - Game concept is clearly explained in 2-3 sentences
|
|
3931
4037
|
- [ ] **Target Audience** - Primary and secondary audiences defined with demographics
|
|
3932
4038
|
- [ ] **Platform Requirements** - Technical platforms and requirements specified
|
|
@@ -3934,6 +4040,7 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
3934
4040
|
- [ ] **Technical Foundation** - Phaser 3 + TypeScript requirements confirmed
|
|
3935
4041
|
|
|
3936
4042
|
### Game Design Foundation
|
|
4043
|
+
|
|
3937
4044
|
- [ ] **Game Pillars** - 3-5 core design pillars defined and actionable
|
|
3938
4045
|
- [ ] **Core Gameplay Loop** - 30-60 second loop documented with specific timings
|
|
3939
4046
|
- [ ] **Win/Loss Conditions** - Clear victory and failure states defined
|
|
@@ -3943,6 +4050,7 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
3943
4050
|
## Gameplay Mechanics
|
|
3944
4051
|
|
|
3945
4052
|
### Core Mechanics Documentation
|
|
4053
|
+
|
|
3946
4054
|
- [ ] **Primary Mechanics** - 3-5 core mechanics detailed with implementation notes
|
|
3947
4055
|
- [ ] **Mechanic Integration** - How mechanics work together is clear
|
|
3948
4056
|
- [ ] **Player Input** - All input methods specified for each platform
|
|
@@ -3950,6 +4058,7 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
3950
4058
|
- [ ] **Performance Impact** - Performance considerations for each mechanic noted
|
|
3951
4059
|
|
|
3952
4060
|
### Controls and Interaction
|
|
4061
|
+
|
|
3953
4062
|
- [ ] **Multi-Platform Controls** - Desktop, mobile, and gamepad controls defined
|
|
3954
4063
|
- [ ] **Input Responsiveness** - Requirements for responsive game feel specified
|
|
3955
4064
|
- [ ] **Accessibility Options** - Control customization and accessibility considered
|
|
@@ -3959,6 +4068,7 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
3959
4068
|
## Progression and Balance
|
|
3960
4069
|
|
|
3961
4070
|
### Player Progression
|
|
4071
|
+
|
|
3962
4072
|
- [ ] **Progression Type** - Linear, branching, or metroidvania approach defined
|
|
3963
4073
|
- [ ] **Key Milestones** - Major progression points documented
|
|
3964
4074
|
- [ ] **Unlock System** - What players unlock and when is specified
|
|
@@ -3966,6 +4076,7 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
3966
4076
|
- [ ] **Player Agency** - Meaningful player choices and consequences defined
|
|
3967
4077
|
|
|
3968
4078
|
### Game Balance
|
|
4079
|
+
|
|
3969
4080
|
- [ ] **Balance Parameters** - Numeric values for key game systems provided
|
|
3970
4081
|
- [ ] **Difficulty Curve** - Appropriate challenge progression designed
|
|
3971
4082
|
- [ ] **Economy Design** - Resource systems balanced for engagement
|
|
@@ -3975,6 +4086,7 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
3975
4086
|
## Level Design Framework
|
|
3976
4087
|
|
|
3977
4088
|
### Level Structure
|
|
4089
|
+
|
|
3978
4090
|
- [ ] **Level Types** - Different level categories defined with purposes
|
|
3979
4091
|
- [ ] **Level Progression** - How players move through levels specified
|
|
3980
4092
|
- [ ] **Duration Targets** - Expected play time for each level type
|
|
@@ -3982,6 +4094,7 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
3982
4094
|
- [ ] **Replay Value** - Elements that encourage repeated play designed
|
|
3983
4095
|
|
|
3984
4096
|
### Content Guidelines
|
|
4097
|
+
|
|
3985
4098
|
- [ ] **Level Creation Rules** - Clear guidelines for level designers
|
|
3986
4099
|
- [ ] **Mechanic Introduction** - How new mechanics are taught in levels
|
|
3987
4100
|
- [ ] **Pacing Variety** - Mix of action, puzzle, and rest moments planned
|
|
@@ -3991,6 +4104,7 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
3991
4104
|
## Technical Implementation Readiness
|
|
3992
4105
|
|
|
3993
4106
|
### Performance Requirements
|
|
4107
|
+
|
|
3994
4108
|
- [ ] **Frame Rate Targets** - 60 FPS target with minimum acceptable rates
|
|
3995
4109
|
- [ ] **Memory Budgets** - Maximum memory usage limits defined
|
|
3996
4110
|
- [ ] **Load Time Goals** - Acceptable loading times for different content
|
|
@@ -3998,6 +4112,7 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
3998
4112
|
- [ ] **Scalability Plan** - How performance scales across different devices
|
|
3999
4113
|
|
|
4000
4114
|
### Platform Specifications
|
|
4115
|
+
|
|
4001
4116
|
- [ ] **Desktop Requirements** - Minimum and recommended PC/Mac specs
|
|
4002
4117
|
- [ ] **Mobile Optimization** - iOS and Android specific requirements
|
|
4003
4118
|
- [ ] **Browser Compatibility** - Supported browsers and versions listed
|
|
@@ -4005,6 +4120,7 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
4005
4120
|
- [ ] **Update Strategy** - Plan for post-launch updates and patches
|
|
4006
4121
|
|
|
4007
4122
|
### Asset Requirements
|
|
4123
|
+
|
|
4008
4124
|
- [ ] **Art Style Definition** - Clear visual style with reference materials
|
|
4009
4125
|
- [ ] **Asset Specifications** - Technical requirements for all asset types
|
|
4010
4126
|
- [ ] **Audio Requirements** - Music and sound effect specifications
|
|
@@ -4014,6 +4130,7 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
4014
4130
|
## Development Planning
|
|
4015
4131
|
|
|
4016
4132
|
### Implementation Phases
|
|
4133
|
+
|
|
4017
4134
|
- [ ] **Phase Breakdown** - Development divided into logical phases
|
|
4018
4135
|
- [ ] **Epic Definitions** - Major development epics identified
|
|
4019
4136
|
- [ ] **Dependency Mapping** - Prerequisites between features documented
|
|
@@ -4021,6 +4138,7 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
4021
4138
|
- [ ] **Milestone Planning** - Key deliverables and deadlines established
|
|
4022
4139
|
|
|
4023
4140
|
### Team Requirements
|
|
4141
|
+
|
|
4024
4142
|
- [ ] **Role Definitions** - Required team roles and responsibilities
|
|
4025
4143
|
- [ ] **Skill Requirements** - Technical skills needed for implementation
|
|
4026
4144
|
- [ ] **Resource Allocation** - Time and effort estimates for major features
|
|
@@ -4030,6 +4148,7 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
4030
4148
|
## Quality Assurance
|
|
4031
4149
|
|
|
4032
4150
|
### Success Metrics
|
|
4151
|
+
|
|
4033
4152
|
- [ ] **Technical Metrics** - Measurable technical performance goals
|
|
4034
4153
|
- [ ] **Gameplay Metrics** - Player engagement and retention targets
|
|
4035
4154
|
- [ ] **Quality Benchmarks** - Standards for bug rates and polish level
|
|
@@ -4037,6 +4156,7 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
4037
4156
|
- [ ] **Business Objectives** - Commercial or project success criteria
|
|
4038
4157
|
|
|
4039
4158
|
### Testing Strategy
|
|
4159
|
+
|
|
4040
4160
|
- [ ] **Playtesting Plan** - How and when player feedback will be gathered
|
|
4041
4161
|
- [ ] **Technical Testing** - Performance and compatibility testing approach
|
|
4042
4162
|
- [ ] **Balance Validation** - Methods for confirming game balance
|
|
@@ -4046,6 +4166,7 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
4046
4166
|
## Documentation Quality
|
|
4047
4167
|
|
|
4048
4168
|
### Clarity and Completeness
|
|
4169
|
+
|
|
4049
4170
|
- [ ] **Clear Writing** - All sections are well-written and understandable
|
|
4050
4171
|
- [ ] **Complete Coverage** - No major game systems left undefined
|
|
4051
4172
|
- [ ] **Actionable Detail** - Enough detail for developers to create implementation stories
|
|
@@ -4053,6 +4174,7 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
4053
4174
|
- [ ] **Reference Materials** - Links to inspiration, research, and additional resources
|
|
4054
4175
|
|
|
4055
4176
|
### Maintainability
|
|
4177
|
+
|
|
4056
4178
|
- [ ] **Version Control** - Change log established for tracking revisions
|
|
4057
4179
|
- [ ] **Update Process** - Plan for maintaining document during development
|
|
4058
4180
|
- [ ] **Team Access** - All team members can access and reference the document
|
|
@@ -4062,6 +4184,7 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
4062
4184
|
## Stakeholder Alignment
|
|
4063
4185
|
|
|
4064
4186
|
### Team Understanding
|
|
4187
|
+
|
|
4065
4188
|
- [ ] **Shared Vision** - All team members understand and agree with the game vision
|
|
4066
4189
|
- [ ] **Role Clarity** - Each team member understands their contribution
|
|
4067
4190
|
- [ ] **Decision Framework** - Process for making design decisions during development
|
|
@@ -4069,6 +4192,7 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
4069
4192
|
- [ ] **Communication Channels** - Regular meetings and feedback sessions planned
|
|
4070
4193
|
|
|
4071
4194
|
### External Validation
|
|
4195
|
+
|
|
4072
4196
|
- [ ] **Market Validation** - Competitive analysis and market fit assessment
|
|
4073
4197
|
- [ ] **Technical Validation** - Feasibility confirmed with technical team
|
|
4074
4198
|
- [ ] **Resource Validation** - Required resources available and committed
|
|
@@ -4078,6 +4202,7 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
4078
4202
|
## Final Readiness Assessment
|
|
4079
4203
|
|
|
4080
4204
|
### Implementation Preparedness
|
|
4205
|
+
|
|
4081
4206
|
- [ ] **Story Creation Ready** - Document provides sufficient detail for story creation
|
|
4082
4207
|
- [ ] **Architecture Alignment** - Game design aligns with technical capabilities
|
|
4083
4208
|
- [ ] **Asset Production** - Asset requirements enable art and audio production
|
|
@@ -4085,6 +4210,7 @@ This brief is typically created early in the ideation process, often after brain
|
|
|
4085
4210
|
- [ ] **Quality Assurance** - Testing and validation processes established
|
|
4086
4211
|
|
|
4087
4212
|
### Document Approval
|
|
4213
|
+
|
|
4088
4214
|
- [ ] **Design Review Complete** - Document reviewed by all relevant stakeholders
|
|
4089
4215
|
- [ ] **Technical Review Complete** - Technical feasibility confirmed
|
|
4090
4216
|
- [ ] **Business Review Complete** - Project scope and goals approved
|
|
@@ -4187,7 +4313,7 @@ This architecture is designed to support the gameplay mechanics defined in the G
|
|
|
4187
4313
|
│ ├── stories/ # Development stories
|
|
4188
4314
|
│ └── architecture/ # Technical docs
|
|
4189
4315
|
└── dist/ # Built game files
|
|
4190
|
-
```
|
|
4316
|
+
```
|
|
4191
4317
|
|
|
4192
4318
|
### Module Organization
|
|
4193
4319
|
|
|
@@ -4472,7 +4598,7 @@ const gameConfig: Phaser.Types.Core.GameConfig = {
|
|
|
4472
4598
|
},
|
|
4473
4599
|
// Additional configuration...
|
|
4474
4600
|
};
|
|
4475
|
-
```
|
|
4601
|
+
```
|
|
4476
4602
|
|
|
4477
4603
|
### Game Balance Configuration
|
|
4478
4604
|
|
|
@@ -4673,6 +4799,7 @@ export const GameBalance = {
|
|
|
4673
4799
|
## Story Completeness
|
|
4674
4800
|
|
|
4675
4801
|
### Basic Story Elements
|
|
4802
|
+
|
|
4676
4803
|
- [ ] **Story Title** - Clear, descriptive title that identifies the feature
|
|
4677
4804
|
- [ ] **Epic Assignment** - Story is properly assigned to relevant epic
|
|
4678
4805
|
- [ ] **Priority Level** - Appropriate priority assigned (High/Medium/Low)
|
|
@@ -4680,6 +4807,7 @@ export const GameBalance = {
|
|
|
4680
4807
|
- [ ] **Description** - Clear, concise description of what needs to be implemented
|
|
4681
4808
|
|
|
4682
4809
|
### Game Design Alignment
|
|
4810
|
+
|
|
4683
4811
|
- [ ] **GDD Reference** - Specific Game Design Document section referenced
|
|
4684
4812
|
- [ ] **Game Mechanic Context** - Clear connection to game mechanics defined in GDD
|
|
4685
4813
|
- [ ] **Player Experience Goal** - Describes the intended player experience
|
|
@@ -4689,6 +4817,7 @@ export const GameBalance = {
|
|
|
4689
4817
|
## Technical Specifications
|
|
4690
4818
|
|
|
4691
4819
|
### Architecture Compliance
|
|
4820
|
+
|
|
4692
4821
|
- [ ] **File Organization** - Follows game architecture document structure
|
|
4693
4822
|
- [ ] **Class Definitions** - TypeScript interfaces and classes are properly defined
|
|
4694
4823
|
- [ ] **Integration Points** - Clear specification of how feature integrates with existing systems
|
|
@@ -4696,6 +4825,7 @@ export const GameBalance = {
|
|
|
4696
4825
|
- [ ] **Dependencies** - All system dependencies clearly identified
|
|
4697
4826
|
|
|
4698
4827
|
### Phaser 3 Requirements
|
|
4828
|
+
|
|
4699
4829
|
- [ ] **Scene Integration** - Specifies which scenes are affected and how
|
|
4700
4830
|
- [ ] **Game Object Usage** - Proper use of Phaser 3 game objects and components
|
|
4701
4831
|
- [ ] **Physics Integration** - Physics requirements specified if applicable
|
|
@@ -4703,6 +4833,7 @@ export const GameBalance = {
|
|
|
4703
4833
|
- [ ] **Performance Considerations** - 60 FPS target and optimization requirements
|
|
4704
4834
|
|
|
4705
4835
|
### Code Quality Standards
|
|
4836
|
+
|
|
4706
4837
|
- [ ] **TypeScript Strict Mode** - All code must comply with strict TypeScript
|
|
4707
4838
|
- [ ] **Error Handling** - Error scenarios and handling requirements specified
|
|
4708
4839
|
- [ ] **Memory Management** - Object pooling and cleanup requirements where needed
|
|
@@ -4712,6 +4843,7 @@ export const GameBalance = {
|
|
|
4712
4843
|
## Implementation Readiness
|
|
4713
4844
|
|
|
4714
4845
|
### Acceptance Criteria
|
|
4846
|
+
|
|
4715
4847
|
- [ ] **Functional Requirements** - All functional acceptance criteria are specific and testable
|
|
4716
4848
|
- [ ] **Technical Requirements** - Technical acceptance criteria are complete and verifiable
|
|
4717
4849
|
- [ ] **Game Design Requirements** - Game-specific requirements match GDD specifications
|
|
@@ -4719,6 +4851,7 @@ export const GameBalance = {
|
|
|
4719
4851
|
- [ ] **Completeness** - No acceptance criteria are vague or unmeasurable
|
|
4720
4852
|
|
|
4721
4853
|
### Implementation Tasks
|
|
4854
|
+
|
|
4722
4855
|
- [ ] **Task Breakdown** - Story broken into specific, ordered implementation tasks
|
|
4723
4856
|
- [ ] **Task Scope** - Each task is completable in 1-4 hours
|
|
4724
4857
|
- [ ] **Task Clarity** - Each task has clear, actionable instructions
|
|
@@ -4726,6 +4859,7 @@ export const GameBalance = {
|
|
|
4726
4859
|
- [ ] **Development Flow** - Tasks follow logical implementation order
|
|
4727
4860
|
|
|
4728
4861
|
### Dependencies
|
|
4862
|
+
|
|
4729
4863
|
- [ ] **Story Dependencies** - All prerequisite stories identified with IDs
|
|
4730
4864
|
- [ ] **Technical Dependencies** - Required systems and files identified
|
|
4731
4865
|
- [ ] **Asset Dependencies** - All needed assets specified with locations
|
|
@@ -4735,6 +4869,7 @@ export const GameBalance = {
|
|
|
4735
4869
|
## Testing Requirements
|
|
4736
4870
|
|
|
4737
4871
|
### Test Coverage
|
|
4872
|
+
|
|
4738
4873
|
- [ ] **Unit Test Requirements** - Specific unit test files and scenarios defined
|
|
4739
4874
|
- [ ] **Integration Test Cases** - Integration testing with other game systems specified
|
|
4740
4875
|
- [ ] **Manual Test Cases** - Game-specific manual testing procedures defined
|
|
@@ -4742,6 +4877,7 @@ export const GameBalance = {
|
|
|
4742
4877
|
- [ ] **Edge Case Testing** - Edge cases and error conditions covered
|
|
4743
4878
|
|
|
4744
4879
|
### Test Implementation
|
|
4880
|
+
|
|
4745
4881
|
- [ ] **Test File Paths** - Exact test file locations specified
|
|
4746
4882
|
- [ ] **Test Scenarios** - All test scenarios are complete and executable
|
|
4747
4883
|
- [ ] **Expected Behaviors** - Clear expected outcomes for all tests defined
|
|
@@ -4751,6 +4887,7 @@ export const GameBalance = {
|
|
|
4751
4887
|
## Game-Specific Quality
|
|
4752
4888
|
|
|
4753
4889
|
### Gameplay Implementation
|
|
4890
|
+
|
|
4754
4891
|
- [ ] **Mechanic Accuracy** - Implementation matches GDD mechanic specifications
|
|
4755
4892
|
- [ ] **Player Controls** - Input handling requirements are complete
|
|
4756
4893
|
- [ ] **Game Feel** - Requirements for juice, feedback, and responsiveness specified
|
|
@@ -4758,6 +4895,7 @@ export const GameBalance = {
|
|
|
4758
4895
|
- [ ] **State Management** - Game state changes and persistence requirements defined
|
|
4759
4896
|
|
|
4760
4897
|
### User Experience
|
|
4898
|
+
|
|
4761
4899
|
- [ ] **UI Requirements** - User interface elements and behaviors specified
|
|
4762
4900
|
- [ ] **Audio Integration** - Sound effect and music requirements defined
|
|
4763
4901
|
- [ ] **Visual Feedback** - Animation and visual effect requirements specified
|
|
@@ -4765,6 +4903,7 @@ export const GameBalance = {
|
|
|
4765
4903
|
- [ ] **Error Recovery** - User-facing error handling and recovery specified
|
|
4766
4904
|
|
|
4767
4905
|
### Performance Optimization
|
|
4906
|
+
|
|
4768
4907
|
- [ ] **Frame Rate Targets** - Specific FPS requirements for different platforms
|
|
4769
4908
|
- [ ] **Memory Usage** - Memory consumption limits and monitoring requirements
|
|
4770
4909
|
- [ ] **Asset Optimization** - Texture, audio, and data optimization requirements
|
|
@@ -4774,6 +4913,7 @@ export const GameBalance = {
|
|
|
4774
4913
|
## Documentation and Communication
|
|
4775
4914
|
|
|
4776
4915
|
### Story Documentation
|
|
4916
|
+
|
|
4777
4917
|
- [ ] **Implementation Notes** - Additional context and implementation guidance provided
|
|
4778
4918
|
- [ ] **Design Decisions** - Key design choices documented with rationale
|
|
4779
4919
|
- [ ] **Future Considerations** - Potential future enhancements or modifications noted
|
|
@@ -4781,6 +4921,7 @@ export const GameBalance = {
|
|
|
4781
4921
|
- [ ] **Reference Materials** - Links to relevant GDD sections and architecture docs
|
|
4782
4922
|
|
|
4783
4923
|
### Developer Handoff
|
|
4924
|
+
|
|
4784
4925
|
- [ ] **Immediate Actionability** - Developer can start implementation without additional questions
|
|
4785
4926
|
- [ ] **Complete Context** - All necessary context provided within the story
|
|
4786
4927
|
- [ ] **Clear Boundaries** - What is and isn't included in the story scope is clear
|
|
@@ -4790,6 +4931,7 @@ export const GameBalance = {
|
|
|
4790
4931
|
## Final Validation
|
|
4791
4932
|
|
|
4792
4933
|
### Story Readiness
|
|
4934
|
+
|
|
4793
4935
|
- [ ] **No Ambiguity** - No sections require interpretation or additional design decisions
|
|
4794
4936
|
- [ ] **Technical Completeness** - All technical requirements are specified and actionable
|
|
4795
4937
|
- [ ] **Scope Appropriateness** - Story scope matches assigned story points
|
|
@@ -4797,6 +4939,7 @@ export const GameBalance = {
|
|
|
4797
4939
|
- [ ] **Review Completion** - Story has been reviewed for completeness and accuracy
|
|
4798
4940
|
|
|
4799
4941
|
### Implementation Preparedness
|
|
4942
|
+
|
|
4800
4943
|
- [ ] **Environment Ready** - Development environment requirements specified
|
|
4801
4944
|
- [ ] **Resources Available** - All required resources (assets, docs, dependencies) accessible
|
|
4802
4945
|
- [ ] **Testing Prepared** - Testing environment and data requirements specified
|
|
@@ -4825,6 +4968,7 @@ This document establishes coding standards, architectural patterns, and developm
|
|
|
4825
4968
|
### Strict Mode Configuration
|
|
4826
4969
|
|
|
4827
4970
|
**Required tsconfig.json settings:**
|
|
4971
|
+
|
|
4828
4972
|
```json
|
|
4829
4973
|
{
|
|
4830
4974
|
"compilerOptions": {
|
|
@@ -4838,11 +4982,12 @@ This document establishes coding standards, architectural patterns, and developm
|
|
|
4838
4982
|
"exactOptionalPropertyTypes": true
|
|
4839
4983
|
}
|
|
4840
4984
|
}
|
|
4841
|
-
```
|
|
4985
|
+
```
|
|
4842
4986
|
|
|
4843
4987
|
### Type Definitions
|
|
4844
4988
|
|
|
4845
4989
|
**Game Object Interfaces:**
|
|
4990
|
+
|
|
4846
4991
|
```typescript
|
|
4847
4992
|
// Core game entity interface
|
|
4848
4993
|
interface GameEntity {
|
|
@@ -4866,9 +5011,10 @@ interface GameSystem {
|
|
|
4866
5011
|
update(delta: number): void;
|
|
4867
5012
|
shutdown(): void;
|
|
4868
5013
|
}
|
|
4869
|
-
```
|
|
5014
|
+
```
|
|
4870
5015
|
|
|
4871
5016
|
**Scene Data Interfaces:**
|
|
5017
|
+
|
|
4872
5018
|
```typescript
|
|
4873
5019
|
// Scene transition data
|
|
4874
5020
|
interface SceneData {
|
|
@@ -4886,28 +5032,32 @@ interface GameState {
|
|
|
4886
5032
|
interface GameSettings {
|
|
4887
5033
|
musicVolume: number;
|
|
4888
5034
|
sfxVolume: number;
|
|
4889
|
-
difficulty:
|
|
5035
|
+
difficulty: "easy" | "normal" | "hard";
|
|
4890
5036
|
controls: ControlScheme;
|
|
4891
5037
|
}
|
|
4892
|
-
```
|
|
5038
|
+
```
|
|
4893
5039
|
|
|
4894
5040
|
### Naming Conventions
|
|
4895
5041
|
|
|
4896
5042
|
**Classes and Interfaces:**
|
|
5043
|
+
|
|
4897
5044
|
- PascalCase for classes: `PlayerSprite`, `GameManager`, `AudioSystem`
|
|
4898
5045
|
- PascalCase with 'I' prefix for interfaces: `IGameEntity`, `IPlayerController`
|
|
4899
5046
|
- Descriptive names that indicate purpose: `CollisionManager` not `CM`
|
|
4900
5047
|
|
|
4901
5048
|
**Methods and Variables:**
|
|
5049
|
+
|
|
4902
5050
|
- camelCase for methods and variables: `updatePosition()`, `playerSpeed`
|
|
4903
5051
|
- Descriptive names: `calculateDamage()` not `calcDmg()`
|
|
4904
5052
|
- Boolean variables with is/has/can prefix: `isActive`, `hasCollision`, `canMove`
|
|
4905
5053
|
|
|
4906
5054
|
**Constants:**
|
|
5055
|
+
|
|
4907
5056
|
- UPPER_SNAKE_CASE for constants: `MAX_PLAYER_SPEED`, `DEFAULT_VOLUME`
|
|
4908
5057
|
- Group related constants in enums or const objects
|
|
4909
5058
|
|
|
4910
5059
|
**Files and Directories:**
|
|
5060
|
+
|
|
4911
5061
|
- kebab-case for file names: `player-controller.ts`, `audio-manager.ts`
|
|
4912
5062
|
- PascalCase for scene files: `MenuScene.ts`, `GameScene.ts`
|
|
4913
5063
|
|
|
@@ -4916,88 +5066,91 @@ interface GameSettings {
|
|
|
4916
5066
|
### Scene Organization
|
|
4917
5067
|
|
|
4918
5068
|
**Scene Lifecycle Management:**
|
|
5069
|
+
|
|
4919
5070
|
```typescript
|
|
4920
5071
|
class GameScene extends Phaser.Scene {
|
|
4921
5072
|
private gameManager!: GameManager;
|
|
4922
5073
|
private inputManager!: InputManager;
|
|
4923
|
-
|
|
5074
|
+
|
|
4924
5075
|
constructor() {
|
|
4925
|
-
super({ key:
|
|
5076
|
+
super({ key: "GameScene" });
|
|
4926
5077
|
}
|
|
4927
|
-
|
|
5078
|
+
|
|
4928
5079
|
preload(): void {
|
|
4929
5080
|
// Load only scene-specific assets
|
|
4930
|
-
this.load.image(
|
|
5081
|
+
this.load.image("player", "assets/player.png");
|
|
4931
5082
|
}
|
|
4932
|
-
|
|
5083
|
+
|
|
4933
5084
|
create(data: SceneData): void {
|
|
4934
5085
|
// Initialize game systems
|
|
4935
5086
|
this.gameManager = new GameManager(this);
|
|
4936
5087
|
this.inputManager = new InputManager(this);
|
|
4937
|
-
|
|
5088
|
+
|
|
4938
5089
|
// Set up scene-specific logic
|
|
4939
5090
|
this.setupGameObjects();
|
|
4940
5091
|
this.setupEventListeners();
|
|
4941
5092
|
}
|
|
4942
|
-
|
|
5093
|
+
|
|
4943
5094
|
update(time: number, delta: number): void {
|
|
4944
5095
|
// Update all game systems
|
|
4945
5096
|
this.gameManager.update(delta);
|
|
4946
5097
|
this.inputManager.update(delta);
|
|
4947
5098
|
}
|
|
4948
|
-
|
|
5099
|
+
|
|
4949
5100
|
shutdown(): void {
|
|
4950
5101
|
// Clean up resources
|
|
4951
5102
|
this.gameManager.destroy();
|
|
4952
5103
|
this.inputManager.destroy();
|
|
4953
|
-
|
|
5104
|
+
|
|
4954
5105
|
// Remove event listeners
|
|
4955
|
-
this.events.off(
|
|
5106
|
+
this.events.off("*");
|
|
4956
5107
|
}
|
|
4957
5108
|
}
|
|
4958
5109
|
```
|
|
4959
5110
|
|
|
4960
5111
|
**Scene Transitions:**
|
|
5112
|
+
|
|
4961
5113
|
```typescript
|
|
4962
5114
|
// Proper scene transitions with data
|
|
4963
|
-
this.scene.start(
|
|
5115
|
+
this.scene.start("NextScene", {
|
|
4964
5116
|
playerScore: this.playerScore,
|
|
4965
|
-
currentLevel: this.currentLevel + 1
|
|
5117
|
+
currentLevel: this.currentLevel + 1,
|
|
4966
5118
|
});
|
|
4967
5119
|
|
|
4968
5120
|
// Scene overlays for UI
|
|
4969
|
-
this.scene.launch(
|
|
5121
|
+
this.scene.launch("PauseMenuScene");
|
|
4970
5122
|
this.scene.pause();
|
|
4971
|
-
```
|
|
5123
|
+
```
|
|
4972
5124
|
|
|
4973
5125
|
### Game Object Patterns
|
|
4974
5126
|
|
|
4975
5127
|
**Component-Based Architecture:**
|
|
5128
|
+
|
|
4976
5129
|
```typescript
|
|
4977
5130
|
// Base game entity
|
|
4978
5131
|
abstract class GameEntity extends Phaser.GameObjects.Sprite {
|
|
4979
5132
|
protected components: Map<string, GameComponent> = new Map();
|
|
4980
|
-
|
|
5133
|
+
|
|
4981
5134
|
constructor(scene: Phaser.Scene, x: number, y: number, texture: string) {
|
|
4982
5135
|
super(scene, x, y, texture);
|
|
4983
5136
|
scene.add.existing(this);
|
|
4984
5137
|
}
|
|
4985
|
-
|
|
5138
|
+
|
|
4986
5139
|
addComponent<T extends GameComponent>(component: T): T {
|
|
4987
5140
|
this.components.set(component.name, component);
|
|
4988
5141
|
return component;
|
|
4989
5142
|
}
|
|
4990
|
-
|
|
5143
|
+
|
|
4991
5144
|
getComponent<T extends GameComponent>(name: string): T | undefined {
|
|
4992
5145
|
return this.components.get(name) as T;
|
|
4993
5146
|
}
|
|
4994
|
-
|
|
5147
|
+
|
|
4995
5148
|
update(delta: number): void {
|
|
4996
|
-
this.components.forEach(component => component.update(delta));
|
|
5149
|
+
this.components.forEach((component) => component.update(delta));
|
|
4997
5150
|
}
|
|
4998
|
-
|
|
5151
|
+
|
|
4999
5152
|
destroy(): void {
|
|
5000
|
-
this.components.forEach(component => component.destroy());
|
|
5153
|
+
this.components.forEach((component) => component.destroy());
|
|
5001
5154
|
this.components.clear();
|
|
5002
5155
|
super.destroy();
|
|
5003
5156
|
}
|
|
@@ -5007,65 +5160,67 @@ abstract class GameEntity extends Phaser.GameObjects.Sprite {
|
|
|
5007
5160
|
class Player extends GameEntity {
|
|
5008
5161
|
private movement!: MovementComponent;
|
|
5009
5162
|
private health!: HealthComponent;
|
|
5010
|
-
|
|
5163
|
+
|
|
5011
5164
|
constructor(scene: Phaser.Scene, x: number, y: number) {
|
|
5012
|
-
super(scene, x, y,
|
|
5013
|
-
|
|
5165
|
+
super(scene, x, y, "player");
|
|
5166
|
+
|
|
5014
5167
|
this.movement = this.addComponent(new MovementComponent(this));
|
|
5015
5168
|
this.health = this.addComponent(new HealthComponent(this, 100));
|
|
5016
5169
|
}
|
|
5017
5170
|
}
|
|
5018
|
-
```
|
|
5171
|
+
```
|
|
5019
5172
|
|
|
5020
5173
|
### System Management
|
|
5021
5174
|
|
|
5022
5175
|
**Singleton Managers:**
|
|
5176
|
+
|
|
5023
5177
|
```typescript
|
|
5024
5178
|
class GameManager {
|
|
5025
5179
|
private static instance: GameManager;
|
|
5026
5180
|
private scene: Phaser.Scene;
|
|
5027
5181
|
private gameState: GameState;
|
|
5028
|
-
|
|
5182
|
+
|
|
5029
5183
|
constructor(scene: Phaser.Scene) {
|
|
5030
5184
|
if (GameManager.instance) {
|
|
5031
|
-
throw new Error(
|
|
5185
|
+
throw new Error("GameManager already exists!");
|
|
5032
5186
|
}
|
|
5033
|
-
|
|
5187
|
+
|
|
5034
5188
|
this.scene = scene;
|
|
5035
5189
|
this.gameState = this.loadGameState();
|
|
5036
5190
|
GameManager.instance = this;
|
|
5037
5191
|
}
|
|
5038
|
-
|
|
5192
|
+
|
|
5039
5193
|
static getInstance(): GameManager {
|
|
5040
5194
|
if (!GameManager.instance) {
|
|
5041
|
-
throw new Error(
|
|
5195
|
+
throw new Error("GameManager not initialized!");
|
|
5042
5196
|
}
|
|
5043
5197
|
return GameManager.instance;
|
|
5044
5198
|
}
|
|
5045
|
-
|
|
5199
|
+
|
|
5046
5200
|
update(delta: number): void {
|
|
5047
5201
|
// Update game logic
|
|
5048
5202
|
}
|
|
5049
|
-
|
|
5203
|
+
|
|
5050
5204
|
destroy(): void {
|
|
5051
5205
|
GameManager.instance = null!;
|
|
5052
5206
|
}
|
|
5053
5207
|
}
|
|
5054
|
-
```
|
|
5208
|
+
```
|
|
5055
5209
|
|
|
5056
5210
|
## Performance Optimization
|
|
5057
5211
|
|
|
5058
5212
|
### Object Pooling
|
|
5059
5213
|
|
|
5060
5214
|
**Required for High-Frequency Objects:**
|
|
5215
|
+
|
|
5061
5216
|
```typescript
|
|
5062
5217
|
class BulletPool {
|
|
5063
5218
|
private pool: Bullet[] = [];
|
|
5064
5219
|
private scene: Phaser.Scene;
|
|
5065
|
-
|
|
5220
|
+
|
|
5066
5221
|
constructor(scene: Phaser.Scene, initialSize: number = 50) {
|
|
5067
5222
|
this.scene = scene;
|
|
5068
|
-
|
|
5223
|
+
|
|
5069
5224
|
// Pre-create bullets
|
|
5070
5225
|
for (let i = 0; i < initialSize; i++) {
|
|
5071
5226
|
const bullet = new Bullet(scene, 0, 0);
|
|
@@ -5074,20 +5229,20 @@ class BulletPool {
|
|
|
5074
5229
|
this.pool.push(bullet);
|
|
5075
5230
|
}
|
|
5076
5231
|
}
|
|
5077
|
-
|
|
5232
|
+
|
|
5078
5233
|
getBullet(): Bullet | null {
|
|
5079
|
-
const bullet = this.pool.find(b => !b.active);
|
|
5234
|
+
const bullet = this.pool.find((b) => !b.active);
|
|
5080
5235
|
if (bullet) {
|
|
5081
5236
|
bullet.setActive(true);
|
|
5082
5237
|
bullet.setVisible(true);
|
|
5083
5238
|
return bullet;
|
|
5084
5239
|
}
|
|
5085
|
-
|
|
5240
|
+
|
|
5086
5241
|
// Pool exhausted - create new bullet
|
|
5087
|
-
console.warn(
|
|
5242
|
+
console.warn("Bullet pool exhausted, creating new bullet");
|
|
5088
5243
|
return new Bullet(this.scene, 0, 0);
|
|
5089
5244
|
}
|
|
5090
|
-
|
|
5245
|
+
|
|
5091
5246
|
releaseBullet(bullet: Bullet): void {
|
|
5092
5247
|
bullet.setActive(false);
|
|
5093
5248
|
bullet.setVisible(false);
|
|
@@ -5099,45 +5254,47 @@ class BulletPool {
|
|
|
5099
5254
|
### Frame Rate Optimization
|
|
5100
5255
|
|
|
5101
5256
|
**Performance Monitoring:**
|
|
5257
|
+
|
|
5102
5258
|
```typescript
|
|
5103
5259
|
class PerformanceMonitor {
|
|
5104
5260
|
private frameCount: number = 0;
|
|
5105
5261
|
private lastTime: number = 0;
|
|
5106
5262
|
private frameRate: number = 60;
|
|
5107
|
-
|
|
5263
|
+
|
|
5108
5264
|
update(time: number): void {
|
|
5109
5265
|
this.frameCount++;
|
|
5110
|
-
|
|
5266
|
+
|
|
5111
5267
|
if (time - this.lastTime >= 1000) {
|
|
5112
5268
|
this.frameRate = this.frameCount;
|
|
5113
5269
|
this.frameCount = 0;
|
|
5114
5270
|
this.lastTime = time;
|
|
5115
|
-
|
|
5271
|
+
|
|
5116
5272
|
if (this.frameRate < 55) {
|
|
5117
5273
|
console.warn(`Low frame rate detected: ${this.frameRate} FPS`);
|
|
5118
5274
|
this.optimizePerformance();
|
|
5119
5275
|
}
|
|
5120
5276
|
}
|
|
5121
5277
|
}
|
|
5122
|
-
|
|
5278
|
+
|
|
5123
5279
|
private optimizePerformance(): void {
|
|
5124
5280
|
// Reduce particle counts, disable effects, etc.
|
|
5125
5281
|
}
|
|
5126
5282
|
}
|
|
5127
|
-
```
|
|
5283
|
+
```
|
|
5128
5284
|
|
|
5129
5285
|
**Update Loop Optimization:**
|
|
5286
|
+
|
|
5130
5287
|
```typescript
|
|
5131
5288
|
// Avoid expensive operations in update loops
|
|
5132
5289
|
class GameScene extends Phaser.Scene {
|
|
5133
5290
|
private updateTimer: number = 0;
|
|
5134
5291
|
private readonly UPDATE_INTERVAL = 100; // ms
|
|
5135
|
-
|
|
5292
|
+
|
|
5136
5293
|
update(time: number, delta: number): void {
|
|
5137
5294
|
// High-frequency updates (every frame)
|
|
5138
5295
|
this.updatePlayer(delta);
|
|
5139
5296
|
this.updatePhysics(delta);
|
|
5140
|
-
|
|
5297
|
+
|
|
5141
5298
|
// Low-frequency updates (10 times per second)
|
|
5142
5299
|
this.updateTimer += delta;
|
|
5143
5300
|
if (this.updateTimer >= this.UPDATE_INTERVAL) {
|
|
@@ -5147,13 +5304,14 @@ class GameScene extends Phaser.Scene {
|
|
|
5147
5304
|
}
|
|
5148
5305
|
}
|
|
5149
5306
|
}
|
|
5150
|
-
```
|
|
5307
|
+
```
|
|
5151
5308
|
|
|
5152
5309
|
## Input Handling
|
|
5153
5310
|
|
|
5154
5311
|
### Cross-Platform Input
|
|
5155
5312
|
|
|
5156
5313
|
**Input Abstraction:**
|
|
5314
|
+
|
|
5157
5315
|
```typescript
|
|
5158
5316
|
interface InputState {
|
|
5159
5317
|
moveLeft: boolean;
|
|
@@ -5169,26 +5327,26 @@ class InputManager {
|
|
|
5169
5327
|
moveRight: false,
|
|
5170
5328
|
jump: false,
|
|
5171
5329
|
action: false,
|
|
5172
|
-
pause: false
|
|
5330
|
+
pause: false,
|
|
5173
5331
|
};
|
|
5174
|
-
|
|
5332
|
+
|
|
5175
5333
|
private keys!: { [key: string]: Phaser.Input.Keyboard.Key };
|
|
5176
5334
|
private pointer!: Phaser.Input.Pointer;
|
|
5177
|
-
|
|
5335
|
+
|
|
5178
5336
|
constructor(private scene: Phaser.Scene) {
|
|
5179
5337
|
this.setupKeyboard();
|
|
5180
5338
|
this.setupTouch();
|
|
5181
5339
|
}
|
|
5182
|
-
|
|
5340
|
+
|
|
5183
5341
|
private setupKeyboard(): void {
|
|
5184
|
-
this.keys = this.scene.input.keyboard.addKeys(
|
|
5342
|
+
this.keys = this.scene.input.keyboard.addKeys("W,A,S,D,SPACE,ESC,UP,DOWN,LEFT,RIGHT");
|
|
5185
5343
|
}
|
|
5186
|
-
|
|
5344
|
+
|
|
5187
5345
|
private setupTouch(): void {
|
|
5188
|
-
this.scene.input.on(
|
|
5189
|
-
this.scene.input.on(
|
|
5346
|
+
this.scene.input.on("pointerdown", this.handlePointerDown, this);
|
|
5347
|
+
this.scene.input.on("pointerup", this.handlePointerUp, this);
|
|
5190
5348
|
}
|
|
5191
|
-
|
|
5349
|
+
|
|
5192
5350
|
update(): void {
|
|
5193
5351
|
// Update input state from multiple sources
|
|
5194
5352
|
this.inputState.moveLeft = this.keys.A.isDown || this.keys.LEFT.isDown;
|
|
@@ -5196,42 +5354,43 @@ class InputManager {
|
|
|
5196
5354
|
this.inputState.jump = Phaser.Input.Keyboard.JustDown(this.keys.SPACE);
|
|
5197
5355
|
// ... handle touch input
|
|
5198
5356
|
}
|
|
5199
|
-
|
|
5357
|
+
|
|
5200
5358
|
getInputState(): InputState {
|
|
5201
5359
|
return { ...this.inputState };
|
|
5202
5360
|
}
|
|
5203
5361
|
}
|
|
5204
|
-
```
|
|
5362
|
+
```
|
|
5205
5363
|
|
|
5206
5364
|
## Error Handling
|
|
5207
5365
|
|
|
5208
5366
|
### Graceful Degradation
|
|
5209
5367
|
|
|
5210
5368
|
**Asset Loading Error Handling:**
|
|
5369
|
+
|
|
5211
5370
|
```typescript
|
|
5212
5371
|
class AssetManager {
|
|
5213
5372
|
loadAssets(): Promise<void> {
|
|
5214
5373
|
return new Promise((resolve, reject) => {
|
|
5215
|
-
this.scene.load.on(
|
|
5216
|
-
this.scene.load.on(
|
|
5217
|
-
this.scene.load.on(
|
|
5218
|
-
|
|
5374
|
+
this.scene.load.on("filecomplete", this.handleFileComplete, this);
|
|
5375
|
+
this.scene.load.on("loaderror", this.handleLoadError, this);
|
|
5376
|
+
this.scene.load.on("complete", () => resolve());
|
|
5377
|
+
|
|
5219
5378
|
this.scene.load.start();
|
|
5220
5379
|
});
|
|
5221
5380
|
}
|
|
5222
|
-
|
|
5381
|
+
|
|
5223
5382
|
private handleLoadError(file: Phaser.Loader.File): void {
|
|
5224
5383
|
console.error(`Failed to load asset: ${file.key}`);
|
|
5225
|
-
|
|
5384
|
+
|
|
5226
5385
|
// Use fallback assets
|
|
5227
5386
|
this.loadFallbackAsset(file.key);
|
|
5228
5387
|
}
|
|
5229
|
-
|
|
5388
|
+
|
|
5230
5389
|
private loadFallbackAsset(key: string): void {
|
|
5231
5390
|
// Load placeholder or default assets
|
|
5232
5391
|
switch (key) {
|
|
5233
|
-
case
|
|
5234
|
-
this.scene.load.image(
|
|
5392
|
+
case "player":
|
|
5393
|
+
this.scene.load.image("player", "assets/defaults/default-player.png");
|
|
5235
5394
|
break;
|
|
5236
5395
|
default:
|
|
5237
5396
|
console.warn(`No fallback for asset: ${key}`);
|
|
@@ -5243,25 +5402,26 @@ class AssetManager {
|
|
|
5243
5402
|
### Runtime Error Recovery
|
|
5244
5403
|
|
|
5245
5404
|
**System Error Handling:**
|
|
5405
|
+
|
|
5246
5406
|
```typescript
|
|
5247
5407
|
class GameSystem {
|
|
5248
5408
|
protected handleError(error: Error, context: string): void {
|
|
5249
5409
|
console.error(`Error in ${context}:`, error);
|
|
5250
|
-
|
|
5410
|
+
|
|
5251
5411
|
// Report to analytics/logging service
|
|
5252
5412
|
this.reportError(error, context);
|
|
5253
|
-
|
|
5413
|
+
|
|
5254
5414
|
// Attempt recovery
|
|
5255
5415
|
this.attemptRecovery(context);
|
|
5256
5416
|
}
|
|
5257
|
-
|
|
5417
|
+
|
|
5258
5418
|
private attemptRecovery(context: string): void {
|
|
5259
5419
|
switch (context) {
|
|
5260
|
-
case
|
|
5420
|
+
case "update":
|
|
5261
5421
|
// Reset system state
|
|
5262
5422
|
this.reset();
|
|
5263
5423
|
break;
|
|
5264
|
-
case
|
|
5424
|
+
case "render":
|
|
5265
5425
|
// Disable visual effects
|
|
5266
5426
|
this.disableEffects();
|
|
5267
5427
|
break;
|
|
@@ -5271,64 +5431,66 @@ class GameSystem {
|
|
|
5271
5431
|
}
|
|
5272
5432
|
}
|
|
5273
5433
|
}
|
|
5274
|
-
```
|
|
5434
|
+
```
|
|
5275
5435
|
|
|
5276
5436
|
## Testing Standards
|
|
5277
5437
|
|
|
5278
5438
|
### Unit Testing
|
|
5279
5439
|
|
|
5280
5440
|
**Game Logic Testing:**
|
|
5441
|
+
|
|
5281
5442
|
```typescript
|
|
5282
5443
|
// Example test for game mechanics
|
|
5283
|
-
describe(
|
|
5444
|
+
describe("HealthComponent", () => {
|
|
5284
5445
|
let healthComponent: HealthComponent;
|
|
5285
|
-
|
|
5446
|
+
|
|
5286
5447
|
beforeEach(() => {
|
|
5287
5448
|
const mockEntity = {} as GameEntity;
|
|
5288
5449
|
healthComponent = new HealthComponent(mockEntity, 100);
|
|
5289
5450
|
});
|
|
5290
|
-
|
|
5291
|
-
test(
|
|
5451
|
+
|
|
5452
|
+
test("should initialize with correct health", () => {
|
|
5292
5453
|
expect(healthComponent.currentHealth).toBe(100);
|
|
5293
5454
|
expect(healthComponent.maxHealth).toBe(100);
|
|
5294
5455
|
});
|
|
5295
|
-
|
|
5296
|
-
test(
|
|
5456
|
+
|
|
5457
|
+
test("should handle damage correctly", () => {
|
|
5297
5458
|
healthComponent.takeDamage(25);
|
|
5298
5459
|
expect(healthComponent.currentHealth).toBe(75);
|
|
5299
5460
|
expect(healthComponent.isAlive()).toBe(true);
|
|
5300
5461
|
});
|
|
5301
|
-
|
|
5302
|
-
test(
|
|
5462
|
+
|
|
5463
|
+
test("should handle death correctly", () => {
|
|
5303
5464
|
healthComponent.takeDamage(150);
|
|
5304
5465
|
expect(healthComponent.currentHealth).toBe(0);
|
|
5305
5466
|
expect(healthComponent.isAlive()).toBe(false);
|
|
5306
5467
|
});
|
|
5307
5468
|
});
|
|
5308
|
-
```
|
|
5469
|
+
```
|
|
5309
5470
|
|
|
5310
5471
|
### Integration Testing
|
|
5311
5472
|
|
|
5312
5473
|
**Scene Testing:**
|
|
5474
|
+
|
|
5313
5475
|
```typescript
|
|
5314
|
-
describe(
|
|
5476
|
+
describe("GameScene Integration", () => {
|
|
5315
5477
|
let scene: GameScene;
|
|
5316
5478
|
let mockGame: Phaser.Game;
|
|
5317
|
-
|
|
5479
|
+
|
|
5318
5480
|
beforeEach(() => {
|
|
5319
5481
|
// Mock Phaser game instance
|
|
5320
5482
|
mockGame = createMockGame();
|
|
5321
5483
|
scene = new GameScene();
|
|
5322
5484
|
});
|
|
5323
|
-
|
|
5324
|
-
test(
|
|
5485
|
+
|
|
5486
|
+
test("should initialize all systems", () => {
|
|
5325
5487
|
scene.create({});
|
|
5326
|
-
|
|
5488
|
+
|
|
5327
5489
|
expect(scene.gameManager).toBeDefined();
|
|
5328
5490
|
expect(scene.inputManager).toBeDefined();
|
|
5329
5491
|
});
|
|
5330
5492
|
});
|
|
5331
|
-
```
|
|
5493
|
+
```
|
|
5332
5494
|
|
|
5333
5495
|
## File Organization
|
|
5334
5496
|
|
|
@@ -5382,21 +5544,25 @@ src/
|
|
|
5382
5544
|
### Story Implementation Process
|
|
5383
5545
|
|
|
5384
5546
|
1. **Read Story Requirements:**
|
|
5547
|
+
|
|
5385
5548
|
- Understand acceptance criteria
|
|
5386
5549
|
- Identify technical requirements
|
|
5387
5550
|
- Review performance constraints
|
|
5388
5551
|
|
|
5389
5552
|
2. **Plan Implementation:**
|
|
5553
|
+
|
|
5390
5554
|
- Identify files to create/modify
|
|
5391
5555
|
- Consider component architecture
|
|
5392
5556
|
- Plan testing approach
|
|
5393
5557
|
|
|
5394
5558
|
3. **Implement Feature:**
|
|
5559
|
+
|
|
5395
5560
|
- Follow TypeScript strict mode
|
|
5396
5561
|
- Use established patterns
|
|
5397
5562
|
- Maintain 60 FPS performance
|
|
5398
5563
|
|
|
5399
5564
|
4. **Test Implementation:**
|
|
5565
|
+
|
|
5400
5566
|
- Write unit tests for game logic
|
|
5401
5567
|
- Test cross-platform functionality
|
|
5402
5568
|
- Validate performance targets
|
|
@@ -5409,6 +5575,7 @@ src/
|
|
|
5409
5575
|
### Code Review Checklist
|
|
5410
5576
|
|
|
5411
5577
|
**Before Committing:**
|
|
5578
|
+
|
|
5412
5579
|
- [ ] TypeScript compiles without errors
|
|
5413
5580
|
- [ ] All tests pass
|
|
5414
5581
|
- [ ] Performance targets met (60 FPS)
|
|
@@ -5422,17 +5589,20 @@ src/
|
|
|
5422
5589
|
## Performance Targets
|
|
5423
5590
|
|
|
5424
5591
|
### Frame Rate Requirements
|
|
5592
|
+
|
|
5425
5593
|
- **Desktop**: Maintain 60 FPS at 1080p
|
|
5426
5594
|
- **Mobile**: Maintain 60 FPS on mid-range devices, minimum 30 FPS on low-end
|
|
5427
5595
|
- **Optimization**: Implement dynamic quality scaling when performance drops
|
|
5428
5596
|
|
|
5429
5597
|
### Memory Management
|
|
5598
|
+
|
|
5430
5599
|
- **Total Memory**: Under 100MB for full game
|
|
5431
5600
|
- **Per Scene**: Under 50MB per gameplay scene
|
|
5432
5601
|
- **Asset Loading**: Progressive loading to stay under limits
|
|
5433
5602
|
- **Garbage Collection**: Minimize object creation in update loops
|
|
5434
5603
|
|
|
5435
5604
|
### Loading Performance
|
|
5605
|
+
|
|
5436
5606
|
- **Initial Load**: Under 5 seconds for game start
|
|
5437
5607
|
- **Scene Transitions**: Under 2 seconds between scenes
|
|
5438
5608
|
- **Asset Streaming**: Background loading for upcoming content
|
|
@@ -5457,6 +5627,7 @@ Create detailed, actionable game development stories that enable AI developers t
|
|
|
5457
5627
|
## Prerequisites
|
|
5458
5628
|
|
|
5459
5629
|
Before creating stories, ensure you have:
|
|
5630
|
+
|
|
5460
5631
|
- Completed Game Design Document (GDD)
|
|
5461
5632
|
- Game Architecture Document
|
|
5462
5633
|
- Epic definition this story belongs to
|
|
@@ -5467,12 +5638,14 @@ Before creating stories, ensure you have:
|
|
|
5467
5638
|
### 1. Story Identification
|
|
5468
5639
|
|
|
5469
5640
|
**Review Epic Context:**
|
|
5641
|
+
|
|
5470
5642
|
- Understand the epic's overall goal
|
|
5471
5643
|
- Identify specific features that need implementation
|
|
5472
5644
|
- Review any existing stories in the epic
|
|
5473
5645
|
- Ensure no duplicate work
|
|
5474
5646
|
|
|
5475
5647
|
**Feature Analysis:**
|
|
5648
|
+
|
|
5476
5649
|
- Reference specific GDD sections
|
|
5477
5650
|
- Understand player experience goals
|
|
5478
5651
|
- Identify technical complexity
|
|
@@ -5481,12 +5654,14 @@ Before creating stories, ensure you have:
|
|
|
5481
5654
|
### 2. Story Scoping
|
|
5482
5655
|
|
|
5483
5656
|
**Single Responsibility:**
|
|
5657
|
+
|
|
5484
5658
|
- Focus on one specific game feature
|
|
5485
5659
|
- Ensure story is completable in 1-3 days
|
|
5486
5660
|
- Break down complex features into multiple stories
|
|
5487
5661
|
- Maintain clear boundaries with other stories
|
|
5488
5662
|
|
|
5489
5663
|
**Implementation Clarity:**
|
|
5664
|
+
|
|
5490
5665
|
- Define exactly what needs to be built
|
|
5491
5666
|
- Specify all technical requirements
|
|
5492
5667
|
- Include all necessary integration points
|
|
@@ -5498,6 +5673,7 @@ Before creating stories, ensure you have:
|
|
|
5498
5673
|
Use `templates#game-story-tmpl` following all embedded LLM instructions
|
|
5499
5674
|
|
|
5500
5675
|
**Key Focus Areas:**
|
|
5676
|
+
|
|
5501
5677
|
- Clear, actionable description
|
|
5502
5678
|
- Specific acceptance criteria
|
|
5503
5679
|
- Detailed technical specifications
|
|
@@ -5507,18 +5683,21 @@ Use `templates#game-story-tmpl` following all embedded LLM instructions
|
|
|
5507
5683
|
### 4. Story Validation
|
|
5508
5684
|
|
|
5509
5685
|
**Technical Review:**
|
|
5686
|
+
|
|
5510
5687
|
- Verify all technical specifications are complete
|
|
5511
5688
|
- Ensure integration points are clearly defined
|
|
5512
5689
|
- Confirm file paths match architecture
|
|
5513
5690
|
- Validate TypeScript interfaces and classes
|
|
5514
5691
|
|
|
5515
5692
|
**Game Design Alignment:**
|
|
5693
|
+
|
|
5516
5694
|
- Confirm story implements GDD requirements
|
|
5517
5695
|
- Verify player experience goals are met
|
|
5518
5696
|
- Check balance parameters are included
|
|
5519
5697
|
- Ensure game mechanics are correctly interpreted
|
|
5520
5698
|
|
|
5521
5699
|
**Implementation Readiness:**
|
|
5700
|
+
|
|
5522
5701
|
- All dependencies identified
|
|
5523
5702
|
- Assets requirements specified
|
|
5524
5703
|
- Testing criteria defined
|
|
@@ -5530,6 +5709,7 @@ Use `templates#game-story-tmpl` following all embedded LLM instructions
|
|
|
5530
5709
|
Execute `checklists#game-story-dod-checklist` against completed story
|
|
5531
5710
|
|
|
5532
5711
|
**Story Criteria:**
|
|
5712
|
+
|
|
5533
5713
|
- Story is immediately actionable
|
|
5534
5714
|
- No design decisions left to developer
|
|
5535
5715
|
- Technical requirements are complete
|
|
@@ -5539,12 +5719,14 @@ Execute `checklists#game-story-dod-checklist` against completed story
|
|
|
5539
5719
|
### 6. Story Refinement
|
|
5540
5720
|
|
|
5541
5721
|
**Developer Perspective:**
|
|
5722
|
+
|
|
5542
5723
|
- Can a developer start implementation immediately?
|
|
5543
5724
|
- Are all technical questions answered?
|
|
5544
5725
|
- Is the scope appropriate for the estimated points?
|
|
5545
5726
|
- Are all dependencies clearly identified?
|
|
5546
5727
|
|
|
5547
5728
|
**Iterative Improvement:**
|
|
5729
|
+
|
|
5548
5730
|
- Address any gaps or ambiguities
|
|
5549
5731
|
- Clarify complex technical requirements
|
|
5550
5732
|
- Ensure story fits within epic scope
|
|
@@ -5553,6 +5735,7 @@ Execute `checklists#game-story-dod-checklist` against completed story
|
|
|
5553
5735
|
## Story Elements Checklist
|
|
5554
5736
|
|
|
5555
5737
|
### Required Sections
|
|
5738
|
+
|
|
5556
5739
|
- [ ] Clear, specific description
|
|
5557
5740
|
- [ ] Complete acceptance criteria (functional, technical, game design)
|
|
5558
5741
|
- [ ] Detailed technical specifications
|
|
@@ -5566,6 +5749,7 @@ Execute `checklists#game-story-dod-checklist` against completed story
|
|
|
5566
5749
|
- [ ] Definition of Done checklist
|
|
5567
5750
|
|
|
5568
5751
|
### Game-Specific Requirements
|
|
5752
|
+
|
|
5569
5753
|
- [ ] GDD section references
|
|
5570
5754
|
- [ ] Game mechanic implementation details
|
|
5571
5755
|
- [ ] Player experience goals
|
|
@@ -5575,6 +5759,7 @@ Execute `checklists#game-story-dod-checklist` against completed story
|
|
|
5575
5759
|
- [ ] Cross-platform considerations
|
|
5576
5760
|
|
|
5577
5761
|
### Technical Quality
|
|
5762
|
+
|
|
5578
5763
|
- [ ] TypeScript strict mode compliance
|
|
5579
5764
|
- [ ] Architecture document alignment
|
|
5580
5765
|
- [ ] Code organization follows standards
|
|
@@ -5585,18 +5770,21 @@ Execute `checklists#game-story-dod-checklist` against completed story
|
|
|
5585
5770
|
## Common Pitfalls
|
|
5586
5771
|
|
|
5587
5772
|
**Scope Issues:**
|
|
5773
|
+
|
|
5588
5774
|
- Story too large (break into multiple stories)
|
|
5589
5775
|
- Story too vague (add specific requirements)
|
|
5590
5776
|
- Missing dependencies (identify all prerequisites)
|
|
5591
5777
|
- Unclear boundaries (define what's in/out of scope)
|
|
5592
5778
|
|
|
5593
5779
|
**Technical Issues:**
|
|
5780
|
+
|
|
5594
5781
|
- Missing integration details
|
|
5595
5782
|
- Incomplete technical specifications
|
|
5596
5783
|
- Undefined interfaces or classes
|
|
5597
5784
|
- Missing performance requirements
|
|
5598
5785
|
|
|
5599
5786
|
**Game Design Issues:**
|
|
5787
|
+
|
|
5600
5788
|
- Not referencing GDD properly
|
|
5601
5789
|
- Missing player experience context
|
|
5602
5790
|
- Unclear game mechanic implementation
|
|
@@ -5605,6 +5793,7 @@ Execute `checklists#game-story-dod-checklist` against completed story
|
|
|
5605
5793
|
## Success Criteria
|
|
5606
5794
|
|
|
5607
5795
|
**Story Readiness:**
|
|
5796
|
+
|
|
5608
5797
|
- [ ] Developer can start implementation immediately
|
|
5609
5798
|
- [ ] No additional design decisions required
|
|
5610
5799
|
- [ ] All technical questions answered
|
|
@@ -5613,6 +5802,7 @@ Execute `checklists#game-story-dod-checklist` against completed story
|
|
|
5613
5802
|
- [ ] Story fits within epic scope
|
|
5614
5803
|
|
|
5615
5804
|
**Quality Validation:**
|
|
5805
|
+
|
|
5616
5806
|
- [ ] Game story DOD checklist passes
|
|
5617
5807
|
- [ ] Architecture alignment confirmed
|
|
5618
5808
|
- [ ] GDD requirements covered
|
|
@@ -5622,6 +5812,7 @@ Execute `checklists#game-story-dod-checklist` against completed story
|
|
|
5622
5812
|
## Handoff Protocol
|
|
5623
5813
|
|
|
5624
5814
|
**To Game Developer:**
|
|
5815
|
+
|
|
5625
5816
|
1. Provide story document
|
|
5626
5817
|
2. Confirm GDD and architecture access
|
|
5627
5818
|
3. Verify all dependencies are met
|
|
@@ -5629,6 +5820,7 @@ Execute `checklists#game-story-dod-checklist` against completed story
|
|
|
5629
5820
|
5. Establish check-in schedule
|
|
5630
5821
|
|
|
5631
5822
|
**Story Status Updates:**
|
|
5823
|
+
|
|
5632
5824
|
- Draft → Ready for Development
|
|
5633
5825
|
- In Development → Code Review
|
|
5634
5826
|
- Code Review → Testing
|