bmad-method 4.30.1 → 4.30.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +1 -1
  3. package/bmad-core/core-config.yaml +0 -1
  4. package/bmad-core/data/bmad-kb.md +1 -1
  5. package/dist/agents/analyst.txt +1 -1
  6. package/dist/agents/bmad-master.txt +1 -1
  7. package/dist/agents/bmad-orchestrator.txt +1 -1
  8. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.txt +2409 -0
  9. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.txt +1480 -0
  10. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.txt +826 -0
  11. package/dist/expansion-packs/bmad-2d-unity-game-dev/teams/unity-2d-game-team.txt +10690 -0
  12. package/dist/teams/team-all.txt +1 -1
  13. package/dist/teams/team-fullstack.txt +1 -1
  14. package/dist/teams/team-ide-minimal.txt +1 -1
  15. package/dist/teams/team-no-ui.txt +1 -1
  16. package/docs/bmad-workflow-guide.md +2 -2
  17. package/expansion-packs/bmad-2d-phaser-game-dev/config.yaml +2 -2
  18. package/expansion-packs/bmad-2d-unity-game-dev/agent-teams/unity-2d-game-team.yaml +13 -0
  19. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.md +72 -0
  20. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.md +78 -0
  21. package/expansion-packs/{bmad-creator-tools/agents/bmad-the-creator.md → bmad-2d-unity-game-dev/agents/game-sm.md} +26 -28
  22. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-design-checklist.md +201 -0
  23. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-story-dod-checklist.md +160 -0
  24. package/expansion-packs/bmad-2d-unity-game-dev/config.yaml +6 -0
  25. package/expansion-packs/bmad-2d-unity-game-dev/data/bmad-kb.md +251 -0
  26. package/expansion-packs/bmad-2d-unity-game-dev/data/development-guidelines.md +590 -0
  27. package/expansion-packs/bmad-2d-unity-game-dev/tasks/advanced-elicitation.md +111 -0
  28. package/expansion-packs/bmad-2d-unity-game-dev/tasks/create-game-story.md +217 -0
  29. package/expansion-packs/bmad-2d-unity-game-dev/tasks/game-design-brainstorming.md +308 -0
  30. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-architecture-tmpl.yaml +545 -0
  31. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-brief-tmpl.yaml +356 -0
  32. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-design-doc-tmpl.yaml +343 -0
  33. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-story-tmpl.yaml +256 -0
  34. package/expansion-packs/bmad-2d-unity-game-dev/templates/level-design-doc-tmpl.yaml +484 -0
  35. package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-dev-greenfield.yaml +183 -0
  36. package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-prototype.yaml +175 -0
  37. package/expansion-packs/bmad-infrastructure-devops/config.yaml +2 -2
  38. package/package.json +4 -8
  39. package/tools/bump-all-versions.js +8 -9
  40. package/tools/bump-expansion-version.js +40 -35
  41. package/tools/installer/bin/bmad.js +8 -21
  42. package/tools/installer/lib/file-manager.js +76 -44
  43. package/tools/installer/lib/ide-base-setup.js +227 -0
  44. package/tools/installer/lib/ide-setup.js +14 -60
  45. package/tools/installer/lib/installer.js +99 -121
  46. package/tools/installer/lib/memory-profiler.js +224 -0
  47. package/tools/installer/lib/module-manager.js +110 -0
  48. package/tools/installer/lib/resource-locator.js +310 -0
  49. package/tools/installer/package.json +1 -1
  50. package/tools/semantic-release-sync-installer.js +20 -21
  51. package/dist/expansion-packs/bmad-creator-tools/agents/bmad-the-creator.txt +0 -2008
  52. package/expansion-packs/bmad-creator-tools/README.md +0 -8
  53. package/expansion-packs/bmad-creator-tools/config.yaml +0 -6
  54. package/expansion-packs/bmad-creator-tools/tasks/create-agent.md +0 -200
  55. package/expansion-packs/bmad-creator-tools/tasks/generate-expansion-pack.md +0 -1020
  56. package/expansion-packs/bmad-creator-tools/templates/agent-teams-tmpl.yaml +0 -178
  57. package/expansion-packs/bmad-creator-tools/templates/agent-tmpl.yaml +0 -154
  58. package/expansion-packs/bmad-creator-tools/templates/expansion-pack-plan-tmpl.yaml +0 -120
  59. package/tools/bump-core-version.js +0 -57
