chore: add code formatting config and pre-commit hooks (#450)

This commit is contained in:
manjaroblack
2025-08-16 19:08:39 -05:00
committed by GitHub
parent 51284d6ecf
commit ed539432fb
130 changed files with 11886 additions and 10939 deletions

View File

@@ -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}}

View File

@@ -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();

View File

@@ -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 ====================