chore: add code formatting config and pre-commit hooks (#450)
This commit is contained in:
@@ -981,8 +981,8 @@ template:
|
||||
version: 2.0
|
||||
output:
|
||||
format: markdown
|
||||
filename: "docs/{{game_name}}-game-design-document.md"
|
||||
title: "{{game_title}} Game Design Document (GDD)"
|
||||
filename: 'docs/{{game_name}}-game-design-document.md'
|
||||
title: '{{game_title}} Game Design Document (GDD)'
|
||||
|
||||
workflow:
|
||||
mode: interactive
|
||||
@@ -991,7 +991,7 @@ sections:
|
||||
- id: initial-setup
|
||||
instruction: |
|
||||
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.
|
||||
|
||||
|
||||
If available, review any provided documents or ask if any are optionally available: Project Brief, Market Research, Competitive Analysis
|
||||
|
||||
- id: executive-summary
|
||||
@@ -1019,7 +1019,7 @@ sections:
|
||||
title: Unique Selling Points
|
||||
instruction: List 3-5 key features that differentiate this game from competitors
|
||||
type: numbered-list
|
||||
template: "{{usp}}"
|
||||
template: '{{usp}}'
|
||||
|
||||
- id: core-gameplay
|
||||
title: Core Gameplay
|
||||
@@ -1036,7 +1036,7 @@ sections:
|
||||
instruction: Define the 30-60 second loop that players will repeat. Be specific about timing and player actions.
|
||||
template: |
|
||||
**Primary Loop ({{duration}} seconds):**
|
||||
|
||||
|
||||
1. {{action_1}} ({{time_1}}s)
|
||||
2. {{action_2}} ({{time_2}}s)
|
||||
3. {{action_3}} ({{time_3}}s)
|
||||
@@ -1046,12 +1046,12 @@ sections:
|
||||
instruction: Clearly define success and failure states
|
||||
template: |
|
||||
**Victory Conditions:**
|
||||
|
||||
|
||||
- {{win_condition_1}}
|
||||
- {{win_condition_2}}
|
||||
|
||||
|
||||
**Failure States:**
|
||||
|
||||
|
||||
- {{loss_condition_1}}
|
||||
- {{loss_condition_2}}
|
||||
|
||||
@@ -1064,20 +1064,20 @@ sections:
|
||||
repeatable: true
|
||||
sections:
|
||||
- id: mechanic
|
||||
title: "{{mechanic_name}}"
|
||||
title: '{{mechanic_name}}'
|
||||
template: |
|
||||
**Description:** {{detailed_description}}
|
||||
|
||||
|
||||
**Player Input:** {{input_method}}
|
||||
|
||||
|
||||
**System Response:** {{game_response}}
|
||||
|
||||
|
||||
**Implementation Notes:**
|
||||
|
||||
|
||||
- {{tech_requirement_1}}
|
||||
- {{tech_requirement_2}}
|
||||
- {{performance_consideration}}
|
||||
|
||||
|
||||
**Dependencies:** {{other_mechanics_needed}}
|
||||
- id: controls
|
||||
title: Controls
|
||||
@@ -1096,9 +1096,9 @@ sections:
|
||||
title: Player Progression
|
||||
template: |
|
||||
**Progression Type:** {{linear|branching|metroidvania}}
|
||||
|
||||
|
||||
**Key Milestones:**
|
||||
|
||||
|
||||
1. **{{milestone_1}}** - {{unlock_description}}
|
||||
2. **{{milestone_2}}** - {{unlock_description}}
|
||||
3. **{{milestone_3}}** - {{unlock_description}}
|
||||
@@ -1129,15 +1129,15 @@ sections:
|
||||
repeatable: true
|
||||
sections:
|
||||
- id: level-type
|
||||
title: "{{level_type_name}}"
|
||||
title: '{{level_type_name}}'
|
||||
template: |
|
||||
**Purpose:** {{gameplay_purpose}}
|
||||
**Duration:** {{target_time}}
|
||||
**Key Elements:** {{required_mechanics}}
|
||||
**Difficulty:** {{relative_difficulty}}
|
||||
|
||||
|
||||
**Structure Template:**
|
||||
|
||||
|
||||
- Introduction: {{intro_description}}
|
||||
- Challenge: {{main_challenge}}
|
||||
- Resolution: {{completion_requirement}}
|
||||
@@ -1163,13 +1163,13 @@ sections:
|
||||
title: Platform Specific
|
||||
template: |
|
||||
**Desktop:**
|
||||
|
||||
|
||||
- Resolution: {{min_resolution}} - {{max_resolution}}
|
||||
- Input: Keyboard, Mouse, Gamepad
|
||||
- Browser: Chrome 80+, Firefox 75+, Safari 13+
|
||||
|
||||
|
||||
**Mobile:**
|
||||
|
||||
|
||||
- Resolution: {{mobile_min}} - {{mobile_max}}
|
||||
- Input: Touch, Tilt (optional)
|
||||
- OS: iOS 13+, Android 8+
|
||||
@@ -1178,14 +1178,14 @@ sections:
|
||||
instruction: Define asset specifications for the art and audio teams
|
||||
template: |
|
||||
**Visual Assets:**
|
||||
|
||||
|
||||
- Art Style: {{style_description}}
|
||||
- Color Palette: {{color_specification}}
|
||||
- Animation: {{animation_requirements}}
|
||||
- UI Resolution: {{ui_specs}}
|
||||
|
||||
|
||||
**Audio Assets:**
|
||||
|
||||
|
||||
- Music Style: {{music_genre}}
|
||||
- Sound Effects: {{sfx_requirements}}
|
||||
- Voice Acting: {{voice_needs}}
|
||||
@@ -1198,7 +1198,7 @@ sections:
|
||||
title: Engine Configuration
|
||||
template: |
|
||||
**Phaser 3 Setup:**
|
||||
|
||||
|
||||
- TypeScript: Strict mode enabled
|
||||
- Physics: {{physics_system}} (Arcade/Matter)
|
||||
- Renderer: WebGL with Canvas fallback
|
||||
@@ -1207,7 +1207,7 @@ sections:
|
||||
title: Code Architecture
|
||||
template: |
|
||||
**Required Systems:**
|
||||
|
||||
|
||||
- Scene Management
|
||||
- State Management
|
||||
- Asset Loading
|
||||
@@ -1219,7 +1219,7 @@ sections:
|
||||
title: Data Management
|
||||
template: |
|
||||
**Save Data:**
|
||||
|
||||
|
||||
- Progress tracking
|
||||
- Settings persistence
|
||||
- Statistics collection
|
||||
@@ -1230,10 +1230,10 @@ sections:
|
||||
instruction: Break down the development into phases that can be converted to epics
|
||||
sections:
|
||||
- id: phase-1-core-systems
|
||||
title: "Phase 1: Core Systems ({{duration}})"
|
||||
title: 'Phase 1: Core Systems ({{duration}})'
|
||||
sections:
|
||||
- id: foundation-epic
|
||||
title: "Epic: Foundation"
|
||||
title: 'Epic: Foundation'
|
||||
type: bullet-list
|
||||
template: |
|
||||
- Engine setup and configuration
|
||||
@@ -1241,41 +1241,41 @@ sections:
|
||||
- Core input handling
|
||||
- Asset loading pipeline
|
||||
- id: core-mechanics-epic
|
||||
title: "Epic: Core Mechanics"
|
||||
title: 'Epic: Core Mechanics'
|
||||
type: bullet-list
|
||||
template: |
|
||||
- {{primary_mechanic}} implementation
|
||||
- Basic physics and collision
|
||||
- Player controller
|
||||
- id: phase-2-gameplay-features
|
||||
title: "Phase 2: Gameplay Features ({{duration}})"
|
||||
title: 'Phase 2: Gameplay Features ({{duration}})'
|
||||
sections:
|
||||
- id: game-systems-epic
|
||||
title: "Epic: Game Systems"
|
||||
title: 'Epic: Game Systems'
|
||||
type: bullet-list
|
||||
template: |
|
||||
- {{mechanic_2}} implementation
|
||||
- {{mechanic_3}} implementation
|
||||
- Game state management
|
||||
- id: content-creation-epic
|
||||
title: "Epic: Content Creation"
|
||||
title: 'Epic: Content Creation'
|
||||
type: bullet-list
|
||||
template: |
|
||||
- Level loading system
|
||||
- First playable levels
|
||||
- Basic UI implementation
|
||||
- id: phase-3-polish-optimization
|
||||
title: "Phase 3: Polish & Optimization ({{duration}})"
|
||||
title: 'Phase 3: Polish & Optimization ({{duration}})'
|
||||
sections:
|
||||
- id: performance-epic
|
||||
title: "Epic: Performance"
|
||||
title: 'Epic: Performance'
|
||||
type: bullet-list
|
||||
template: |
|
||||
- Optimization and profiling
|
||||
- Mobile platform testing
|
||||
- Memory management
|
||||
- id: user-experience-epic
|
||||
title: "Epic: User Experience"
|
||||
title: 'Epic: User Experience'
|
||||
type: bullet-list
|
||||
template: |
|
||||
- Audio implementation
|
||||
@@ -1317,7 +1317,7 @@ sections:
|
||||
title: References
|
||||
instruction: List any competitive analysis, inspiration, or research sources
|
||||
type: bullet-list
|
||||
template: "{{reference}}"
|
||||
template: '{{reference}}'
|
||||
==================== END: .bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.yaml ====================
|
||||
|
||||
==================== START: .bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.yaml ====================
|
||||
@@ -1327,8 +1327,8 @@ template:
|
||||
version: 2.0
|
||||
output:
|
||||
format: markdown
|
||||
filename: "docs/{{game_name}}-level-design-document.md"
|
||||
title: "{{game_title}} Level Design Document"
|
||||
filename: 'docs/{{game_name}}-level-design-document.md'
|
||||
title: '{{game_title}} Level Design Document'
|
||||
|
||||
workflow:
|
||||
mode: interactive
|
||||
@@ -1337,7 +1337,7 @@ sections:
|
||||
- id: initial-setup
|
||||
instruction: |
|
||||
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.
|
||||
|
||||
|
||||
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.
|
||||
|
||||
- id: introduction
|
||||
@@ -1345,7 +1345,7 @@ sections:
|
||||
instruction: Establish the purpose and scope of level design for this game
|
||||
content: |
|
||||
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.
|
||||
|
||||
|
||||
This framework ensures consistency across all levels while providing flexibility for creative level design within established technical and design constraints.
|
||||
sections:
|
||||
- id: change-log
|
||||
@@ -1389,32 +1389,32 @@ sections:
|
||||
repeatable: true
|
||||
sections:
|
||||
- id: level-category
|
||||
title: "{{category_name}} Levels"
|
||||
title: '{{category_name}} Levels'
|
||||
template: |
|
||||
**Purpose:** {{gameplay_purpose}}
|
||||
|
||||
|
||||
**Target Duration:** {{min_time}} - {{max_time}} minutes
|
||||
|
||||
|
||||
**Difficulty Range:** {{difficulty_scale}}
|
||||
|
||||
|
||||
**Key Mechanics Featured:**
|
||||
|
||||
|
||||
- {{mechanic_1}} - {{usage_description}}
|
||||
- {{mechanic_2}} - {{usage_description}}
|
||||
|
||||
|
||||
**Player Objectives:**
|
||||
|
||||
|
||||
- Primary: {{primary_objective}}
|
||||
- Secondary: {{secondary_objective}}
|
||||
- Hidden: {{secret_objective}}
|
||||
|
||||
|
||||
**Success Criteria:**
|
||||
|
||||
|
||||
- {{completion_requirement_1}}
|
||||
- {{completion_requirement_2}}
|
||||
|
||||
|
||||
**Technical Requirements:**
|
||||
|
||||
|
||||
- Maximum entities: {{entity_limit}}
|
||||
- Performance target: {{fps_target}} FPS
|
||||
- Memory budget: {{memory_limit}}MB
|
||||
@@ -1429,11 +1429,11 @@ sections:
|
||||
instruction: Based on GDD requirements, define the overall level organization
|
||||
template: |
|
||||
**Organization Type:** {{linear|hub_world|open_world}}
|
||||
|
||||
|
||||
**Total Level Count:** {{number}}
|
||||
|
||||
|
||||
**World Breakdown:**
|
||||
|
||||
|
||||
- World 1: {{level_count}} levels - {{theme}} - {{difficulty_range}}
|
||||
- World 2: {{level_count}} levels - {{theme}} - {{difficulty_range}}
|
||||
- World 3: {{level_count}} levels - {{theme}} - {{difficulty_range}}
|
||||
@@ -1468,7 +1468,7 @@ sections:
|
||||
instruction: Define how players access new levels
|
||||
template: |
|
||||
**Progression Gates:**
|
||||
|
||||
|
||||
- Linear progression: Complete previous level
|
||||
- Star requirements: {{star_count}} stars to unlock
|
||||
- Skill gates: Demonstrate {{skill_requirement}}
|
||||
@@ -1483,17 +1483,17 @@ sections:
|
||||
instruction: Define all environmental components that can be used in levels
|
||||
template: |
|
||||
**Terrain Types:**
|
||||
|
||||
|
||||
- {{terrain_1}}: {{properties_and_usage}}
|
||||
- {{terrain_2}}: {{properties_and_usage}}
|
||||
|
||||
|
||||
**Interactive Objects:**
|
||||
|
||||
|
||||
- {{object_1}}: {{behavior_and_purpose}}
|
||||
- {{object_2}}: {{behavior_and_purpose}}
|
||||
|
||||
|
||||
**Hazards and Obstacles:**
|
||||
|
||||
|
||||
- {{hazard_1}}: {{damage_and_behavior}}
|
||||
- {{hazard_2}}: {{damage_and_behavior}}
|
||||
- id: collectibles-rewards
|
||||
@@ -1501,18 +1501,18 @@ sections:
|
||||
instruction: Define all collectible items and their placement rules
|
||||
template: |
|
||||
**Collectible Types:**
|
||||
|
||||
|
||||
- {{collectible_1}}: {{value_and_purpose}}
|
||||
- {{collectible_2}}: {{value_and_purpose}}
|
||||
|
||||
|
||||
**Placement Guidelines:**
|
||||
|
||||
|
||||
- Mandatory collectibles: {{placement_rules}}
|
||||
- Optional collectibles: {{placement_rules}}
|
||||
- Secret collectibles: {{placement_rules}}
|
||||
|
||||
|
||||
**Reward Distribution:**
|
||||
|
||||
|
||||
- Easy to find: {{percentage}}%
|
||||
- Moderate challenge: {{percentage}}%
|
||||
- High skill required: {{percentage}}%
|
||||
@@ -1521,18 +1521,18 @@ sections:
|
||||
instruction: Define how enemies should be placed and balanced in levels
|
||||
template: |
|
||||
**Enemy Categories:**
|
||||
|
||||
|
||||
- {{enemy_type_1}}: {{behavior_and_usage}}
|
||||
- {{enemy_type_2}}: {{behavior_and_usage}}
|
||||
|
||||
|
||||
**Placement Principles:**
|
||||
|
||||
|
||||
- Introduction encounters: {{guideline}}
|
||||
- Standard encounters: {{guideline}}
|
||||
- Challenge encounters: {{guideline}}
|
||||
|
||||
|
||||
**Difficulty Scaling:**
|
||||
|
||||
|
||||
- Enemy count progression: {{scaling_rule}}
|
||||
- Enemy type introduction: {{pacing_rule}}
|
||||
- Encounter complexity: {{complexity_rule}}
|
||||
@@ -1545,14 +1545,14 @@ sections:
|
||||
title: Level Layout Principles
|
||||
template: |
|
||||
**Spatial Design:**
|
||||
|
||||
|
||||
- Grid size: {{grid_dimensions}}
|
||||
- Minimum path width: {{width_units}}
|
||||
- Maximum vertical distance: {{height_units}}
|
||||
- Safe zones placement: {{safety_guidelines}}
|
||||
|
||||
|
||||
**Navigation Design:**
|
||||
|
||||
|
||||
- Clear path indication: {{visual_cues}}
|
||||
- Landmark placement: {{landmark_rules}}
|
||||
- Dead end avoidance: {{dead_end_policy}}
|
||||
@@ -1562,13 +1562,13 @@ sections:
|
||||
instruction: Define how to control the rhythm and pace of gameplay within levels
|
||||
template: |
|
||||
**Action Sequences:**
|
||||
|
||||
|
||||
- High intensity duration: {{max_duration}}
|
||||
- Rest period requirement: {{min_rest_time}}
|
||||
- Intensity variation: {{pacing_pattern}}
|
||||
|
||||
|
||||
**Learning Sequences:**
|
||||
|
||||
|
||||
- New mechanic introduction: {{teaching_method}}
|
||||
- Practice opportunity: {{practice_duration}}
|
||||
- Skill application: {{application_context}}
|
||||
@@ -1577,14 +1577,14 @@ sections:
|
||||
instruction: Define how to create appropriate challenges for each level type
|
||||
template: |
|
||||
**Challenge Types:**
|
||||
|
||||
|
||||
- Execution challenges: {{skill_requirements}}
|
||||
- Puzzle challenges: {{complexity_guidelines}}
|
||||
- Time challenges: {{time_pressure_rules}}
|
||||
- Resource challenges: {{resource_management}}
|
||||
|
||||
|
||||
**Difficulty Calibration:**
|
||||
|
||||
|
||||
- Skill check frequency: {{frequency_guidelines}}
|
||||
- Failure recovery: {{retry_mechanics}}
|
||||
- Hint system integration: {{help_system}}
|
||||
@@ -1598,7 +1598,7 @@ sections:
|
||||
instruction: Define how level data should be structured for implementation
|
||||
template: |
|
||||
**Level File Format:**
|
||||
|
||||
|
||||
- Data format: {{json|yaml|custom}}
|
||||
- File naming: `level_{{world}}_{{number}}.{{extension}}`
|
||||
- Data organization: {{structure_description}}
|
||||
@@ -1636,14 +1636,14 @@ sections:
|
||||
instruction: Define how level assets are organized and loaded
|
||||
template: |
|
||||
**Tilemap Requirements:**
|
||||
|
||||
|
||||
- Tile size: {{tile_dimensions}}px
|
||||
- Tileset organization: {{tileset_structure}}
|
||||
- Layer organization: {{layer_system}}
|
||||
- Collision data: {{collision_format}}
|
||||
|
||||
|
||||
**Audio Integration:**
|
||||
|
||||
|
||||
- Background music: {{music_requirements}}
|
||||
- Ambient sounds: {{ambient_system}}
|
||||
- Dynamic audio: {{dynamic_audio_rules}}
|
||||
@@ -1652,19 +1652,19 @@ sections:
|
||||
instruction: Define performance requirements for level systems
|
||||
template: |
|
||||
**Entity Limits:**
|
||||
|
||||
|
||||
- Maximum active entities: {{entity_limit}}
|
||||
- Maximum particles: {{particle_limit}}
|
||||
- Maximum audio sources: {{audio_limit}}
|
||||
|
||||
|
||||
**Memory Management:**
|
||||
|
||||
|
||||
- Texture memory budget: {{texture_memory}}MB
|
||||
- Audio memory budget: {{audio_memory}}MB
|
||||
- Level loading time: <{{load_time}}s
|
||||
|
||||
|
||||
**Culling and LOD:**
|
||||
|
||||
|
||||
- Off-screen culling: {{culling_distance}}
|
||||
- Level-of-detail rules: {{lod_system}}
|
||||
- Asset streaming: {{streaming_requirements}}
|
||||
@@ -1677,13 +1677,13 @@ sections:
|
||||
title: Automated Testing
|
||||
template: |
|
||||
**Performance Testing:**
|
||||
|
||||
|
||||
- Frame rate validation: Maintain {{fps_target}} FPS
|
||||
- Memory usage monitoring: Stay under {{memory_limit}}MB
|
||||
- Loading time verification: Complete in <{{load_time}}s
|
||||
|
||||
|
||||
**Gameplay Testing:**
|
||||
|
||||
|
||||
- Completion path validation: All objectives achievable
|
||||
- Collectible accessibility: All items reachable
|
||||
- Softlock prevention: No unwinnable states
|
||||
@@ -1694,31 +1694,31 @@ sections:
|
||||
title: Playtesting Checklist
|
||||
type: checklist
|
||||
items:
|
||||
- "Level completes within target time range"
|
||||
- "All mechanics function correctly"
|
||||
- "Difficulty feels appropriate for level category"
|
||||
- "Player guidance is clear and effective"
|
||||
- "No exploits or sequence breaks (unless intended)"
|
||||
- 'Level completes within target time range'
|
||||
- 'All mechanics function correctly'
|
||||
- 'Difficulty feels appropriate for level category'
|
||||
- 'Player guidance is clear and effective'
|
||||
- 'No exploits or sequence breaks (unless intended)'
|
||||
- id: player-experience-testing
|
||||
title: Player Experience Testing
|
||||
type: checklist
|
||||
items:
|
||||
- "Tutorial levels teach effectively"
|
||||
- "Challenge feels fair and rewarding"
|
||||
- "Flow and pacing maintain engagement"
|
||||
- "Audio and visual feedback support gameplay"
|
||||
- 'Tutorial levels teach effectively'
|
||||
- 'Challenge feels fair and rewarding'
|
||||
- 'Flow and pacing maintain engagement'
|
||||
- 'Audio and visual feedback support gameplay'
|
||||
- id: balance-validation
|
||||
title: Balance Validation
|
||||
template: |
|
||||
**Metrics Collection:**
|
||||
|
||||
|
||||
- Completion rate: Target {{completion_percentage}}%
|
||||
- Average completion time: {{target_time}} ± {{variance}}
|
||||
- Death count per level: <{{max_deaths}}
|
||||
- Collectible discovery rate: {{discovery_percentage}}%
|
||||
|
||||
|
||||
**Iteration Guidelines:**
|
||||
|
||||
|
||||
- Adjustment criteria: {{criteria_for_changes}}
|
||||
- Testing sample size: {{minimum_testers}}
|
||||
- Validation period: {{testing_duration}}
|
||||
@@ -1731,14 +1731,14 @@ sections:
|
||||
title: Design Phase
|
||||
template: |
|
||||
**Concept Development:**
|
||||
|
||||
|
||||
1. Define level purpose and goals
|
||||
2. Create rough layout sketch
|
||||
3. Identify key mechanics and challenges
|
||||
4. Estimate difficulty and duration
|
||||
|
||||
|
||||
**Documentation Requirements:**
|
||||
|
||||
|
||||
- Level design brief
|
||||
- Layout diagrams
|
||||
- Mechanic integration notes
|
||||
@@ -1747,15 +1747,15 @@ sections:
|
||||
title: Implementation Phase
|
||||
template: |
|
||||
**Technical Implementation:**
|
||||
|
||||
|
||||
1. Create level data file
|
||||
2. Build tilemap and layout
|
||||
3. Place entities and objects
|
||||
4. Configure level logic and triggers
|
||||
5. Integrate audio and visual effects
|
||||
|
||||
|
||||
**Quality Assurance:**
|
||||
|
||||
|
||||
1. Automated testing execution
|
||||
2. Internal playtesting
|
||||
3. Performance validation
|
||||
@@ -1764,14 +1764,14 @@ sections:
|
||||
title: Integration Phase
|
||||
template: |
|
||||
**Game Integration:**
|
||||
|
||||
|
||||
1. Level progression integration
|
||||
2. Save system compatibility
|
||||
3. Analytics integration
|
||||
4. Achievement system integration
|
||||
|
||||
|
||||
**Final Validation:**
|
||||
|
||||
|
||||
1. Full game context testing
|
||||
2. Performance regression testing
|
||||
3. Platform compatibility verification
|
||||
@@ -1814,8 +1814,8 @@ template:
|
||||
version: 2.0
|
||||
output:
|
||||
format: markdown
|
||||
filename: "docs/{{game_name}}-game-brief.md"
|
||||
title: "{{game_title}} Game Brief"
|
||||
filename: 'docs/{{game_name}}-game-brief.md'
|
||||
title: '{{game_title}} Game Brief'
|
||||
|
||||
workflow:
|
||||
mode: interactive
|
||||
@@ -1824,7 +1824,7 @@ sections:
|
||||
- id: initial-setup
|
||||
instruction: |
|
||||
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.
|
||||
|
||||
|
||||
This brief is typically created early in the ideation process, often after brainstorming sessions, to crystallize the game concept before moving into detailed design.
|
||||
|
||||
- id: game-vision
|
||||
@@ -1881,7 +1881,7 @@ sections:
|
||||
repeatable: true
|
||||
template: |
|
||||
**Core Mechanic: {{mechanic_name}}**
|
||||
|
||||
|
||||
- **Description:** {{how_it_works}}
|
||||
- **Player Value:** {{why_its_fun}}
|
||||
- **Implementation Scope:** {{complexity_estimate}}
|
||||
@@ -1908,12 +1908,12 @@ sections:
|
||||
title: Technical Constraints
|
||||
template: |
|
||||
**Platform Requirements:**
|
||||
|
||||
|
||||
- Primary: {{platform_1}} - {{requirements}}
|
||||
- Secondary: {{platform_2}} - {{requirements}}
|
||||
|
||||
|
||||
**Technical Specifications:**
|
||||
|
||||
|
||||
- Engine: Phaser 3 + TypeScript
|
||||
- Performance Target: {{fps_target}} FPS on {{target_device}}
|
||||
- Memory Budget: <{{memory_limit}}MB
|
||||
@@ -1951,10 +1951,10 @@ sections:
|
||||
title: Competitive Analysis
|
||||
template: |
|
||||
**Direct Competitors:**
|
||||
|
||||
|
||||
- {{competitor_1}}: {{strengths_and_weaknesses}}
|
||||
- {{competitor_2}}: {{strengths_and_weaknesses}}
|
||||
|
||||
|
||||
**Differentiation Strategy:**
|
||||
{{how_we_differ_and_why_thats_valuable}}
|
||||
- id: market-opportunity
|
||||
@@ -1978,16 +1978,16 @@ sections:
|
||||
title: Content Categories
|
||||
template: |
|
||||
**Core Content:**
|
||||
|
||||
|
||||
- {{content_type_1}}: {{quantity_and_description}}
|
||||
- {{content_type_2}}: {{quantity_and_description}}
|
||||
|
||||
|
||||
**Optional Content:**
|
||||
|
||||
|
||||
- {{optional_content_type}}: {{quantity_and_description}}
|
||||
|
||||
|
||||
**Replay Elements:**
|
||||
|
||||
|
||||
- {{replayability_features}}
|
||||
- id: difficulty-accessibility
|
||||
title: Difficulty and Accessibility
|
||||
@@ -2054,13 +2054,13 @@ sections:
|
||||
title: Player Experience Metrics
|
||||
template: |
|
||||
**Engagement Goals:**
|
||||
|
||||
|
||||
- Tutorial completion rate: >{{percentage}}%
|
||||
- Average session length: {{duration}} minutes
|
||||
- Player retention: D1 {{d1}}%, D7 {{d7}}%, D30 {{d30}}%
|
||||
|
||||
|
||||
**Quality Benchmarks:**
|
||||
|
||||
|
||||
- Player satisfaction: >{{rating}}/10
|
||||
- Completion rate: >{{percentage}}%
|
||||
- Technical performance: {{fps_target}} FPS consistent
|
||||
@@ -2068,13 +2068,13 @@ sections:
|
||||
title: Development Metrics
|
||||
template: |
|
||||
**Technical Targets:**
|
||||
|
||||
|
||||
- Zero critical bugs at launch
|
||||
- Performance targets met on all platforms
|
||||
- Load times under {{seconds}}s
|
||||
|
||||
|
||||
**Process Goals:**
|
||||
|
||||
|
||||
- Development timeline adherence
|
||||
- Feature scope completion
|
||||
- Quality assurance standards
|
||||
@@ -2083,7 +2083,7 @@ sections:
|
||||
condition: has_business_goals
|
||||
template: |
|
||||
**Commercial Goals:**
|
||||
|
||||
|
||||
- {{revenue_target}} in first {{time_period}}
|
||||
- {{user_acquisition_target}} players in first {{time_period}}
|
||||
- {{retention_target}} monthly active users
|
||||
@@ -2101,21 +2101,21 @@ sections:
|
||||
title: Development Roadmap
|
||||
sections:
|
||||
- id: phase-1-preproduction
|
||||
title: "Phase 1: Pre-Production ({{duration}})"
|
||||
title: 'Phase 1: Pre-Production ({{duration}})'
|
||||
type: bullet-list
|
||||
template: |
|
||||
- Detailed Game Design Document creation
|
||||
- Technical architecture planning
|
||||
- Art style exploration and pipeline setup
|
||||
- id: phase-2-prototype
|
||||
title: "Phase 2: Prototype ({{duration}})"
|
||||
title: 'Phase 2: Prototype ({{duration}})'
|
||||
type: bullet-list
|
||||
template: |
|
||||
- Core mechanic implementation
|
||||
- Technical proof of concept
|
||||
- Initial playtesting and iteration
|
||||
- id: phase-3-production
|
||||
title: "Phase 3: Production ({{duration}})"
|
||||
title: 'Phase 3: Production ({{duration}})'
|
||||
type: bullet-list
|
||||
template: |
|
||||
- Full feature development
|
||||
@@ -2136,12 +2136,12 @@ sections:
|
||||
title: Validation Plan
|
||||
template: |
|
||||
**Concept Testing:**
|
||||
|
||||
|
||||
- {{validation_method_1}} - {{timeline}}
|
||||
- {{validation_method_2}} - {{timeline}}
|
||||
|
||||
|
||||
**Prototype Testing:**
|
||||
|
||||
|
||||
- {{testing_approach}} - {{timeline}}
|
||||
- {{feedback_collection_method}} - {{timeline}}
|
||||
|
||||
|
||||
@@ -197,8 +197,8 @@ template:
|
||||
version: 2.0
|
||||
output:
|
||||
format: markdown
|
||||
filename: "docs/{{game_name}}-game-architecture.md"
|
||||
title: "{{game_title}} Game Architecture Document"
|
||||
filename: 'docs/{{game_name}}-game-architecture.md'
|
||||
title: '{{game_title}} Game Architecture Document'
|
||||
|
||||
workflow:
|
||||
mode: interactive
|
||||
@@ -207,7 +207,7 @@ sections:
|
||||
- id: initial-setup
|
||||
instruction: |
|
||||
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.
|
||||
|
||||
|
||||
If available, review any provided documents: Game Design Document (GDD), Technical Preferences. This architecture should support all game mechanics defined in the GDD.
|
||||
|
||||
- id: introduction
|
||||
@@ -215,7 +215,7 @@ sections:
|
||||
instruction: Establish the document's purpose and scope for game development
|
||||
content: |
|
||||
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.
|
||||
|
||||
|
||||
This architecture is designed to support the gameplay mechanics defined in the Game Design Document while maintaining 60 FPS performance and cross-platform compatibility.
|
||||
sections:
|
||||
- id: change-log
|
||||
@@ -234,7 +234,7 @@ sections:
|
||||
title: Architecture Summary
|
||||
instruction: |
|
||||
Provide a comprehensive overview covering:
|
||||
|
||||
|
||||
- Game engine choice and configuration
|
||||
- Project structure and organization
|
||||
- Key systems and their interactions
|
||||
@@ -322,23 +322,23 @@ sections:
|
||||
title: Scene Management System
|
||||
template: |
|
||||
**Purpose:** Handle game flow and scene transitions
|
||||
|
||||
|
||||
**Key Components:**
|
||||
|
||||
|
||||
- Scene loading and unloading
|
||||
- Data passing between scenes
|
||||
- Transition effects
|
||||
- Memory management
|
||||
|
||||
|
||||
**Implementation Requirements:**
|
||||
|
||||
|
||||
- Preload scene for asset loading
|
||||
- Menu system with navigation
|
||||
- Gameplay scenes with state management
|
||||
- Pause/resume functionality
|
||||
|
||||
|
||||
**Files to Create:**
|
||||
|
||||
|
||||
- `src/scenes/BootScene.ts`
|
||||
- `src/scenes/PreloadScene.ts`
|
||||
- `src/scenes/MenuScene.ts`
|
||||
@@ -348,23 +348,23 @@ sections:
|
||||
title: Game State Management
|
||||
template: |
|
||||
**Purpose:** Track player progress and game status
|
||||
|
||||
|
||||
**State Categories:**
|
||||
|
||||
|
||||
- Player progress (levels, unlocks)
|
||||
- Game settings (audio, controls)
|
||||
- Session data (current level, score)
|
||||
- Persistent data (achievements, statistics)
|
||||
|
||||
|
||||
**Implementation Requirements:**
|
||||
|
||||
|
||||
- Save/load system with localStorage
|
||||
- State validation and error recovery
|
||||
- Cross-session data persistence
|
||||
- Settings management
|
||||
|
||||
|
||||
**Files to Create:**
|
||||
|
||||
|
||||
- `src/systems/GameState.ts`
|
||||
- `src/systems/SaveManager.ts`
|
||||
- `src/types/GameData.ts`
|
||||
@@ -372,23 +372,23 @@ sections:
|
||||
title: Asset Management System
|
||||
template: |
|
||||
**Purpose:** Efficient loading and management of game assets
|
||||
|
||||
|
||||
**Asset Categories:**
|
||||
|
||||
|
||||
- Sprite sheets and animations
|
||||
- Audio files and music
|
||||
- Level data and configurations
|
||||
- UI assets and fonts
|
||||
|
||||
|
||||
**Implementation Requirements:**
|
||||
|
||||
|
||||
- Progressive loading strategy
|
||||
- Asset caching and optimization
|
||||
- Error handling for failed loads
|
||||
- Memory management for large assets
|
||||
|
||||
|
||||
**Files to Create:**
|
||||
|
||||
|
||||
- `src/systems/AssetManager.ts`
|
||||
- `src/config/AssetConfig.ts`
|
||||
- `src/utils/AssetLoader.ts`
|
||||
@@ -396,23 +396,23 @@ sections:
|
||||
title: Input Management System
|
||||
template: |
|
||||
**Purpose:** Handle all player input across platforms
|
||||
|
||||
|
||||
**Input Types:**
|
||||
|
||||
|
||||
- Keyboard controls
|
||||
- Mouse/pointer interaction
|
||||
- Touch gestures (mobile)
|
||||
- Gamepad support (optional)
|
||||
|
||||
|
||||
**Implementation Requirements:**
|
||||
|
||||
|
||||
- Input mapping and configuration
|
||||
- Touch-friendly mobile controls
|
||||
- Input buffering for responsive gameplay
|
||||
- Customizable control schemes
|
||||
|
||||
|
||||
**Files to Create:**
|
||||
|
||||
|
||||
- `src/systems/InputManager.ts`
|
||||
- `src/utils/TouchControls.ts`
|
||||
- `src/types/InputTypes.ts`
|
||||
@@ -422,22 +422,22 @@ sections:
|
||||
repeatable: true
|
||||
sections:
|
||||
- id: mechanic-system
|
||||
title: "{{mechanic_name}} System"
|
||||
title: '{{mechanic_name}} System'
|
||||
template: |
|
||||
**Purpose:** {{system_purpose}}
|
||||
|
||||
|
||||
**Core Functionality:**
|
||||
|
||||
|
||||
- {{feature_1}}
|
||||
- {{feature_2}}
|
||||
- {{feature_3}}
|
||||
|
||||
|
||||
**Dependencies:** {{required_systems}}
|
||||
|
||||
|
||||
**Performance Considerations:** {{optimization_notes}}
|
||||
|
||||
|
||||
**Files to Create:**
|
||||
|
||||
|
||||
- `src/systems/{{system_name}}.ts`
|
||||
- `src/gameObjects/{{related_object}}.ts`
|
||||
- `src/types/{{system_types}}.ts`
|
||||
@@ -445,65 +445,65 @@ sections:
|
||||
title: Physics & Collision System
|
||||
template: |
|
||||
**Physics Engine:** {{physics_choice}} (Arcade Physics/Matter.js)
|
||||
|
||||
|
||||
**Collision Categories:**
|
||||
|
||||
|
||||
- Player collision
|
||||
- Enemy interactions
|
||||
- Environmental objects
|
||||
- Collectibles and items
|
||||
|
||||
|
||||
**Implementation Requirements:**
|
||||
|
||||
|
||||
- Optimized collision detection
|
||||
- Physics body management
|
||||
- Collision callbacks and events
|
||||
- Performance monitoring
|
||||
|
||||
|
||||
**Files to Create:**
|
||||
|
||||
|
||||
- `src/systems/PhysicsManager.ts`
|
||||
- `src/utils/CollisionGroups.ts`
|
||||
- id: audio-system
|
||||
title: Audio System
|
||||
template: |
|
||||
**Audio Requirements:**
|
||||
|
||||
|
||||
- Background music with looping
|
||||
- Sound effects for actions
|
||||
- Audio settings and volume control
|
||||
- Mobile audio optimization
|
||||
|
||||
|
||||
**Implementation Features:**
|
||||
|
||||
|
||||
- Audio sprite management
|
||||
- Dynamic music system
|
||||
- Spatial audio (if applicable)
|
||||
- Audio pooling for performance
|
||||
|
||||
|
||||
**Files to Create:**
|
||||
|
||||
|
||||
- `src/systems/AudioManager.ts`
|
||||
- `src/config/AudioConfig.ts`
|
||||
- id: ui-system
|
||||
title: UI System
|
||||
template: |
|
||||
**UI Components:**
|
||||
|
||||
|
||||
- HUD elements (score, health, etc.)
|
||||
- Menu navigation
|
||||
- Modal dialogs
|
||||
- Settings screens
|
||||
|
||||
|
||||
**Implementation Requirements:**
|
||||
|
||||
|
||||
- Responsive layout system
|
||||
- Touch-friendly interface
|
||||
- Keyboard navigation support
|
||||
- Animation and transitions
|
||||
|
||||
|
||||
**Files to Create:**
|
||||
|
||||
|
||||
- `src/systems/UIManager.ts`
|
||||
- `src/gameObjects/UI/`
|
||||
- `src/types/UITypes.ts`
|
||||
@@ -719,7 +719,7 @@ sections:
|
||||
instruction: Break down the architecture implementation into phases that align with the GDD development phases
|
||||
sections:
|
||||
- id: phase-1-foundation
|
||||
title: "Phase 1: Foundation ({{duration}})"
|
||||
title: 'Phase 1: Foundation ({{duration}})'
|
||||
sections:
|
||||
- id: phase-1-core
|
||||
title: Core Systems
|
||||
@@ -737,7 +737,7 @@ sections:
|
||||
- "Basic Scene Management System"
|
||||
- "Asset Loading Foundation"
|
||||
- id: phase-2-game-systems
|
||||
title: "Phase 2: Game Systems ({{duration}})"
|
||||
title: 'Phase 2: Game Systems ({{duration}})'
|
||||
sections:
|
||||
- id: phase-2-gameplay
|
||||
title: Gameplay Systems
|
||||
@@ -755,7 +755,7 @@ sections:
|
||||
- "Physics and Collision Framework"
|
||||
- "Game State Management System"
|
||||
- id: phase-3-content-polish
|
||||
title: "Phase 3: Content & Polish ({{duration}})"
|
||||
title: 'Phase 3: Content & Polish ({{duration}})'
|
||||
sections:
|
||||
- id: phase-3-content
|
||||
title: Content Systems
|
||||
@@ -1045,7 +1045,7 @@ interface GameState {
|
||||
interface GameSettings {
|
||||
musicVolume: number;
|
||||
sfxVolume: number;
|
||||
difficulty: "easy" | "normal" | "hard";
|
||||
difficulty: 'easy' | 'normal' | 'hard';
|
||||
controls: ControlScheme;
|
||||
}
|
||||
```
|
||||
@@ -1086,12 +1086,12 @@ class GameScene extends Phaser.Scene {
|
||||
private inputManager!: InputManager;
|
||||
|
||||
constructor() {
|
||||
super({ key: "GameScene" });
|
||||
super({ key: 'GameScene' });
|
||||
}
|
||||
|
||||
preload(): void {
|
||||
// Load only scene-specific assets
|
||||
this.load.image("player", "assets/player.png");
|
||||
this.load.image('player', 'assets/player.png');
|
||||
}
|
||||
|
||||
create(data: SceneData): void {
|
||||
@@ -1116,7 +1116,7 @@ class GameScene extends Phaser.Scene {
|
||||
this.inputManager.destroy();
|
||||
|
||||
// Remove event listeners
|
||||
this.events.off("*");
|
||||
this.events.off('*');
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -1125,13 +1125,13 @@ class GameScene extends Phaser.Scene {
|
||||
|
||||
```typescript
|
||||
// Proper scene transitions with data
|
||||
this.scene.start("NextScene", {
|
||||
this.scene.start('NextScene', {
|
||||
playerScore: this.playerScore,
|
||||
currentLevel: this.currentLevel + 1,
|
||||
});
|
||||
|
||||
// Scene overlays for UI
|
||||
this.scene.launch("PauseMenuScene");
|
||||
this.scene.launch('PauseMenuScene');
|
||||
this.scene.pause();
|
||||
```
|
||||
|
||||
@@ -1175,7 +1175,7 @@ class Player extends GameEntity {
|
||||
private health!: HealthComponent;
|
||||
|
||||
constructor(scene: Phaser.Scene, x: number, y: number) {
|
||||
super(scene, x, y, "player");
|
||||
super(scene, x, y, 'player');
|
||||
|
||||
this.movement = this.addComponent(new MovementComponent(this));
|
||||
this.health = this.addComponent(new HealthComponent(this, 100));
|
||||
@@ -1195,7 +1195,7 @@ class GameManager {
|
||||
|
||||
constructor(scene: Phaser.Scene) {
|
||||
if (GameManager.instance) {
|
||||
throw new Error("GameManager already exists!");
|
||||
throw new Error('GameManager already exists!');
|
||||
}
|
||||
|
||||
this.scene = scene;
|
||||
@@ -1205,7 +1205,7 @@ class GameManager {
|
||||
|
||||
static getInstance(): GameManager {
|
||||
if (!GameManager.instance) {
|
||||
throw new Error("GameManager not initialized!");
|
||||
throw new Error('GameManager not initialized!');
|
||||
}
|
||||
return GameManager.instance;
|
||||
}
|
||||
@@ -1252,7 +1252,7 @@ class BulletPool {
|
||||
}
|
||||
|
||||
// Pool exhausted - create new bullet
|
||||
console.warn("Bullet pool exhausted, creating new bullet");
|
||||
console.warn('Bullet pool exhausted, creating new bullet');
|
||||
return new Bullet(this.scene, 0, 0);
|
||||
}
|
||||
|
||||
@@ -1352,14 +1352,12 @@ class InputManager {
|
||||
}
|
||||
|
||||
private setupKeyboard(): void {
|
||||
this.keys = this.scene.input.keyboard.addKeys(
|
||||
"W,A,S,D,SPACE,ESC,UP,DOWN,LEFT,RIGHT",
|
||||
);
|
||||
this.keys = this.scene.input.keyboard.addKeys('W,A,S,D,SPACE,ESC,UP,DOWN,LEFT,RIGHT');
|
||||
}
|
||||
|
||||
private setupTouch(): void {
|
||||
this.scene.input.on("pointerdown", this.handlePointerDown, this);
|
||||
this.scene.input.on("pointerup", this.handlePointerUp, this);
|
||||
this.scene.input.on('pointerdown', this.handlePointerDown, this);
|
||||
this.scene.input.on('pointerup', this.handlePointerUp, this);
|
||||
}
|
||||
|
||||
update(): void {
|
||||
@@ -1386,9 +1384,9 @@ class InputManager {
|
||||
class AssetManager {
|
||||
loadAssets(): Promise<void> {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.scene.load.on("filecomplete", this.handleFileComplete, this);
|
||||
this.scene.load.on("loaderror", this.handleLoadError, this);
|
||||
this.scene.load.on("complete", () => resolve());
|
||||
this.scene.load.on('filecomplete', this.handleFileComplete, this);
|
||||
this.scene.load.on('loaderror', this.handleLoadError, this);
|
||||
this.scene.load.on('complete', () => resolve());
|
||||
|
||||
this.scene.load.start();
|
||||
});
|
||||
@@ -1404,8 +1402,8 @@ class AssetManager {
|
||||
private loadFallbackAsset(key: string): void {
|
||||
// Load placeholder or default assets
|
||||
switch (key) {
|
||||
case "player":
|
||||
this.scene.load.image("player", "assets/defaults/default-player.png");
|
||||
case 'player':
|
||||
this.scene.load.image('player', 'assets/defaults/default-player.png');
|
||||
break;
|
||||
default:
|
||||
console.warn(`No fallback for asset: ${key}`);
|
||||
@@ -1432,11 +1430,11 @@ class GameSystem {
|
||||
|
||||
private attemptRecovery(context: string): void {
|
||||
switch (context) {
|
||||
case "update":
|
||||
case 'update':
|
||||
// Reset system state
|
||||
this.reset();
|
||||
break;
|
||||
case "render":
|
||||
case 'render':
|
||||
// Disable visual effects
|
||||
this.disableEffects();
|
||||
break;
|
||||
@@ -1456,7 +1454,7 @@ class GameSystem {
|
||||
|
||||
```typescript
|
||||
// Example test for game mechanics
|
||||
describe("HealthComponent", () => {
|
||||
describe('HealthComponent', () => {
|
||||
let healthComponent: HealthComponent;
|
||||
|
||||
beforeEach(() => {
|
||||
@@ -1464,18 +1462,18 @@ describe("HealthComponent", () => {
|
||||
healthComponent = new HealthComponent(mockEntity, 100);
|
||||
});
|
||||
|
||||
test("should initialize with correct health", () => {
|
||||
test('should initialize with correct health', () => {
|
||||
expect(healthComponent.currentHealth).toBe(100);
|
||||
expect(healthComponent.maxHealth).toBe(100);
|
||||
});
|
||||
|
||||
test("should handle damage correctly", () => {
|
||||
test('should handle damage correctly', () => {
|
||||
healthComponent.takeDamage(25);
|
||||
expect(healthComponent.currentHealth).toBe(75);
|
||||
expect(healthComponent.isAlive()).toBe(true);
|
||||
});
|
||||
|
||||
test("should handle death correctly", () => {
|
||||
test('should handle death correctly', () => {
|
||||
healthComponent.takeDamage(150);
|
||||
expect(healthComponent.currentHealth).toBe(0);
|
||||
expect(healthComponent.isAlive()).toBe(false);
|
||||
@@ -1488,7 +1486,7 @@ describe("HealthComponent", () => {
|
||||
**Scene Testing:**
|
||||
|
||||
```typescript
|
||||
describe("GameScene Integration", () => {
|
||||
describe('GameScene Integration', () => {
|
||||
let scene: GameScene;
|
||||
let mockGame: Phaser.Game;
|
||||
|
||||
@@ -1498,7 +1496,7 @@ describe("GameScene Integration", () => {
|
||||
scene = new GameScene();
|
||||
});
|
||||
|
||||
test("should initialize all systems", () => {
|
||||
test('should initialize all systems', () => {
|
||||
scene.create({});
|
||||
|
||||
expect(scene.gameManager).toBeDefined();
|
||||
|
||||
@@ -402,8 +402,8 @@ template:
|
||||
version: 2.0
|
||||
output:
|
||||
format: markdown
|
||||
filename: "stories/{{epic_name}}/{{story_id}}-{{story_name}}.md"
|
||||
title: "Story: {{story_title}}"
|
||||
filename: 'stories/{{epic_name}}/{{story_id}}-{{story_name}}.md'
|
||||
title: 'Story: {{story_title}}'
|
||||
|
||||
workflow:
|
||||
mode: interactive
|
||||
@@ -412,13 +412,13 @@ sections:
|
||||
- id: initial-setup
|
||||
instruction: |
|
||||
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.
|
||||
|
||||
|
||||
Before starting, ensure you have access to:
|
||||
|
||||
|
||||
- Game Design Document (GDD)
|
||||
- Game Architecture Document
|
||||
- Any existing stories in this epic
|
||||
|
||||
|
||||
The story should be specific enough that a developer can implement it without requiring additional design decisions.
|
||||
|
||||
- id: story-header
|
||||
@@ -432,7 +432,7 @@ sections:
|
||||
- id: description
|
||||
title: Description
|
||||
instruction: Provide a clear, concise description of what this story implements. Focus on the specific game feature or system being built. Reference the GDD section that defines this feature.
|
||||
template: "{{clear_description_of_what_needs_to_be_implemented}}"
|
||||
template: '{{clear_description_of_what_needs_to_be_implemented}}'
|
||||
|
||||
- id: acceptance-criteria
|
||||
title: Acceptance Criteria
|
||||
@@ -442,22 +442,22 @@ sections:
|
||||
title: Functional Requirements
|
||||
type: checklist
|
||||
items:
|
||||
- "{{specific_functional_requirement}}"
|
||||
- '{{specific_functional_requirement}}'
|
||||
- id: technical-requirements
|
||||
title: Technical Requirements
|
||||
type: checklist
|
||||
items:
|
||||
- "Code follows TypeScript strict mode standards"
|
||||
- "Maintains 60 FPS on target devices"
|
||||
- "No memory leaks or performance degradation"
|
||||
- "{{specific_technical_requirement}}"
|
||||
- 'Code follows TypeScript strict mode standards'
|
||||
- 'Maintains 60 FPS on target devices'
|
||||
- 'No memory leaks or performance degradation'
|
||||
- '{{specific_technical_requirement}}'
|
||||
- id: game-design-requirements
|
||||
title: Game Design Requirements
|
||||
type: checklist
|
||||
items:
|
||||
- "{{gameplay_requirement_from_gdd}}"
|
||||
- "{{balance_requirement_if_applicable}}"
|
||||
- "{{player_experience_requirement}}"
|
||||
- '{{gameplay_requirement_from_gdd}}'
|
||||
- '{{balance_requirement_if_applicable}}'
|
||||
- '{{player_experience_requirement}}'
|
||||
|
||||
- id: technical-specifications
|
||||
title: Technical Specifications
|
||||
@@ -467,12 +467,12 @@ sections:
|
||||
title: Files to Create/Modify
|
||||
template: |
|
||||
**New Files:**
|
||||
|
||||
|
||||
- `{{file_path_1}}` - {{purpose}}
|
||||
- `{{file_path_2}}` - {{purpose}}
|
||||
|
||||
|
||||
**Modified Files:**
|
||||
|
||||
|
||||
- `{{existing_file_1}}` - {{changes_needed}}
|
||||
- `{{existing_file_2}}` - {{changes_needed}}
|
||||
- id: class-interface-definitions
|
||||
@@ -487,15 +487,15 @@ sections:
|
||||
{{property_2}}: {{type}};
|
||||
{{method_1}}({{params}}): {{return_type}};
|
||||
}
|
||||
|
||||
|
||||
// {{class_name}}
|
||||
class {{class_name}} extends {{phaser_class}} {
|
||||
private {{property}}: {{type}};
|
||||
|
||||
|
||||
constructor({{params}}) {
|
||||
// Implementation requirements
|
||||
}
|
||||
|
||||
|
||||
public {{method}}({{params}}): {{return_type}} {
|
||||
// Method requirements
|
||||
}
|
||||
@@ -505,15 +505,15 @@ sections:
|
||||
instruction: Specify how this feature integrates with existing systems
|
||||
template: |
|
||||
**Scene Integration:**
|
||||
|
||||
|
||||
- {{scene_name}}: {{integration_details}}
|
||||
|
||||
|
||||
**System Dependencies:**
|
||||
|
||||
|
||||
- {{system_name}}: {{dependency_description}}
|
||||
|
||||
|
||||
**Event Communication:**
|
||||
|
||||
|
||||
- Emits: `{{event_name}}` when {{condition}}
|
||||
- Listens: `{{event_name}}` to {{response}}
|
||||
|
||||
@@ -525,7 +525,7 @@ sections:
|
||||
title: Dev Agent Record
|
||||
template: |
|
||||
**Tasks:**
|
||||
|
||||
|
||||
- [ ] {{task_1_description}}
|
||||
- [ ] {{task_2_description}}
|
||||
- [ ] {{task_3_description}}
|
||||
@@ -533,18 +533,18 @@ sections:
|
||||
- [ ] Write unit tests for {{component}}
|
||||
- [ ] Integration testing with {{related_system}}
|
||||
- [ ] Performance testing and optimization
|
||||
|
||||
|
||||
**Debug Log:**
|
||||
| Task | File | Change | Reverted? |
|
||||
|------|------|--------|-----------|
|
||||
| | | | |
|
||||
|
||||
|
||||
**Completion Notes:**
|
||||
|
||||
|
||||
<!-- Only note deviations from requirements, keep under 50 words -->
|
||||
|
||||
|
||||
**Change Log:**
|
||||
|
||||
|
||||
<!-- Only requirement changes during implementation -->
|
||||
|
||||
- id: game-design-context
|
||||
@@ -552,13 +552,13 @@ sections:
|
||||
instruction: Reference the specific sections of the GDD that this story implements
|
||||
template: |
|
||||
**GDD Reference:** {{section_name}} ({{page_or_section_number}})
|
||||
|
||||
|
||||
**Game Mechanic:** {{mechanic_name}}
|
||||
|
||||
|
||||
**Player Experience Goal:** {{experience_description}}
|
||||
|
||||
|
||||
**Balance Parameters:**
|
||||
|
||||
|
||||
- {{parameter_1}}: {{value_or_range}}
|
||||
- {{parameter_2}}: {{value_or_range}}
|
||||
|
||||
@@ -570,11 +570,11 @@ sections:
|
||||
title: Unit Tests
|
||||
template: |
|
||||
**Test Files:**
|
||||
|
||||
|
||||
- `tests/{{component_name}}.test.ts`
|
||||
|
||||
|
||||
**Test Scenarios:**
|
||||
|
||||
|
||||
- {{test_scenario_1}}
|
||||
- {{test_scenario_2}}
|
||||
- {{edge_case_test}}
|
||||
@@ -582,12 +582,12 @@ sections:
|
||||
title: Game Testing
|
||||
template: |
|
||||
**Manual Test Cases:**
|
||||
|
||||
|
||||
1. {{test_case_1_description}}
|
||||
|
||||
|
||||
- Expected: {{expected_behavior}}
|
||||
- Performance: {{performance_expectation}}
|
||||
|
||||
|
||||
2. {{test_case_2_description}}
|
||||
- Expected: {{expected_behavior}}
|
||||
- Edge Case: {{edge_case_handling}}
|
||||
@@ -595,7 +595,7 @@ sections:
|
||||
title: Performance Tests
|
||||
template: |
|
||||
**Metrics to Verify:**
|
||||
|
||||
|
||||
- Frame rate maintains {{fps_target}} FPS
|
||||
- Memory usage stays under {{memory_limit}}MB
|
||||
- {{feature_specific_performance_metric}}
|
||||
@@ -605,15 +605,15 @@ sections:
|
||||
instruction: List any dependencies that must be completed before this story can be implemented
|
||||
template: |
|
||||
**Story Dependencies:**
|
||||
|
||||
|
||||
- {{story_id}}: {{dependency_description}}
|
||||
|
||||
|
||||
**Technical Dependencies:**
|
||||
|
||||
|
||||
- {{system_or_file}}: {{requirement}}
|
||||
|
||||
|
||||
**Asset Dependencies:**
|
||||
|
||||
|
||||
- {{asset_type}}: {{asset_description}}
|
||||
- Location: `{{asset_path}}`
|
||||
|
||||
@@ -622,31 +622,31 @@ sections:
|
||||
instruction: Checklist that must be completed before the story is considered finished
|
||||
type: checklist
|
||||
items:
|
||||
- "All acceptance criteria met"
|
||||
- "Code reviewed and approved"
|
||||
- "Unit tests written and passing"
|
||||
- "Integration tests passing"
|
||||
- "Performance targets met"
|
||||
- "No linting errors"
|
||||
- "Documentation updated"
|
||||
- "{{game_specific_dod_item}}"
|
||||
- 'All acceptance criteria met'
|
||||
- 'Code reviewed and approved'
|
||||
- 'Unit tests written and passing'
|
||||
- 'Integration tests passing'
|
||||
- 'Performance targets met'
|
||||
- 'No linting errors'
|
||||
- 'Documentation updated'
|
||||
- '{{game_specific_dod_item}}'
|
||||
|
||||
- id: notes
|
||||
title: Notes
|
||||
instruction: Any additional context, design decisions, or implementation notes
|
||||
template: |
|
||||
**Implementation Notes:**
|
||||
|
||||
|
||||
- {{note_1}}
|
||||
- {{note_2}}
|
||||
|
||||
|
||||
**Design Decisions:**
|
||||
|
||||
|
||||
- {{decision_1}}: {{rationale}}
|
||||
- {{decision_2}}: {{rationale}}
|
||||
|
||||
|
||||
**Future Considerations:**
|
||||
|
||||
|
||||
- {{future_enhancement_1}}
|
||||
- {{future_optimization_1}}
|
||||
==================== END: .bmad-2d-phaser-game-dev/templates/game-story-tmpl.yaml ====================
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user