@@ -0,0 +1,545 @@
1
+ template:
2
+ id: game-architecture-template-v2
3
+ name: Game Architecture Document
4
+ version: 2.0
5
+ output:
6
+ format: markdown
7
+ filename: "docs/{{game_name}}-game-architecture.md"
8
+ title: "{{game_title}} Game Architecture Document"
9
+
10
+ workflow:
11
+ mode: interactive
12
+
13
+ sections:
14
+ - id: initial-setup
15
+ instruction: |
16
+ This template creates a comprehensive game architecture document specifically for Unity + C# projects. This should provide the technical foundation for all game development stories and epics.
17
+
18
+ If available, review any provided documents: Game Design Document (GDD), Technical Preferences. This architecture should support all game mechanics defined in the GDD.
19
+
20
+ - id: introduction
21
+ title: Introduction
22
+ instruction: Establish the document's purpose and scope for game development
23
+ content: |
24
+ This document outlines the complete technical architecture for {{Game Title}}, a 2D game built with Unity and C#. It serves as the technical foundation for AI-driven game development, ensuring consistency and scalability across all game systems.
25
+
26
+ This architecture is designed to support the gameplay mechanics defined in the Game Design Document while maintaining stable performance and cross-platform compatibility.
27
+ sections:
28
+ - id: change-log
29
+ title: Change Log
30
+ instruction: Track document versions and changes
31
+ type: table
32
+ template: |
33
+ | Date | Version | Description | Author |
34
+ | :--- | :------ | :---------- | :----- |
35
+
36
+ - id: technical-overview
37
+ title: Technical Overview
38
+ instruction: Present all subsections together, then apply `tasks#advanced-elicitation` protocol to the complete section.
39
+ sections:
40
+ - id: architecture-summary
41
+ title: Architecture Summary
42
+ instruction: |
43
+ Provide a comprehensive overview covering:
44
+
45
+ - Game engine choice and configuration
46
+ - Project structure and organization
47
+ - Key systems and their interactions
48
+ - Performance and optimization strategy
49
+ - How this architecture achieves GDD requirements
50
+ - id: platform-targets
51
+ title: Platform Targets
52
+ instruction: Based on GDD requirements, confirm platform support
53
+ template: |
54
+ **Primary Platform:** {{primary_platform}}
55
+ **Secondary Platforms:** {{secondary_platforms}}
56
+ **Minimum Requirements:** {{min_specs}}
57
+ **Target Performance:** Stable frame rate on {{target_device}}
58
+ - id: technology-stack
59
+ title: Technology Stack
60
+ template: |
61
+ **Core Engine:** Unity 2022 LTS or newer
62
+ **Language:** C# 10+
63
+ **Build Tool:** Unity Build Pipeline
64
+ **Package Manager:** Unity Package Manager
65
+ **Testing:** Unity Test Framework (NUnit)
66
+ **Deployment:** {{deployment_platform}}
67
+
68
+ - id: project-structure
69
+ title: Project Structure
70
+ instruction: Define the complete project organization that developers will follow
71
+ sections:
72
+ - id: repository-organization
73
+ title: Repository Organization
74
+ instruction: Design a clear folder structure for game development
75
+ type: code
76
+ language: text
77
+ template: |
78
+ {{game_name}}/
79
+ ├── Assets/
80
+ │ ├── Scenes/ # Game scenes
81
+ │ ├── Scripts/ # C# scripts
82
+ │ ├── Prefabs/ # Reusable game objects
83
+ │ ├── Art/ # Art assets
84
+ │ ├── Audio/ # Audio assets
85
+ │ ├── Data/ # ScriptableObjects and other data
86
+ │ └── Tests/ # Unity Test Framework tests
87
+ ├── Packages/ # Package Manager manifest
88
+ └── ProjectSettings/ # Unity project settings
89
+ - id: module-organization
90
+ title: Module Organization
91
+ instruction: Define how TypeScript modules should be organized
92
+ sections:
93
+ - id: scene-structure
94
+ title: Scene Structure
95
+ type: bullet-list
96
+ template: |
97
+ - Each scene in separate file
98
+ - Scene-specific logic contained in scripts within the scene
99
+ - Use a loading scene for asynchronous loading
100
+ - id: game-object-pattern
101
+ title: Game Object Pattern
102
+ type: bullet-list
103
+ template: |
104
+ - Component-based architecture using MonoBehaviours
105
+ - Reusable game objects as prefabs
106
+ - Data-driven design with ScriptableObjects
107
+ - id: system-architecture
108
+ title: System Architecture
109
+ type: bullet-list
110
+ template: |
111
+ - Singleton managers for global systems (e.g., GameManager, AudioManager)
112
+ - Event-driven communication using UnityEvents or C# events
113
+ - Clear separation of concerns between components
114
+
115
+ - id: core-game-systems
116
+ title: Core Game Systems
117
+ instruction: Detail each major system that needs to be implemented. Each system should be specific enough for developers to create implementation stories.
118
+ sections:
119
+ - id: scene-management
120
+ title: Scene Management System
121
+ template: |
122
+ **Purpose:** Handle game flow and scene transitions
123
+
124
+ **Key Components:**
125
+
126
+ - Asynchronous scene loading and unloading
127
+ - Data passing between scenes using a persistent manager or ScriptableObject
128
+ - Loading screens with progress bars
129
+
130
+ **Implementation Requirements:**
131
+
132
+ - A `SceneLoader` class to manage all scene transitions
133
+ - A loading scene to handle asynchronous loading
134
+ - A `GameManager` to persist between scenes and hold necessary data
135
+
136
+ **Files to Create:**
137
+
138
+ - `Assets/Scripts/Core/SceneLoader.cs`
139
+ - `Assets/Scenes/Loading.unity`
140
+ - id: game-state-management
141
+ title: Game State Management
142
+ template: |
143
+ **Purpose:** Track player progress and game status
144
+
145
+ **State Categories:**
146
+
147
+ - Player progress (levels, unlocks)
148
+ - Game settings (audio, controls)
149
+ - Session data (current level, score)
150
+ - Persistent data (achievements, statistics)
151
+
152
+ **Implementation Requirements:**
153
+
154
+ - A `SaveManager` class to handle saving and loading data to a file
155
+ - Use of `ScriptableObject`s to hold game state data
156
+ - State validation and error recovery
157
+
158
+ **Files to Create:**
159
+
160
+ - `Assets/Scripts/Core/SaveManager.cs`
161
+ - `Assets/Data/ScriptableObjects/GameState.cs`
162
+ - id: asset-management
163
+ title: Asset Management System
164
+ template: |
165
+ **Purpose:** Efficient loading and management of game assets
166
+
167
+ **Asset Categories:**
168
+
169
+ - Sprites and textures
170
+ - Audio clips and music
171
+ - Prefabs and scene files
172
+ - ScriptableObjects
173
+
174
+ **Implementation Requirements:**
175
+
176
+ - Use of Addressables for dynamic asset loading
177
+ - Asset bundles for platform-specific assets
178
+ - Memory management for large assets
179
+
180
+ **Files to Create:**
181
+
182
+ - `Assets/Scripts/Core/AssetManager.cs` (if needed for complex scenarios)
183
+ - id: input-management
184
+ title: Input Management System
185
+ template: |
186
+ **Purpose:** Handle all player input across platforms
187
+
188
+ **Input Types:**
189
+
190
+ - Keyboard controls
191
+ - Mouse/pointer interaction
192
+ - Touch gestures (mobile)
193
+ - Gamepad support
194
+
195
+ **Implementation Requirements:**
196
+
197
+ - Use the new Unity Input System
198
+ - Create Action Maps for different input contexts
199
+ - Use the `PlayerInput` component for easy player input handling
200
+
201
+ **Files to Create:**
202
+
203
+ - `Assets/Settings/InputActions.inputactions`
204
+ - id: game-mechanics-systems
205
+ title: Game Mechanics Systems
206
+ instruction: For each major mechanic defined in the GDD, create a system specification
207
+ repeatable: true
208
+ sections:
209
+ - id: mechanic-system
210
+ title: "{{mechanic_name}} System"
211
+ template: |
212
+ **Purpose:** {{system_purpose}}
213
+
214
+ **Core Functionality:**
215
+
216
+ - {{feature_1}}
217
+ - {{feature_2}}
218
+ - {{feature_3}}
219
+
220
+ **Dependencies:** {{required_systems}}
221
+
222
+ **Performance Considerations:** {{optimization_notes}}
223
+
224
+ **Files to Create:**
225
+
226
+ - `Assets/Scripts/Mechanics/{{SystemName}}.cs`
227
+ - `Assets/Prefabs/{{RelatedObject}}.prefab`
228
+ - id: physics-collision
229
+ title: Physics & Collision System
230
+ template: |
231
+ **Physics Engine:** Unity 2D Physics
232
+
233
+ **Collision Categories:**
234
+
235
+ - Player collision
236
+ - Enemy interactions
237
+ - Environmental objects
238
+ - Collectibles and items
239
+
240
+ **Implementation Requirements:**
241
+
242
+ - Use the Layer Collision Matrix to optimize collision detection
243
+ - Use `Rigidbody2D` for physics-based movement
244
+ - Use `Collider2D` components for collision shapes
245
+
246
+ **Files to Create:**
247
+
248
+ - (No new files, but configure `ProjectSettings/DynamicsManager.asset`)
249
+ - id: audio-system
250
+ title: Audio System
251
+ template: |
252
+ **Audio Requirements:**
253
+
254
+ - Background music with looping
255
+ - Sound effects for actions
256
+ - Audio settings and volume control
257
+ - Mobile audio optimization
258
+
259
+ **Implementation Features:**
260
+
261
+ - An `AudioManager` singleton to play sounds and music
262
+ - Use of `AudioMixer` to control volume levels
263
+ - Object pooling for frequently played sound effects
264
+
265
+ **Files to Create:**
266
+
267
+ - `Assets/Scripts/Core/AudioManager.cs`
268
+ - id: ui-system
269
+ title: UI System
270
+ template: |
271
+ **UI Components:**
272
+
273
+ - HUD elements (score, health, etc.)
274
+ - Menu navigation
275
+ - Modal dialogs
276
+ - Settings screens
277
+
278
+ **Implementation Requirements:**
279
+
280
+ - Use UI Toolkit or UGUI for building user interfaces
281
+ - Create a `UIManager` to manage UI elements
282
+ - Use events to update UI from game logic
283
+
284
+ **Files to Create:**
285
+
286
+ - `Assets/Scripts/UI/UIManager.cs`
287
+ - `Assets/UI/` (folder for UI assets and prefabs)
288
+
289
+ - id: performance-architecture
290
+ title: Performance Architecture
291
+ instruction: Define performance requirements and optimization strategies
292
+ sections:
293
+ - id: performance-targets
294
+ title: Performance Targets
295
+ template: |
296
+ **Frame Rate:** Stable frame rate, 60+ FPS on target platforms
297
+ **Memory Usage:** <{{memory_limit}}MB total
298
+ **Load Times:** <{{initial_load}}s initial, <{{level_load}}s per level
299
+ **Battery Optimization:** Reduced updates when not visible
300
+ - id: optimization-strategies
301
+ title: Optimization Strategies
302
+ sections:
303
+ - id: object-pooling
304
+ title: Object Pooling
305
+ type: bullet-list
306
+ template: |
307
+ - Bullets and projectiles
308
+ - Particle effects
309
+ - Enemy objects
310
+ - UI elements
311
+ - id: asset-optimization
312
+ title: Asset Optimization
313
+ type: bullet-list
314
+ template: |
315
+ - Sprite atlases
316
+ - Audio compression
317
+ - Mipmaps for textures
318
+ - id: rendering-optimization
319
+ title: Rendering Optimization
320
+ type: bullet-list
321
+ template: |
322
+ - Use the 2D Renderer
323
+ - Batching for sprites
324
+ - Culling off-screen objects
325
+ - id: optimization-files
326
+ title: Files to Create
327
+ type: bullet-list
328
+ template: |
329
+ - `Assets/Scripts/Core/ObjectPool.cs`
330
+
331
+ - id: game-configuration
332
+ title: Game Configuration
333
+ instruction: Define all configurable aspects of the game
334
+ sections:
335
+ - id: game-balance-configuration
336
+ title: Game Balance Configuration
337
+ instruction: Based on GDD, define configurable game parameters using ScriptableObjects
338
+ type: code
339
+ language: c#
340
+ template: |
341
+ // Assets/Scripts/Data/GameBalance.cs
342
+ using UnityEngine;
343
+
344
+ [CreateAssetMenu(fileName = "GameBalance", menuName = "Game/Game Balance")]
345
+ public class GameBalance : ScriptableObject
346
+ {
347
+ public PlayerStats playerStats;
348
+ public EnemyStats enemyStats;
349
+ }
350
+
351
+ [System.Serializable]
352
+ public class PlayerStats
353
+ {
354
+ public float speed;
355
+ public int maxHealth;
356
+ }
357
+
358
+ [System.Serializable]
359
+ public class EnemyStats
360
+ {
361
+ public float speed;
362
+ public int maxHealth;
363
+ public int damage;
364
+ }
365
+
366
+ - id: development-guidelines
367
+ title: Development Guidelines
368
+ instruction: Provide coding standards specific to game development
369
+ sections:
370
+ - id: c#-standards
371
+ title: C# Standards
372
+ sections:
373
+ - id: code-style
374
+ title: Code Style
375
+ type: bullet-list
376
+ template: |
377
+ - Follow .NET coding conventions
378
+ - Use namespaces to organize code
379
+ - Write clean, readable, and maintainable code
380
+ - id: unity-best-practices
381
+ title: Unity Best Practices
382
+ sections:
383
+ - id: general-best-practices
384
+ title: General Best Practices
385
+ type: bullet-list
386
+ template: |
387
+ - Use the `[SerializeField]` attribute to expose private fields in the Inspector
388
+ - Avoid using `GameObject.Find()` in `Update()`
389
+ - Cache component references in `Awake()` or `Start()`
390
+ - id: component-design
391
+ title: Component Design
392
+ type: bullet-list
393
+ template: |
394
+ - Follow the Single Responsibility Principle
395
+ - Use events for communication between components
396
+ - Use ScriptableObjects for data
397
+ - id: scene-management-practices
398
+ title: Scene Management
399
+ type: bullet-list
400
+ template: |
401
+ - Use a loading scene for asynchronous loading
402
+ - Keep scenes small and focused
403
+ - id: testing-strategy
404
+ title: Testing Strategy
405
+ sections:
406
+ - id: unit-testing
407
+ title: Unit Testing
408
+ type: bullet-list
409
+ template: |
410
+ - Use the Unity Test Framework (Edit Mode tests)
411
+ - Test C# logic in isolation
412
+ - id: integration-testing
413
+ title: Integration Testing
414
+ type: bullet-list
415
+ template: |
416
+ - Use the Unity Test Framework (Play Mode tests)
417
+ - Test the interaction between components and systems
418
+ - id: test-files
419
+ title: Files to Create
420
+ type: bullet-list
421
+ template: |
422
+ - `Assets/Tests/EditMode/`
423
+ - `Assets/Tests/PlayMode/`
424
+
425
+ - id: deployment-architecture
426
+ title: Deployment Architecture
427
+ instruction: Define how the game will be built and deployed
428
+ sections:
429
+ - id: build-process
430
+ title: Build Process
431
+ sections:
432
+ - id: development-build
433
+ title: Development Build
434
+ type: bullet-list
435
+ template: |
436
+ - Enable "Development Build" in Build Settings
437
+ - Use the Profiler to analyze performance
438
+ - id: production-build
439
+ title: Production Build
440
+ type: bullet-list
441
+ template: |
442
+ - Disable "Development Build"
443
+ - Use IL2CPP for better performance
444
+ - Configure platform-specific settings
445
+ - id: deployment-strategy
446
+ title: Deployment Strategy
447
+ sections:
448
+ - id: platform-deployment
449
+ title: Platform Deployment
450
+ type: bullet-list
451
+ template: |
452
+ - Configure player settings for each target platform
453
+ - Use Unity Cloud Build for automated builds
454
+ - Follow platform-specific guidelines for submission
455
+
456
+ - id: implementation-roadmap
457
+ title: Implementation Roadmap
458
+ instruction: Break down the architecture implementation into phases that align with the GDD development phases
459
+ sections:
460
+ - id: phase-1-foundation
461
+ title: "Phase 1: Foundation ({{duration}})"
462
+ sections:
463
+ - id: phase-1-core
464
+ title: Core Systems
465
+ type: bullet-list
466
+ template: |
467
+ - Project setup and configuration
468
+ - Basic scene management
469
+ - Asset loading pipeline
470
+ - Input handling framework
471
+ - id: phase-1-epics
472
+ title: Story Epics
473
+ type: bullet-list
474
+ template: |
475
+ - "Engine Setup and Configuration"
476
+ - "Basic Scene Management System"
477
+ - "Asset Loading Foundation"
478
+ - id: phase-2-game-systems
479
+ title: "Phase 2: Game Systems ({{duration}})"
480
+ sections:
481
+ - id: phase-2-gameplay
482
+ title: Gameplay Systems
483
+ type: bullet-list
484
+ template: |
485
+ - {{primary_mechanic}} implementation
486
+ - Physics and collision system
487
+ - Game state management
488
+ - UI framework
489
+ - id: phase-2-epics
490
+ title: Story Epics
491
+ type: bullet-list
492
+ template: |
493
+ - "{{primary_mechanic}} System Implementation"
494
+ - "Physics and Collision Framework"
495
+ - "Game State Management System"
496
+ - id: phase-3-content-polish
497
+ title: "Phase 3: Content & Polish ({{duration}})"
498
+ sections:
499
+ - id: phase-3-content
500
+ title: Content Systems
501
+ type: bullet-list
502
+ template: |
503
+ - Level loading and management
504
+ - Audio system integration
505
+ - Performance optimization
506
+ - Final polish and testing
507
+ - id: phase-3-epics
508
+ title: Story Epics
509
+ type: bullet-list
510
+ template: |
511
+ - "Level Management System"
512
+ - "Audio Integration and Optimization"
513
+ - "Performance Optimization and Testing"
514
+
515
+ - id: risk-assessment
516
+ title: Risk Assessment
517
+ instruction: Identify potential technical risks and mitigation strategies
518
+ type: table
519
+ template: |
520
+ | Risk | Probability | Impact | Mitigation Strategy |
521
+ | ---------------------------- | ----------- | ---------- | ------------------- |
522
+ | Performance issues on mobile | {{prob}} | {{impact}} | {{mitigation}} |
523
+ | Asset loading bottlenecks | {{prob}} | {{impact}} | {{mitigation}} |
524
+ | Cross-platform compatibility | {{prob}} | {{impact}} | {{mitigation}} |
525
+
526
+ - id: success-criteria
527
+ title: Success Criteria
528
+ instruction: Define measurable technical success criteria
529
+ sections:
530
+ - id: technical-metrics
531
+ title: Technical Metrics
532
+ type: bullet-list
533
+ template: |
534
+ - All systems implemented per specification
535
+ - Performance targets met consistently
536
+ - Zero critical bugs in core systems
537
+ - Successful deployment across target platforms
538
+ - id: code-quality
539
+ title: Code Quality
540
+ type: bullet-list
541
+ template: |
542
+ - 90%+ test coverage on game logic
543
+ - Zero C# compiler errors or warnings
544
+ - Consistent adherence to coding standards
545
+ - Comprehensive documentation coverage