diff --git a/docs/core-architecture.md b/docs/core-architecture.md index 4a1a8aff..9302d4e8 100644 --- a/docs/core-architecture.md +++ b/docs/core-architecture.md @@ -110,6 +110,7 @@ The system maintains a clean separation of concerns: template markup is processe BMAD includes a personalization layer through the `technical-preferences.md` file in `.bmad-core/data/`. This file serves as a persistent technical profile that influences agent behavior across all projects. **Purpose and Benefits:** + - **Consistency**: Ensures all agents reference the same technical preferences - **Efficiency**: Eliminates the need to repeatedly specify preferred technologies - **Personalization**: Agents provide recommendations aligned with user preferences @@ -119,6 +120,7 @@ BMAD includes a personalization layer through the `technical-preferences.md` fil The file typically includes preferred technology stacks, design patterns, external services, coding standards, and anti-patterns to avoid. Agents automatically reference this file during planning and development to provide contextually appropriate suggestions. **Integration Points:** + - Templates can reference technical preferences during document generation - Agents suggest preferred technologies when appropriate for project requirements - When preferences don't fit project needs, agents explain alternatives diff --git a/docs/user-guide.md b/docs/user-guide.md index 33caee0c..169288d8 100644 --- a/docs/user-guide.md +++ b/docs/user-guide.md @@ -226,7 +226,6 @@ Templates can include `advanced-elicitation.md` for enhanced interaction: ```markdown [[LLM: Use advanced-elicitation actions 0-3 to refine requirements]] - ``` This provides 10 structured brainstorming actions: @@ -561,7 +560,6 @@ dependencies: ## Section 2 {{section_2_content}} - ``` ### Workflow Customization @@ -621,25 +619,29 @@ Templates are self-contained documents that embed both output structure and proc [[LLM: Only include if condition is met]] ^^/CONDITION^^ - ``` #### Key Template Patterns **Variable Substitution:** + - `{{Project Name}}` - Dynamic project name - `{{document_title}}` - Document-specific title - `{{section_content}}` - Placeholder for generated content **AI Processing Instructions:** + - `[[LLM: Instructions for AI behavior]]` - AI-only processing directives - `@{example: Sample content}` - Guidance examples (not output) - `tasks#advanced-elicitation` - Reference to embedded tasks **Conditional Content:** + ```markdown ^^CONDITION: has_ui^^ + ## User Interface Section + [[LLM: Only include for UI projects]] ^^/CONDITION^^ ``` @@ -658,10 +660,10 @@ Level 2 headings (`##`) in templates can be automatically sharded into separate ## User Interface Design Goals ## Success Metrics - ``` **After Sharding:** + - `docs/prd/goals-and-background-context.md` - `docs/prd/requirements.md` - `docs/prd/user-interface-design-goals.md` @@ -686,10 +688,12 @@ Tasks are reusable automation instructions that agents can execute. They follow ## Instructions ### 1. Step One + - Detailed instructions for the agent - Specific behaviors and outputs expected ### 2. Step Two + - Additional processing steps - Integration with other resources @@ -705,10 +709,10 @@ Tasks are reusable automation instructions that agents can execute. They follow ```markdown [[LLM: Check if docs/coding-standards.md exists and reference it]] [[LLM: Load docs/openapi-spec.yaml for API context]] - ``` **Advanced Elicitation:** + ```markdown [[LLM: Apply tasks#advanced-elicitation protocol after completion]] ``` @@ -717,7 +721,6 @@ Tasks are reusable automation instructions that agents can execute. They follow ```markdown [[LLM: If project has UI components, also check frontend standards]] - ``` ### Creating Custom Agents @@ -780,6 +783,7 @@ Agents can reference and load documents from the `docs/` folder: ```markdown [[LLM: Before beginning, check for and load relevant context: + - docs/coding-standards.md for development standards - docs/brand-guidelines.md for design consistency - docs/third-party-apis/ for integration requirements @@ -817,18 +821,20 @@ This file allows you to define your preferred technologies, patterns, and standa - Vercel for frontend - Railway for backend services - ``` **Design Patterns & Standards:** + ```markdown ## Code Standards + - Use functional programming patterns where possible - Prefer composition over inheritance - Always include comprehensive error handling - Write tests for all business logic ## Architecture Preferences + - Microservices for complex applications - RESTful APIs with OpenAPI documentation - Event-driven architecture for real-time features @@ -848,7 +854,6 @@ This file allows you to define your preferred technologies, patterns, and standa - Legacy SOAP services - Services without proper documentation - ``` #### How Agents Use This File @@ -864,16 +869,18 @@ This file allows you to define your preferred technologies, patterns, and standa **Learning and Evolution**: As you work on projects, add discoveries to your preferences file: ## Lessons Learned + - Avoid using Library X for large datasets (performance issues) - Pattern Y works well for real-time features - Service Z has excellent documentation and support ## Future Exploration + - Want to try Framework A on next appropriate project - Interested in Pattern B for microservices - Consider Service C for better performance -#### Using with Web Bundles +### Using with Web Bundles When creating custom web bundles or uploading to AI platforms, include your `technical-preferences.md` content to ensure agents have your preferences from the start of any conversation. diff --git a/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.md b/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.md index 40b78061..c9a34635 100644 --- a/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.md +++ b/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.md @@ -55,4 +55,4 @@ dependencies: - game-brief-tmpl checklists: - game-design-checklist -``` \ No newline at end of file +``` diff --git a/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md b/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md index ac5af4e0..18c60e53 100644 --- a/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md +++ b/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md @@ -48,10 +48,10 @@ commands: task-execution: flow: Read story → Implement game feature → Write tests → Pass tests → Update [x] → Next task updates-ONLY: - - 'Checkboxes: [ ] not started | [-] in progress | [x] complete' - - 'Debug Log: | Task | File | Change | Reverted? |' - - 'Completion Notes: Deviations only, <50 words' - - 'Change Log: Requirement changes only' + - "Checkboxes: [ ] not started | [-] in progress | [x] complete" + - "Debug Log: | Task | File | Change | Reverted? |" + - "Completion Notes: Deviations only, <50 words" + - "Change Log: Requirement changes only" blocking: Unapproved deps | Ambiguous after story check | 3 failures | Missing game config done: Game feature works + Tests pass + 60 FPS + No lint errors + Follows Phaser 3 best practices dependencies: @@ -63,4 +63,4 @@ dependencies: - game-story-dod-checklist data: - development-guidelines -``` \ No newline at end of file +``` diff --git a/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md b/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md index d8f0255e..367e201e 100644 --- a/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md +++ b/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md @@ -33,7 +33,7 @@ startup: - CRITICAL: Do NOT create or modify any files during startup - Offer to help with game story preparation but wait for explicit user confirmation - Only execute tasks when user explicitly requests them - - 'CRITICAL RULE: You are ONLY allowed to create/modify story files - NEVER implement! If asked to implement, tell user they MUST switch to Game Developer Agent' + - "CRITICAL RULE: You are ONLY allowed to create/modify story files - NEVER implement! If asked to implement, tell user they MUST switch to Game Developer Agent" commands: - '*help" - Show numbered list of available commands for selection' - '*chat-mode" - Conversational mode with advanced-elicitation for game dev advice' @@ -48,4 +48,4 @@ dependencies: - game-story-tmpl checklists: - game-story-dod-checklist -``` \ No newline at end of file +``` diff --git a/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-design-checklist.md b/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-design-checklist.md index fb5138d8..ba6ed063 100644 --- a/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-design-checklist.md +++ b/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-design-checklist.md @@ -3,6 +3,7 @@ ## Document Completeness ### Executive Summary + - [ ] **Core Concept** - Game concept is clearly explained in 2-3 sentences - [ ] **Target Audience** - Primary and secondary audiences defined with demographics - [ ] **Platform Requirements** - Technical platforms and requirements specified @@ -10,6 +11,7 @@ - [ ] **Technical Foundation** - Phaser 3 + TypeScript requirements confirmed ### Game Design Foundation + - [ ] **Game Pillars** - 3-5 core design pillars defined and actionable - [ ] **Core Gameplay Loop** - 30-60 second loop documented with specific timings - [ ] **Win/Loss Conditions** - Clear victory and failure states defined @@ -19,6 +21,7 @@ ## Gameplay Mechanics ### Core Mechanics Documentation + - [ ] **Primary Mechanics** - 3-5 core mechanics detailed with implementation notes - [ ] **Mechanic Integration** - How mechanics work together is clear - [ ] **Player Input** - All input methods specified for each platform @@ -26,6 +29,7 @@ - [ ] **Performance Impact** - Performance considerations for each mechanic noted ### Controls and Interaction + - [ ] **Multi-Platform Controls** - Desktop, mobile, and gamepad controls defined - [ ] **Input Responsiveness** - Requirements for responsive game feel specified - [ ] **Accessibility Options** - Control customization and accessibility considered @@ -35,6 +39,7 @@ ## Progression and Balance ### Player Progression + - [ ] **Progression Type** - Linear, branching, or metroidvania approach defined - [ ] **Key Milestones** - Major progression points documented - [ ] **Unlock System** - What players unlock and when is specified @@ -42,6 +47,7 @@ - [ ] **Player Agency** - Meaningful player choices and consequences defined ### Game Balance + - [ ] **Balance Parameters** - Numeric values for key game systems provided - [ ] **Difficulty Curve** - Appropriate challenge progression designed - [ ] **Economy Design** - Resource systems balanced for engagement @@ -51,6 +57,7 @@ ## Level Design Framework ### Level Structure + - [ ] **Level Types** - Different level categories defined with purposes - [ ] **Level Progression** - How players move through levels specified - [ ] **Duration Targets** - Expected play time for each level type @@ -58,6 +65,7 @@ - [ ] **Replay Value** - Elements that encourage repeated play designed ### Content Guidelines + - [ ] **Level Creation Rules** - Clear guidelines for level designers - [ ] **Mechanic Introduction** - How new mechanics are taught in levels - [ ] **Pacing Variety** - Mix of action, puzzle, and rest moments planned @@ -67,6 +75,7 @@ ## Technical Implementation Readiness ### Performance Requirements + - [ ] **Frame Rate Targets** - 60 FPS target with minimum acceptable rates - [ ] **Memory Budgets** - Maximum memory usage limits defined - [ ] **Load Time Goals** - Acceptable loading times for different content @@ -74,6 +83,7 @@ - [ ] **Scalability Plan** - How performance scales across different devices ### Platform Specifications + - [ ] **Desktop Requirements** - Minimum and recommended PC/Mac specs - [ ] **Mobile Optimization** - iOS and Android specific requirements - [ ] **Browser Compatibility** - Supported browsers and versions listed @@ -81,6 +91,7 @@ - [ ] **Update Strategy** - Plan for post-launch updates and patches ### Asset Requirements + - [ ] **Art Style Definition** - Clear visual style with reference materials - [ ] **Asset Specifications** - Technical requirements for all asset types - [ ] **Audio Requirements** - Music and sound effect specifications @@ -90,6 +101,7 @@ ## Development Planning ### Implementation Phases + - [ ] **Phase Breakdown** - Development divided into logical phases - [ ] **Epic Definitions** - Major development epics identified - [ ] **Dependency Mapping** - Prerequisites between features documented @@ -97,6 +109,7 @@ - [ ] **Milestone Planning** - Key deliverables and deadlines established ### Team Requirements + - [ ] **Role Definitions** - Required team roles and responsibilities - [ ] **Skill Requirements** - Technical skills needed for implementation - [ ] **Resource Allocation** - Time and effort estimates for major features @@ -106,6 +119,7 @@ ## Quality Assurance ### Success Metrics + - [ ] **Technical Metrics** - Measurable technical performance goals - [ ] **Gameplay Metrics** - Player engagement and retention targets - [ ] **Quality Benchmarks** - Standards for bug rates and polish level @@ -113,6 +127,7 @@ - [ ] **Business Objectives** - Commercial or project success criteria ### Testing Strategy + - [ ] **Playtesting Plan** - How and when player feedback will be gathered - [ ] **Technical Testing** - Performance and compatibility testing approach - [ ] **Balance Validation** - Methods for confirming game balance @@ -122,6 +137,7 @@ ## Documentation Quality ### Clarity and Completeness + - [ ] **Clear Writing** - All sections are well-written and understandable - [ ] **Complete Coverage** - No major game systems left undefined - [ ] **Actionable Detail** - Enough detail for developers to create implementation stories @@ -129,6 +145,7 @@ - [ ] **Reference Materials** - Links to inspiration, research, and additional resources ### Maintainability + - [ ] **Version Control** - Change log established for tracking revisions - [ ] **Update Process** - Plan for maintaining document during development - [ ] **Team Access** - All team members can access and reference the document @@ -138,6 +155,7 @@ ## Stakeholder Alignment ### Team Understanding + - [ ] **Shared Vision** - All team members understand and agree with the game vision - [ ] **Role Clarity** - Each team member understands their contribution - [ ] **Decision Framework** - Process for making design decisions during development @@ -145,6 +163,7 @@ - [ ] **Communication Channels** - Regular meetings and feedback sessions planned ### External Validation + - [ ] **Market Validation** - Competitive analysis and market fit assessment - [ ] **Technical Validation** - Feasibility confirmed with technical team - [ ] **Resource Validation** - Required resources available and committed @@ -154,6 +173,7 @@ ## Final Readiness Assessment ### Implementation Preparedness + - [ ] **Story Creation Ready** - Document provides sufficient detail for story creation - [ ] **Architecture Alignment** - Game design aligns with technical capabilities - [ ] **Asset Production** - Asset requirements enable art and audio production @@ -161,6 +181,7 @@ - [ ] **Quality Assurance** - Testing and validation processes established ### Document Approval + - [ ] **Design Review Complete** - Document reviewed by all relevant stakeholders - [ ] **Technical Review Complete** - Technical feasibility confirmed - [ ] **Business Review Complete** - Project scope and goals approved @@ -177,4 +198,4 @@ _List any critical items that need attention before moving to implementation phase._ **Next Steps:** -_Outline immediate next actions for the team based on this assessment._ \ No newline at end of file +_Outline immediate next actions for the team based on this assessment._ diff --git a/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-story-dod-checklist.md b/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-story-dod-checklist.md index b900a061..b7fb9405 100644 --- a/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-story-dod-checklist.md +++ b/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-story-dod-checklist.md @@ -3,6 +3,7 @@ ## Story Completeness ### Basic Story Elements + - [ ] **Story Title** - Clear, descriptive title that identifies the feature - [ ] **Epic Assignment** - Story is properly assigned to relevant epic - [ ] **Priority Level** - Appropriate priority assigned (High/Medium/Low) @@ -10,6 +11,7 @@ - [ ] **Description** - Clear, concise description of what needs to be implemented ### Game Design Alignment + - [ ] **GDD Reference** - Specific Game Design Document section referenced - [ ] **Game Mechanic Context** - Clear connection to game mechanics defined in GDD - [ ] **Player Experience Goal** - Describes the intended player experience @@ -19,6 +21,7 @@ ## Technical Specifications ### Architecture Compliance + - [ ] **File Organization** - Follows game architecture document structure - [ ] **Class Definitions** - TypeScript interfaces and classes are properly defined - [ ] **Integration Points** - Clear specification of how feature integrates with existing systems @@ -26,6 +29,7 @@ - [ ] **Dependencies** - All system dependencies clearly identified ### Phaser 3 Requirements + - [ ] **Scene Integration** - Specifies which scenes are affected and how - [ ] **Game Object Usage** - Proper use of Phaser 3 game objects and components - [ ] **Physics Integration** - Physics requirements specified if applicable @@ -33,6 +37,7 @@ - [ ] **Performance Considerations** - 60 FPS target and optimization requirements ### Code Quality Standards + - [ ] **TypeScript Strict Mode** - All code must comply with strict TypeScript - [ ] **Error Handling** - Error scenarios and handling requirements specified - [ ] **Memory Management** - Object pooling and cleanup requirements where needed @@ -42,6 +47,7 @@ ## Implementation Readiness ### Acceptance Criteria + - [ ] **Functional Requirements** - All functional acceptance criteria are specific and testable - [ ] **Technical Requirements** - Technical acceptance criteria are complete and verifiable - [ ] **Game Design Requirements** - Game-specific requirements match GDD specifications @@ -49,6 +55,7 @@ - [ ] **Completeness** - No acceptance criteria are vague or unmeasurable ### Implementation Tasks + - [ ] **Task Breakdown** - Story broken into specific, ordered implementation tasks - [ ] **Task Scope** - Each task is completable in 1-4 hours - [ ] **Task Clarity** - Each task has clear, actionable instructions @@ -56,6 +63,7 @@ - [ ] **Development Flow** - Tasks follow logical implementation order ### Dependencies + - [ ] **Story Dependencies** - All prerequisite stories identified with IDs - [ ] **Technical Dependencies** - Required systems and files identified - [ ] **Asset Dependencies** - All needed assets specified with locations @@ -65,6 +73,7 @@ ## Testing Requirements ### Test Coverage + - [ ] **Unit Test Requirements** - Specific unit test files and scenarios defined - [ ] **Integration Test Cases** - Integration testing with other game systems specified - [ ] **Manual Test Cases** - Game-specific manual testing procedures defined @@ -72,6 +81,7 @@ - [ ] **Edge Case Testing** - Edge cases and error conditions covered ### Test Implementation + - [ ] **Test File Paths** - Exact test file locations specified - [ ] **Test Scenarios** - All test scenarios are complete and executable - [ ] **Expected Behaviors** - Clear expected outcomes for all tests defined @@ -81,6 +91,7 @@ ## Game-Specific Quality ### Gameplay Implementation + - [ ] **Mechanic Accuracy** - Implementation matches GDD mechanic specifications - [ ] **Player Controls** - Input handling requirements are complete - [ ] **Game Feel** - Requirements for juice, feedback, and responsiveness specified @@ -88,6 +99,7 @@ - [ ] **State Management** - Game state changes and persistence requirements defined ### User Experience + - [ ] **UI Requirements** - User interface elements and behaviors specified - [ ] **Audio Integration** - Sound effect and music requirements defined - [ ] **Visual Feedback** - Animation and visual effect requirements specified @@ -95,6 +107,7 @@ - [ ] **Error Recovery** - User-facing error handling and recovery specified ### Performance Optimization + - [ ] **Frame Rate Targets** - Specific FPS requirements for different platforms - [ ] **Memory Usage** - Memory consumption limits and monitoring requirements - [ ] **Asset Optimization** - Texture, audio, and data optimization requirements @@ -104,6 +117,7 @@ ## Documentation and Communication ### Story Documentation + - [ ] **Implementation Notes** - Additional context and implementation guidance provided - [ ] **Design Decisions** - Key design choices documented with rationale - [ ] **Future Considerations** - Potential future enhancements or modifications noted @@ -111,6 +125,7 @@ - [ ] **Reference Materials** - Links to relevant GDD sections and architecture docs ### Developer Handoff + - [ ] **Immediate Actionability** - Developer can start implementation without additional questions - [ ] **Complete Context** - All necessary context provided within the story - [ ] **Clear Boundaries** - What is and isn't included in the story scope is clear @@ -120,6 +135,7 @@ ## Final Validation ### Story Readiness + - [ ] **No Ambiguity** - No sections require interpretation or additional design decisions - [ ] **Technical Completeness** - All technical requirements are specified and actionable - [ ] **Scope Appropriateness** - Story scope matches assigned story points @@ -127,6 +143,7 @@ - [ ] **Review Completion** - Story has been reviewed for completeness and accuracy ### Implementation Preparedness + - [ ] **Environment Ready** - Development environment requirements specified - [ ] **Resources Available** - All required resources (assets, docs, dependencies) accessible - [ ] **Testing Prepared** - Testing environment and data requirements specified @@ -140,4 +157,4 @@ **Ready for Development:** [ ] Yes [ ] No **Additional Notes:** -_Any specific concerns, recommendations, or clarifications needed before development begins._ \ No newline at end of file +_Any specific concerns, recommendations, or clarifications needed before development begins._ diff --git a/expansion-packs/bmad-2d-phaser-game-dev/data/development-guidelines.md b/expansion-packs/bmad-2d-phaser-game-dev/data/development-guidelines.md index 6b026449..778ba2a8 100644 --- a/expansion-packs/bmad-2d-phaser-game-dev/data/development-guidelines.md +++ b/expansion-packs/bmad-2d-phaser-game-dev/data/development-guidelines.md @@ -9,6 +9,7 @@ This document establishes coding standards, architectural patterns, and developm ### Strict Mode Configuration **Required tsconfig.json settings:** + ```json { "compilerOptions": { @@ -27,6 +28,7 @@ This document establishes coding standards, architectural patterns, and developm ### Type Definitions **Game Object Interfaces:** + ```typescript // Core game entity interface interface GameEntity { @@ -53,6 +55,7 @@ interface GameSystem { ``` **Scene Data Interfaces:** + ```typescript // Scene transition data interface SceneData { @@ -70,7 +73,7 @@ interface GameState { interface GameSettings { musicVolume: number; sfxVolume: number; - difficulty: 'easy' | 'normal' | 'hard'; + difficulty: "easy" | "normal" | "hard"; controls: ControlScheme; } ``` @@ -78,20 +81,24 @@ interface GameSettings { ### Naming Conventions **Classes and Interfaces:** + - PascalCase for classes: `PlayerSprite`, `GameManager`, `AudioSystem` - PascalCase with 'I' prefix for interfaces: `IGameEntity`, `IPlayerController` - Descriptive names that indicate purpose: `CollisionManager` not `CM` **Methods and Variables:** + - camelCase for methods and variables: `updatePosition()`, `playerSpeed` - Descriptive names: `calculateDamage()` not `calcDmg()` - Boolean variables with is/has/can prefix: `isActive`, `hasCollision`, `canMove` **Constants:** + - UPPER_SNAKE_CASE for constants: `MAX_PLAYER_SPEED`, `DEFAULT_VOLUME` - Group related constants in enums or const objects **Files and Directories:** + - kebab-case for file names: `player-controller.ts`, `audio-manager.ts` - PascalCase for scene files: `MenuScene.ts`, `GameScene.ts` @@ -100,88 +107,91 @@ interface GameSettings { ### Scene Organization **Scene Lifecycle Management:** + ```typescript class GameScene extends Phaser.Scene { private gameManager!: GameManager; 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 { // Initialize game systems this.gameManager = new GameManager(this); this.inputManager = new InputManager(this); - + // Set up scene-specific logic this.setupGameObjects(); this.setupEventListeners(); } - + update(time: number, delta: number): void { // Update all game systems this.gameManager.update(delta); this.inputManager.update(delta); } - + shutdown(): void { // Clean up resources this.gameManager.destroy(); this.inputManager.destroy(); - + // Remove event listeners - this.events.off('*'); + this.events.off("*"); } } ``` **Scene Transitions:** + ```typescript // Proper scene transitions with data -this.scene.start('NextScene', { +this.scene.start("NextScene", { playerScore: this.playerScore, - currentLevel: this.currentLevel + 1 + currentLevel: this.currentLevel + 1, }); // Scene overlays for UI -this.scene.launch('PauseMenuScene'); +this.scene.launch("PauseMenuScene"); this.scene.pause(); ``` ### Game Object Patterns **Component-Based Architecture:** + ```typescript // Base game entity abstract class GameEntity extends Phaser.GameObjects.Sprite { protected components: Map = new Map(); - + constructor(scene: Phaser.Scene, x: number, y: number, texture: string) { super(scene, x, y, texture); scene.add.existing(this); } - + addComponent(component: T): T { this.components.set(component.name, component); return component; } - + getComponent(name: string): T | undefined { return this.components.get(name) as T; } - + update(delta: number): void { - this.components.forEach(component => component.update(delta)); + this.components.forEach((component) => component.update(delta)); } - + destroy(): void { - this.components.forEach(component => component.destroy()); + this.components.forEach((component) => component.destroy()); this.components.clear(); super.destroy(); } @@ -191,10 +201,10 @@ abstract class GameEntity extends Phaser.GameObjects.Sprite { class Player extends GameEntity { private movement!: MovementComponent; 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)); } @@ -204,33 +214,34 @@ class Player extends GameEntity { ### System Management **Singleton Managers:** + ```typescript class GameManager { private static instance: GameManager; private scene: Phaser.Scene; private gameState: GameState; - + constructor(scene: Phaser.Scene) { if (GameManager.instance) { - throw new Error('GameManager already exists!'); + throw new Error("GameManager already exists!"); } - + this.scene = scene; this.gameState = this.loadGameState(); GameManager.instance = this; } - + static getInstance(): GameManager { if (!GameManager.instance) { - throw new Error('GameManager not initialized!'); + throw new Error("GameManager not initialized!"); } return GameManager.instance; } - + update(delta: number): void { // Update game logic } - + destroy(): void { GameManager.instance = null!; } @@ -242,14 +253,15 @@ class GameManager { ### Object Pooling **Required for High-Frequency Objects:** + ```typescript class BulletPool { private pool: Bullet[] = []; private scene: Phaser.Scene; - + constructor(scene: Phaser.Scene, initialSize: number = 50) { this.scene = scene; - + // Pre-create bullets for (let i = 0; i < initialSize; i++) { const bullet = new Bullet(scene, 0, 0); @@ -258,20 +270,20 @@ class BulletPool { this.pool.push(bullet); } } - + getBullet(): Bullet | null { - const bullet = this.pool.find(b => !b.active); + const bullet = this.pool.find((b) => !b.active); if (bullet) { bullet.setActive(true); bullet.setVisible(true); return bullet; } - + // 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); } - + releaseBullet(bullet: Bullet): void { bullet.setActive(false); bullet.setVisible(false); @@ -283,27 +295,28 @@ class BulletPool { ### Frame Rate Optimization **Performance Monitoring:** + ```typescript class PerformanceMonitor { private frameCount: number = 0; private lastTime: number = 0; private frameRate: number = 60; - + update(time: number): void { this.frameCount++; - + if (time - this.lastTime >= 1000) { this.frameRate = this.frameCount; this.frameCount = 0; this.lastTime = time; - + if (this.frameRate < 55) { console.warn(`Low frame rate detected: ${this.frameRate} FPS`); this.optimizePerformance(); } } } - + private optimizePerformance(): void { // Reduce particle counts, disable effects, etc. } @@ -311,17 +324,18 @@ class PerformanceMonitor { ``` **Update Loop Optimization:** + ```typescript // Avoid expensive operations in update loops class GameScene extends Phaser.Scene { private updateTimer: number = 0; private readonly UPDATE_INTERVAL = 100; // ms - + update(time: number, delta: number): void { // High-frequency updates (every frame) this.updatePlayer(delta); this.updatePhysics(delta); - + // Low-frequency updates (10 times per second) this.updateTimer += delta; if (this.updateTimer >= this.UPDATE_INTERVAL) { @@ -338,6 +352,7 @@ class GameScene extends Phaser.Scene { ### Cross-Platform Input **Input Abstraction:** + ```typescript interface InputState { moveLeft: boolean; @@ -353,26 +368,26 @@ class InputManager { moveRight: false, jump: false, action: false, - pause: false + pause: false, }; - + private keys!: { [key: string]: Phaser.Input.Keyboard.Key }; private pointer!: Phaser.Input.Pointer; - + constructor(private scene: Phaser.Scene) { this.setupKeyboard(); this.setupTouch(); } - + 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 { // Update input state from multiple sources this.inputState.moveLeft = this.keys.A.isDown || this.keys.LEFT.isDown; @@ -380,7 +395,7 @@ class InputManager { this.inputState.jump = Phaser.Input.Keyboard.JustDown(this.keys.SPACE); // ... handle touch input } - + getInputState(): InputState { return { ...this.inputState }; } @@ -392,30 +407,31 @@ class InputManager { ### Graceful Degradation **Asset Loading Error Handling:** + ```typescript class AssetManager { loadAssets(): Promise { 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(); }); } - + private handleLoadError(file: Phaser.Loader.File): void { console.error(`Failed to load asset: ${file.key}`); - + // Use fallback assets this.loadFallbackAsset(file.key); } - + 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}`); @@ -427,25 +443,26 @@ class AssetManager { ### Runtime Error Recovery **System Error Handling:** + ```typescript class GameSystem { protected handleError(error: Error, context: string): void { console.error(`Error in ${context}:`, error); - + // Report to analytics/logging service this.reportError(error, context); - + // Attempt recovery this.attemptRecovery(context); } - + 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; @@ -462,28 +479,29 @@ class GameSystem { ### Unit Testing **Game Logic Testing:** + ```typescript // Example test for game mechanics -describe('HealthComponent', () => { +describe("HealthComponent", () => { let healthComponent: HealthComponent; - + beforeEach(() => { const mockEntity = {} as GameEntity; 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); @@ -494,20 +512,21 @@ describe('HealthComponent', () => { ### Integration Testing **Scene Testing:** + ```typescript -describe('GameScene Integration', () => { +describe("GameScene Integration", () => { let scene: GameScene; let mockGame: Phaser.Game; - + beforeEach(() => { // Mock Phaser game instance mockGame = createMockGame(); scene = new GameScene(); }); - - test('should initialize all systems', () => { + + test("should initialize all systems", () => { scene.create({}); - + expect(scene.gameManager).toBeDefined(); expect(scene.inputManager).toBeDefined(); }); @@ -566,21 +585,25 @@ src/ ### Story Implementation Process 1. **Read Story Requirements:** + - Understand acceptance criteria - Identify technical requirements - Review performance constraints 2. **Plan Implementation:** + - Identify files to create/modify - Consider component architecture - Plan testing approach 3. **Implement Feature:** + - Follow TypeScript strict mode - Use established patterns - Maintain 60 FPS performance 4. **Test Implementation:** + - Write unit tests for game logic - Test cross-platform functionality - Validate performance targets @@ -593,6 +616,7 @@ src/ ### Code Review Checklist **Before Committing:** + - [ ] TypeScript compiles without errors - [ ] All tests pass - [ ] Performance targets met (60 FPS) @@ -606,19 +630,22 @@ src/ ## Performance Targets ### Frame Rate Requirements + - **Desktop**: Maintain 60 FPS at 1080p - **Mobile**: Maintain 60 FPS on mid-range devices, minimum 30 FPS on low-end - **Optimization**: Implement dynamic quality scaling when performance drops ### Memory Management + - **Total Memory**: Under 100MB for full game - **Per Scene**: Under 50MB per gameplay scene - **Asset Loading**: Progressive loading to stay under limits - **Garbage Collection**: Minimize object creation in update loops ### Loading Performance + - **Initial Load**: Under 5 seconds for game start - **Scene Transitions**: Under 2 seconds between scenes - **Asset Streaming**: Background loading for upcoming content -These guidelines ensure consistent, high-quality game development that meets performance targets and maintains code quality across all implementation stories. \ No newline at end of file +These guidelines ensure consistent, high-quality game development that meets performance targets and maintains code quality across all implementation stories. diff --git a/expansion-packs/bmad-2d-phaser-game-dev/tasks/advanced-elicitation.md b/expansion-packs/bmad-2d-phaser-game-dev/tasks/advanced-elicitation.md index 8dda4f9f..2a098d7d 100644 --- a/expansion-packs/bmad-2d-phaser-game-dev/tasks/advanced-elicitation.md +++ b/expansion-packs/bmad-2d-phaser-game-dev/tasks/advanced-elicitation.md @@ -103,8 +103,9 @@ This elicitation task is specifically designed for game development and should b - **Platform Considerations**: When adapting designs for different devices and input methods The questions and perspectives offered should always consider: + - Player psychology and motivation - Technical feasibility with Phaser 3 and TypeScript - Performance implications for 60 FPS targets - Cross-platform compatibility (desktop and mobile) -- Game development best practices and common pitfalls \ No newline at end of file +- Game development best practices and common pitfalls diff --git a/expansion-packs/bmad-2d-phaser-game-dev/tasks/create-game-story.md b/expansion-packs/bmad-2d-phaser-game-dev/tasks/create-game-story.md index 3a1d490b..a6306b48 100644 --- a/expansion-packs/bmad-2d-phaser-game-dev/tasks/create-game-story.md +++ b/expansion-packs/bmad-2d-phaser-game-dev/tasks/create-game-story.md @@ -14,6 +14,7 @@ Create detailed, actionable game development stories that enable AI developers t ## Prerequisites Before creating stories, ensure you have: + - Completed Game Design Document (GDD) - Game Architecture Document - Epic definition this story belongs to @@ -24,12 +25,14 @@ Before creating stories, ensure you have: ### 1. Story Identification **Review Epic Context:** + - Understand the epic's overall goal - Identify specific features that need implementation - Review any existing stories in the epic - Ensure no duplicate work **Feature Analysis:** + - Reference specific GDD sections - Understand player experience goals - Identify technical complexity @@ -38,12 +41,14 @@ Before creating stories, ensure you have: ### 2. Story Scoping **Single Responsibility:** + - Focus on one specific game feature - Ensure story is completable in 1-3 days - Break down complex features into multiple stories - Maintain clear boundaries with other stories **Implementation Clarity:** + - Define exactly what needs to be built - Specify all technical requirements - Include all necessary integration points @@ -55,6 +60,7 @@ Before creating stories, ensure you have: Use `templates#game-story-tmpl` following all embedded LLM instructions **Key Focus Areas:** + - Clear, actionable description - Specific acceptance criteria - Detailed technical specifications @@ -64,18 +70,21 @@ Use `templates#game-story-tmpl` following all embedded LLM instructions ### 4. Story Validation **Technical Review:** + - Verify all technical specifications are complete - Ensure integration points are clearly defined - Confirm file paths match architecture - Validate TypeScript interfaces and classes **Game Design Alignment:** + - Confirm story implements GDD requirements - Verify player experience goals are met - Check balance parameters are included - Ensure game mechanics are correctly interpreted **Implementation Readiness:** + - All dependencies identified - Assets requirements specified - Testing criteria defined @@ -87,6 +96,7 @@ Use `templates#game-story-tmpl` following all embedded LLM instructions Execute `checklists#game-story-dod-checklist` against completed story **Story Criteria:** + - Story is immediately actionable - No design decisions left to developer - Technical requirements are complete @@ -96,12 +106,14 @@ Execute `checklists#game-story-dod-checklist` against completed story ### 6. Story Refinement **Developer Perspective:** + - Can a developer start implementation immediately? - Are all technical questions answered? - Is the scope appropriate for the estimated points? - Are all dependencies clearly identified? **Iterative Improvement:** + - Address any gaps or ambiguities - Clarify complex technical requirements - Ensure story fits within epic scope @@ -110,6 +122,7 @@ Execute `checklists#game-story-dod-checklist` against completed story ## Story Elements Checklist ### Required Sections + - [ ] Clear, specific description - [ ] Complete acceptance criteria (functional, technical, game design) - [ ] Detailed technical specifications @@ -123,6 +136,7 @@ Execute `checklists#game-story-dod-checklist` against completed story - [ ] Definition of Done checklist ### Game-Specific Requirements + - [ ] GDD section references - [ ] Game mechanic implementation details - [ ] Player experience goals @@ -132,6 +146,7 @@ Execute `checklists#game-story-dod-checklist` against completed story - [ ] Cross-platform considerations ### Technical Quality + - [ ] TypeScript strict mode compliance - [ ] Architecture document alignment - [ ] Code organization follows standards @@ -142,18 +157,21 @@ Execute `checklists#game-story-dod-checklist` against completed story ## Common Pitfalls **Scope Issues:** + - Story too large (break into multiple stories) - Story too vague (add specific requirements) - Missing dependencies (identify all prerequisites) - Unclear boundaries (define what's in/out of scope) **Technical Issues:** + - Missing integration details - Incomplete technical specifications - Undefined interfaces or classes - Missing performance requirements **Game Design Issues:** + - Not referencing GDD properly - Missing player experience context - Unclear game mechanic implementation @@ -162,6 +180,7 @@ Execute `checklists#game-story-dod-checklist` against completed story ## Success Criteria **Story Readiness:** + - [ ] Developer can start implementation immediately - [ ] No additional design decisions required - [ ] All technical questions answered @@ -170,6 +189,7 @@ Execute `checklists#game-story-dod-checklist` against completed story - [ ] Story fits within epic scope **Quality Validation:** + - [ ] Game story DOD checklist passes - [ ] Architecture alignment confirmed - [ ] GDD requirements covered @@ -179,6 +199,7 @@ Execute `checklists#game-story-dod-checklist` against completed story ## Handoff Protocol **To Game Developer:** + 1. Provide story document 2. Confirm GDD and architecture access 3. Verify all dependencies are met @@ -186,9 +207,10 @@ Execute `checklists#game-story-dod-checklist` against completed story 5. Establish check-in schedule **Story Status Updates:** + - Draft → Ready for Development - In Development → Code Review - Code Review → Testing - Testing → Done -This task ensures game development stories are immediately actionable and enable efficient AI-driven development of game features. \ No newline at end of file +This task ensures game development stories are immediately actionable and enable efficient AI-driven development of game features. diff --git a/expansion-packs/bmad-2d-phaser-game-dev/tasks/game-design-brainstorming.md b/expansion-packs/bmad-2d-phaser-game-dev/tasks/game-design-brainstorming.md index 14d54e1d..7b3fce54 100644 --- a/expansion-packs/bmad-2d-phaser-game-dev/tasks/game-design-brainstorming.md +++ b/expansion-packs/bmad-2d-phaser-game-dev/tasks/game-design-brainstorming.md @@ -9,6 +9,7 @@ This task provides a comprehensive toolkit of creative brainstorming techniques [[LLM: Begin by understanding the game design context and goals. Ask clarifying questions if needed to determine the best approach for game-specific ideation.]] 1. **Establish Game Context** + - Understand the game genre or opportunity area - Identify target audience and platform constraints - Determine session goals (concept exploration vs. mechanic refinement) @@ -164,26 +165,31 @@ This task provides a comprehensive toolkit of creative brainstorming techniques [[LLM: Help user select appropriate techniques based on their specific game design needs.]] **For Initial Game Concepts:** + - What If Game Scenarios - Cross-Genre Fusion - Emotion-First Design **For Stuck/Blocked Creativity:** + - Player Motivation Reversal - Constraint-Based Creativity - Genre Expectation Subversion **For Mechanic Development:** + - SCAMPER for Game Mechanics - Core Loop Deconstruction - Player Agency Spectrum **For Player Experience:** + - Player Archetype Brainstorming - Emotion-First Design - Accessibility-First Innovation **For World Building:** + - Environmental Storytelling - Player-Generated Narrative - Platform-Specific Design @@ -193,16 +199,19 @@ This task provides a comprehensive toolkit of creative brainstorming techniques [[LLM: Guide the brainstorming session with appropriate pacing for game design exploration.]] 1. **Inspiration Phase** (10-15 min) + - Reference existing games and mechanics - Explore player experiences and emotions - Gather visual and thematic inspiration 2. **Divergent Exploration** (25-35 min) + - Generate many game concepts or mechanics - Use expansion and fusion techniques - Encourage wild and impossible ideas 3. **Player-Centered Filtering** (15-20 min) + - Consider target audience reactions - Evaluate emotional impact and engagement - Group ideas by player experience goals @@ -217,6 +226,7 @@ This task provides a comprehensive toolkit of creative brainstorming techniques [[LLM: Present brainstorming results in a format useful for game development.]] **Session Summary:** + - Techniques used and focus areas - Total concepts/mechanics generated - Key themes and patterns identified @@ -232,21 +242,25 @@ This task provides a comprehensive toolkit of creative brainstorming techniques **Development Readiness:** **Prototype-Ready Ideas:** + - Ideas that can be tested immediately - Minimum viable implementations - Quick validation approaches **Research-Required Ideas:** + - Concepts needing technical investigation - Player testing and market research needs - Competitive analysis requirements **Future Innovation Pipeline:** + - Ideas requiring significant development - Technology-dependent concepts - Market timing considerations **Next Steps:** + - Which concepts to prototype first - Recommended research areas - Suggested playtesting approaches @@ -255,24 +269,28 @@ This task provides a comprehensive toolkit of creative brainstorming techniques ## Game Design Specific Considerations ### Platform and Audience Awareness + - Always consider target platform limitations and advantages - Keep target audience preferences and expectations in mind - Balance innovation with familiar game design patterns - Consider monetization and business model implications ### Rapid Prototyping Mindset + - Focus on ideas that can be quickly tested - Emphasize core mechanics over complex features - Design for iteration and player feedback - Consider digital and paper prototyping approaches ### Player Psychology Integration + - Understand motivation and engagement drivers - Consider learning curves and skill development - Design for different play session lengths - Balance challenge and reward appropriately ### Technical Feasibility + - Keep development resources and timeline in mind - Consider art and audio asset requirements - Think about performance and optimization needs @@ -287,4 +305,4 @@ This task provides a comprehensive toolkit of creative brainstorming techniques - Think about community and social aspects of gameplay - Consider accessibility and inclusivity from the start - Balance innovation with market viability -- Plan for iteration based on player feedback \ No newline at end of file +- Plan for iteration based on player feedback diff --git a/expansion-packs/bmad-2d-phaser-game-dev/templates/game-brief-tmpl.md b/expansion-packs/bmad-2d-phaser-game-dev/templates/game-brief-tmpl.md index 35264112..4a2867d2 100644 --- a/expansion-packs/bmad-2d-phaser-game-dev/templates/game-brief-tmpl.md +++ b/expansion-packs/bmad-2d-phaser-game-dev/templates/game-brief-tmpl.md @@ -60,11 +60,13 @@ This brief is typically created early in the ideation process, often after brain [[LLM: List the 3-5 most important gameplay mechanics that define the player experience]] **Core Mechanic 1: {{mechanic_name}}** + - **Description:** {{how_it_works}} - **Player Value:** {{why_its_fun}} - **Implementation Scope:** {{complexity_estimate}} **Core Mechanic 2: {{mechanic_name}}** + - **Description:** {{how_it_works}} - **Player Value:** {{why_its_fun}} - **Implementation Scope:** {{complexity_estimate}} @@ -91,10 +93,12 @@ This brief is typically created early in the ideation process, often after brain ### Technical Constraints **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 @@ -125,6 +129,7 @@ This brief is typically created early in the ideation process, often after brain ### Inspiration Games **Primary References:** + 1. **{{reference_game_1}}** - {{what_we_learn_from_it}} 2. **{{reference_game_2}}** - {{what_we_learn_from_it}} 3. **{{reference_game_3}}** - {{what_we_learn_from_it}} @@ -132,6 +137,7 @@ This brief is typically created early in the ideation process, often after brain ### Competitive Analysis **Direct Competitors:** + - {{competitor_1}}: {{strengths_and_weaknesses}} - {{competitor_2}}: {{strengths_and_weaknesses}} @@ -157,13 +163,16 @@ This brief is typically created early in the ideation process, often after brain ### Content Categories **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}} ### Difficulty and Accessibility @@ -201,23 +210,23 @@ This brief is typically created early in the ideation process, often after brain ### Technical Risks -| Risk | Probability | Impact | Mitigation Strategy | -|------|-------------|--------|-------------------| -| {{technical_risk_1}} | {{high|med|low}} | {{high|med|low}} | {{mitigation_approach}} | -| {{technical_risk_2}} | {{high|med|low}} | {{high|med|low}} | {{mitigation_approach}} | +| Risk | Probability | Impact | Mitigation Strategy | +| -------------------- | ----------- | ------ | ------------------- | ------ | --- | ----- | ----------------------- | +| {{technical_risk_1}} | {{high | med | low}} | {{high | med | low}} | {{mitigation_approach}} | +| {{technical_risk_2}} | {{high | med | low}} | {{high | med | low}} | {{mitigation_approach}} | ### Design Risks -| Risk | Probability | Impact | Mitigation Strategy | -|------|-------------|--------|-------------------| -| {{design_risk_1}} | {{high|med|low}} | {{high|med|low}} | {{mitigation_approach}} | -| {{design_risk_2}} | {{high|med|low}} | {{high|med|low}} | {{mitigation_approach}} | +| Risk | Probability | Impact | Mitigation Strategy | +| ----------------- | ----------- | ------ | ------------------- | ------ | --- | ----- | ----------------------- | +| {{design_risk_1}} | {{high | med | low}} | {{high | med | low}} | {{mitigation_approach}} | +| {{design_risk_2}} | {{high | med | low}} | {{high | med | low}} | {{mitigation_approach}} | ### Market Risks -| Risk | Probability | Impact | Mitigation Strategy | -|------|-------------|--------|-------------------| -| {{market_risk_1}} | {{high|med|low}} | {{high|med|low}} | {{mitigation_approach}} | +| Risk | Probability | Impact | Mitigation Strategy | +| ----------------- | ----------- | ------ | ------------------- | ------ | --- | ----- | ----------------------- | +| {{market_risk_1}} | {{high | med | low}} | {{high | med | low}} | {{mitigation_approach}} | ## Success Criteria @@ -226,11 +235,13 @@ This brief is typically created early in the ideation process, often after brain ### Player Experience Metrics **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 @@ -238,11 +249,13 @@ This brief is typically created early in the ideation process, often after brain ### Development Metrics **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 @@ -252,6 +265,7 @@ This brief is typically created early in the ideation process, often after brain ### Business Metrics **Commercial Goals:** + - {{revenue_target}} in first {{time_period}} - {{user_acquisition_target}} players in first {{time_period}} - {{retention_target}} monthly active users @@ -271,16 +285,19 @@ This brief is typically created early in the ideation process, often after brain ### Development Roadmap **Phase 1: Pre-Production** ({{duration}}) + - Detailed Game Design Document creation - Technical architecture planning - Art style exploration and pipeline setup **Phase 2: Prototype** ({{duration}}) + - Core mechanic implementation - Technical proof of concept - Initial playtesting and iteration **Phase 3: Production** ({{duration}}) + - Full feature development - Content creation and integration - Comprehensive testing and optimization @@ -288,6 +305,7 @@ This brief is typically created early in the ideation process, often after brain ### Documentation Pipeline **Required Documents:** + 1. Game Design Document (GDD) - {{target_completion}} 2. Technical Architecture Document - {{target_completion}} 3. Art Style Guide - {{target_completion}} @@ -296,10 +314,12 @@ This brief is typically created early in the ideation process, often after brain ### Validation Plan **Concept Testing:** + - {{validation_method_1}} - {{timeline}} - {{validation_method_2}} - {{timeline}} **Prototype Testing:** + - {{testing_approach}} - {{timeline}} - {{feedback_collection_method}} - {{timeline}} @@ -322,4 +342,4 @@ This brief is typically created early in the ideation process, often after brain [[LLM: Track document versions and changes]] | Date | Version | Description | Author | -| :--- | :------ | :---------- | :----- | \ No newline at end of file +| :--- | :------ | :---------- | :----- | diff --git a/expansion-packs/bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.md b/expansion-packs/bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.md index 1e05dba0..6fb1d1c4 100644 --- a/expansion-packs/bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.md +++ b/expansion-packs/bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.md @@ -53,6 +53,7 @@ If available, review any provided documents or ask if any are optionally availab [[LLM: Define the 30-60 second loop that players will repeat. Be specific about timing and player actions.]] **Primary Loop ({{duration}} seconds):** + 1. {{action_1}} ({{time_1}}s) 2. {{action_2}} ({{time_2}}s) 3. {{action_3}} ({{time_3}}s) @@ -63,10 +64,12 @@ If available, review any provided documents or ask if any are optionally availab [[LLM: Clearly define success and failure states]] **Victory Conditions:** + - {{win_condition_1}} - {{win_condition_2}} **Failure States:** + - {{loss_condition_1}} - {{loss_condition_2}} @@ -87,6 +90,7 @@ If available, review any provided documents or ask if any are optionally availab **System Response:** {{game_response}} **Implementation Notes:** + - {{tech_requirement_1}} - {{tech_requirement_2}} - {{performance_consideration}} @@ -99,8 +103,8 @@ If available, review any provided documents or ask if any are optionally availab [[LLM: Define all input methods for different platforms]] -| Action | Desktop | Mobile | Gamepad | -|--------|---------|--------|---------| +| Action | Desktop | Mobile | Gamepad | +| ------------ | ------- | ----------- | ---------- | | {{action_1}} | {{key}} | {{gesture}} | {{button}} | | {{action_2}} | {{key}} | {{gesture}} | {{button}} | @@ -113,6 +117,7 @@ If available, review any provided documents or ask if any are optionally availab **Progression Type:** {{linear|branching|metroidvania}} **Key Milestones:** + 1. **{{milestone_1}}** - {{unlock_description}} 2. **{{milestone_2}}** - {{unlock_description}} 3. **{{milestone_3}}** - {{unlock_description}} @@ -132,9 +137,9 @@ If available, review any provided documents or ask if any are optionally availab [[LLM: Define any in-game currencies, resources, or collectibles]] -| Resource | Earn Rate | Spend Rate | Purpose | Cap | -|----------|-----------|------------|---------|-----| -| {{resource_1}} | {{rate}} | {{rate}} | {{use}} | {{max}} | +| Resource | Earn Rate | Spend Rate | Purpose | Cap | +| -------------- | --------- | ---------- | ------- | ------- | +| {{resource_1}} | {{rate}} | {{rate}} | {{use}} | {{max}} | ^^/CONDITION: has_economy^^ @@ -154,6 +159,7 @@ If available, review any provided documents or ask if any are optionally availab **Difficulty:** {{relative_difficulty}} **Structure Template:** + - Introduction: {{intro_description}} - Challenge: {{main_challenge}} - Resolution: {{completion_requirement}} @@ -180,11 +186,13 @@ If available, review any provided documents or ask if any are optionally availab ### Platform Specific **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+ @@ -194,12 +202,14 @@ If available, review any provided documents or ask if any are optionally availab [[LLM: Define asset specifications for the art and audio teams]] **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}} @@ -211,6 +221,7 @@ If available, review any provided documents or ask if any are optionally availab ### Engine Configuration **Phaser 3 Setup:** + - TypeScript: Strict mode enabled - Physics: {{physics_system}} (Arcade/Matter) - Renderer: WebGL with Canvas fallback @@ -219,6 +230,7 @@ If available, review any provided documents or ask if any are optionally availab ### Code Architecture **Required Systems:** + - Scene Management - State Management - Asset Loading @@ -230,6 +242,7 @@ If available, review any provided documents or ask if any are optionally availab ### Data Management **Save Data:** + - Progress tracking - Settings persistence - Statistics collection @@ -242,12 +255,14 @@ If available, review any provided documents or ask if any are optionally availab ### Phase 1: Core Systems ({{duration}}) **Epic: Foundation** + - Engine setup and configuration - Basic scene management - Core input handling - Asset loading pipeline **Epic: Core Mechanics** + - {{primary_mechanic}} implementation - Basic physics and collision - Player controller @@ -255,11 +270,13 @@ If available, review any provided documents or ask if any are optionally availab ### Phase 2: Gameplay Features ({{duration}}) **Epic: Game Systems** + - {{mechanic_2}} implementation - {{mechanic_3}} implementation - Game state management **Epic: Content Creation** + - Level loading system - First playable levels - Basic UI implementation @@ -267,11 +284,13 @@ If available, review any provided documents or ask if any are optionally availab ### Phase 3: Polish & Optimization ({{duration}}) **Epic: Performance** + - Optimization and profiling - Mobile platform testing - Memory management **Epic: User Experience** + - Audio implementation - Visual effects and polish - Final UI/UX refinement @@ -281,12 +300,14 @@ If available, review any provided documents or ask if any are optionally availab [[LLM: Define measurable goals for the game]] **Technical Metrics:** + - Frame rate: {{fps_target}} - Load time: {{load_target}} - Crash rate: <{{crash_threshold}}% - Memory usage: <{{memory_target}}MB **Gameplay Metrics:** + - Tutorial completion: {{completion_rate}}% - Average session: {{session_length}} minutes - Level completion: {{level_completion}}% @@ -307,4 +328,4 @@ If available, review any provided documents or ask if any are optionally availab - {{reference_1}} - {{reference_2}} -- {{reference_3}} \ No newline at end of file +- {{reference_3}} diff --git a/expansion-packs/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.md b/expansion-packs/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.md index af12b746..0abb6b98 100644 --- a/expansion-packs/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.md +++ b/expansion-packs/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.md @@ -64,19 +64,23 @@ This framework ensures consistency across all levels while providing flexibility **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 @@ -97,6 +101,7 @@ This framework ensures consistency across all levels while providing flexibility **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}} @@ -106,7 +111,8 @@ This framework ensures consistency across all levels while providing flexibility [[LLM: Define how challenge increases across the game]] **Progression Curve:** -```text + +````text Difficulty ^ ___/``` | / @@ -116,9 +122,10 @@ Difficulty |/ / +-----------> Level Number Tutorial Early Mid Late -``` +```` **Scaling Parameters:** + - Enemy count: {{start_count}} → {{end_count}} - Enemy difficulty: {{start_diff}} → {{end_diff}} - Level complexity: {{start_complex}} → {{end_complex}} @@ -129,6 +136,7 @@ Difficulty [[LLM: Define how players access new levels]] **Progression Gates:** + - Linear progression: Complete previous level - Star requirements: {{star_count}} stars to unlock - Skill gates: Demonstrate {{skill_requirement}} @@ -143,14 +151,17 @@ Difficulty [[LLM: Define all environmental components that can be used in levels]] **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}} @@ -159,15 +170,18 @@ Difficulty [[LLM: Define all collectible items and their placement rules]] **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}}% @@ -177,15 +191,18 @@ Difficulty [[LLM: Define how enemies should be placed and balanced in levels]] **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}} @@ -197,12 +214,14 @@ Difficulty ### Level Layout Principles **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}} @@ -213,11 +232,13 @@ Difficulty [[LLM: Define how to control the rhythm and pace of gameplay within levels]] **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}} @@ -227,12 +248,14 @@ Difficulty [[LLM: Define how to create appropriate challenges for each level type]] **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}} @@ -246,11 +269,13 @@ Difficulty [[LLM: Define how level data should be structured for implementation]] **Level File Format:** + - Data format: {{json|yaml|custom}} - File naming: `level_{{world}}_{{number}}.{{extension}}` - Data organization: {{structure_description}} **Required Data Fields:** + ```json { "levelId": "{{unique_identifier}}", @@ -282,12 +307,14 @@ Difficulty [[LLM: Define how level assets are organized and loaded]] **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}} @@ -297,16 +324,19 @@ Difficulty [[LLM: Define performance requirements for level systems]] **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}} @@ -318,11 +348,13 @@ Difficulty ### Automated Testing **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 @@ -330,6 +362,7 @@ Difficulty ### Manual Testing Protocol **Playtesting Checklist:** + - [ ] Level completes within target time range - [ ] All mechanics function correctly - [ ] Difficulty feels appropriate for level category @@ -337,6 +370,7 @@ Difficulty - [ ] No exploits or sequence breaks (unless intended) **Player Experience Testing:** + - [ ] Tutorial levels teach effectively - [ ] Challenge feels fair and rewarding - [ ] Flow and pacing maintain engagement @@ -345,12 +379,14 @@ Difficulty ### Balance Validation **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}} @@ -362,12 +398,14 @@ Difficulty ### Design Phase **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 @@ -376,6 +414,7 @@ Difficulty ### Implementation Phase **Technical Implementation:** + 1. Create level data file 2. Build tilemap and layout 3. Place entities and objects @@ -383,6 +422,7 @@ Difficulty 5. Integrate audio and visual effects **Quality Assurance:** + 1. Automated testing execution 2. Internal playtesting 3. Performance validation @@ -391,12 +431,14 @@ Difficulty ### Integration Phase **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 @@ -407,19 +449,22 @@ Difficulty [[LLM: Define how to measure level design success]] **Player Engagement:** + - Level completion rate: {{target_rate}}% - Replay rate: {{replay_target}}% - Time spent per level: {{engagement_time}} - Player satisfaction scores: {{satisfaction_target}}/10 **Technical Performance:** + - Frame rate consistency: {{fps_consistency}}% - Loading time compliance: {{load_compliance}}% - Memory usage efficiency: {{memory_efficiency}}% - Crash rate: <{{crash_threshold}}% **Design Quality:** + - Difficulty curve adherence: {{curve_accuracy}} - Mechanic integration effectiveness: {{integration_score}} - Player guidance clarity: {{guidance_score}} -- Content accessibility: {{accessibility_rate}}% \ No newline at end of file +- Content accessibility: {{accessibility_rate}}% diff --git a/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.md b/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.md index 87a25441..fbac5a05 100644 --- a/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.md +++ b/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.md @@ -31,8 +31,8 @@ persona: - Collaborative Operations - Work closely with development teams fostering shared responsibility for system reliability startup: - Announce: Hey! I'm Alex, your DevOps Infrastructure Specialist. I love when things run secure, stable, reliable and performant. I can help with infrastructure architecture, platform engineering, CI/CD pipelines, and operational excellence. What infrastructure challenge can I help you with today? - - 'List available tasks: review-infrastructure, validate-infrastructure, create infrastructure documentation' - - 'List available templates: infrastructure-architecture, infrastructure-platform-from-arch' + - "List available tasks: review-infrastructure, validate-infrastructure, create infrastructure documentation" + - "List available templates: infrastructure-architecture, infrastructure-platform-from-arch" - Execute selected task or stay in persona to help guided by Core DevOps Principles commands: - '*help" - Show: numbered list of the following commands to allow selection' diff --git a/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.md b/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.md index feb80fbd..306c9778 100644 Binary files a/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.md and b/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.md differ diff --git a/expansion-packs/expansion-creator/README.md b/expansion-packs/expansion-creator/README.md index 25f70777..4a823a1e 100644 --- a/expansion-packs/expansion-creator/README.md +++ b/expansion-packs/expansion-creator/README.md @@ -5,4 +5,4 @@ Tools for creating and extending BMAD framework components. ## Tasks - **create-agent**: Create new AI agent definitions -- **generate-expansion-pack**: Generate new expansion pack templates \ No newline at end of file +- **generate-expansion-pack**: Generate new expansion pack templates diff --git a/expansion-packs/expansion-creator/agents/bmad-the-creator.md b/expansion-packs/expansion-creator/agents/bmad-the-creator.md index d0461282..2cea2720 100644 --- a/expansion-packs/expansion-creator/agents/bmad-the-creator.md +++ b/expansion-packs/expansion-creator/agents/bmad-the-creator.md @@ -50,4 +50,4 @@ dependencies: templates: - agent-tmpl - expansion-pack-plan-tmpl -``` \ No newline at end of file +``` diff --git a/expansion-packs/expansion-creator/tasks/create-agent.md b/expansion-packs/expansion-creator/tasks/create-agent.md index 03f8d80d..00848779 100644 --- a/expansion-packs/expansion-creator/tasks/create-agent.md +++ b/expansion-packs/expansion-creator/tasks/create-agent.md @@ -183,12 +183,12 @@ When a required task or template doesn't exist: ```yaml dependencies: tasks: - - 'create-doc # Required if agent creates any documents' - - 'analyze-requirements # Custom task for this agent' - - 'generate-report # Another custom task' + - create-doc + - analyze-requirements + - generate-report templates: - - 'requirements-doc # Template for requirements documents' - - 'analysis-report # Template for analysis reports' + - requirements-doc + - analysis-report ``` ## Notes diff --git a/expansion-packs/expansion-creator/tasks/generate-expansion-pack.md b/expansion-packs/expansion-creator/tasks/generate-expansion-pack.md index 053eda54..0eadaea5 100644 --- a/expansion-packs/expansion-creator/tasks/generate-expansion-pack.md +++ b/expansion-packs/expansion-creator/tasks/generate-expansion-pack.md @@ -673,7 +673,7 @@ Before declaring complete: **README Structure with Character Introduction:** -````markdown +```markdown # {Pack Name} Expansion Pack ## Meet Your {Domain} Team @@ -698,9 +698,7 @@ _{Professional background and expertise}_ 2. **Launch Orchestrator**: - ```bash npm run agent {pack-name}-orchestrator - ``` 3. **Follow Numbered Options**: {Character Name} will present numbered choices for each decision @@ -730,7 +728,7 @@ _{Professional background and expertise}_ ### Knowledge Base [Embedded domain expertise] -```` +``` #### 6.3 Advanced Data File Documentation with Validation diff --git a/expansion-packs/expansion-creator/templates/agent-tmpl.md b/expansion-packs/expansion-creator/templates/agent-tmpl.md index 74b5b209..a1152d18 100644 --- a/expansion-packs/expansion-creator/templates/agent-tmpl.md +++ b/expansion-packs/expansion-creator/templates/agent-tmpl.md @@ -70,7 +70,7 @@ dependencies: - [TEMPLATE_1] # Template with LLM instructions for guided creation - [TEMPLATE_2] # Another template for different document type [[LLM: Example: blueprint-tmpl, contract-tmpl, report-tmpl - Each template should include [[LLM: guidance]] and other conventions from `template-formmat.md` sections for user interaction]] + Each template should include [[LLM: guidance]] and other conventions from `template-format.md` sections for user interaction]] checklists: - [CHECKLIST_1] # Quality validation for template outputs @@ -125,19 +125,19 @@ commands: - '*exit" - Say goodbye as Marcus and exit' dependencies: tasks: - - 'create-doc # For document creation' - - 'validate-plans # Custom validation task' - - 'safety-assessment # Custom safety review task' + - create-doc + - validate-plans + - safety-assessment templates: - - 'blueprint-tmpl # Architectural blueprint template' - - 'estimate-tmpl # Cost estimation template' - - 'schedule-tmpl # Project timeline template' + - blueprint-tmpl + - estimate-tmpl + - schedule-tmpl checklists: - - 'blueprint-checklist # Validates blueprint completeness' - - 'safety-checklist # Safety compliance validation' + - blueprint-checklist + - safety-checklist data: - - 'building-codes.md # Local building code reference' - - 'materials-guide.md # Construction materials specs' + - building-codes.md + - materials-guide.md utils: - - 'template-format # For template processing' + - template-format ```