@bmad/bmad-game-dev-studio 0.1.4

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 (57) hide show
  1. package/.markdownlint-cli2.yaml +35 -0
  2. package/.nvmrc +1 -0
  3. package/.prettierignore +9 -0
  4. package/LICENSE +26 -0
  5. package/README.md +119 -0
  6. package/eslint.config.mjs +152 -0
  7. package/package.json +91 -0
  8. package/prettier.config.mjs +32 -0
  9. package/src/_module-installer/installer.js +110 -0
  10. package/src/_module-installer/platform-specifics/claude-code.js +23 -0
  11. package/src/_module-installer/platform-specifics/windsurf.js +18 -0
  12. package/src/agents/game-architect.agent.yaml +40 -0
  13. package/src/agents/game-designer.agent.yaml +45 -0
  14. package/src/agents/game-dev.agent.yaml +49 -0
  15. package/src/agents/game-qa.agent.yaml +63 -0
  16. package/src/agents/game-scrum-master.agent.yaml +56 -0
  17. package/src/agents/game-solo-dev.agent.yaml +49 -0
  18. package/src/agents/tech-writer/tech-writer.agent.yaml +45 -0
  19. package/src/gametest/qa-index.csv +18 -0
  20. package/src/module-help.csv +26 -0
  21. package/src/module.yaml +65 -0
  22. package/src/teams/default-party.csv +12 -0
  23. package/src/teams/team-gamedev.yaml +29 -0
  24. package/src/workflows/1-preproduction/brainstorm-game/game-brain-methods.csv +26 -0
  25. package/src/workflows/1-preproduction/brainstorm-game/workflow.yaml +62 -0
  26. package/src/workflows/1-preproduction/game-brief/workflow.yaml +67 -0
  27. package/src/workflows/2-design/gdd/game-types.csv +25 -0
  28. package/src/workflows/2-design/gdd/workflow.yaml +101 -0
  29. package/src/workflows/2-design/narrative/workflow.yaml +77 -0
  30. package/src/workflows/3-technical/game-architecture/architecture-patterns.yaml +507 -0
  31. package/src/workflows/3-technical/game-architecture/decision-catalog.yaml +340 -0
  32. package/src/workflows/3-technical/game-architecture/engine-mcps.yaml +270 -0
  33. package/src/workflows/3-technical/game-architecture/pattern-categories.csv +13 -0
  34. package/src/workflows/3-technical/game-architecture/workflow.yaml +101 -0
  35. package/src/workflows/4-production/code-review/instructions.xml +226 -0
  36. package/src/workflows/4-production/code-review/workflow.yaml +64 -0
  37. package/src/workflows/4-production/correct-course/workflow.yaml +65 -0
  38. package/src/workflows/4-production/create-story/instructions.xml +345 -0
  39. package/src/workflows/4-production/create-story/workflow.yaml +61 -0
  40. package/src/workflows/4-production/dev-story/instructions.xml +410 -0
  41. package/src/workflows/4-production/dev-story/workflow.yaml +27 -0
  42. package/src/workflows/4-production/retrospective/workflow.yaml +58 -0
  43. package/src/workflows/4-production/sprint-planning/sprint-status-template.yaml +55 -0
  44. package/src/workflows/4-production/sprint-planning/workflow.yaml +54 -0
  45. package/src/workflows/4-production/sprint-status/workflow.yaml +35 -0
  46. package/src/workflows/document-project/documentation-requirements.csv +12 -0
  47. package/src/workflows/document-project/templates/project-scan-report-schema.json +160 -0
  48. package/src/workflows/document-project/workflow.yaml +30 -0
  49. package/src/workflows/document-project/workflows/deep-dive.yaml +31 -0
  50. package/src/workflows/document-project/workflows/full-scan.yaml +31 -0
  51. package/src/workflows/gametest/automate/workflow.yaml +50 -0
  52. package/src/workflows/gametest/e2e-scaffold/workflow.yaml +145 -0
  53. package/src/workflows/gametest/performance/workflow.yaml +48 -0
  54. package/src/workflows/gametest/playtest-plan/workflow.yaml +59 -0
  55. package/src/workflows/gametest/test-design/workflow.yaml +47 -0
  56. package/src/workflows/gametest/test-framework/workflow.yaml +48 -0
  57. package/src/workflows/gametest/test-review/workflow.yaml +48 -0
@@ -0,0 +1,507 @@
1
+ # Architecture Patterns - Common patterns identified from game design requirements
2
+ # Used during Step 4 (decisions) to match GDD keywords to architectural needs
3
+ #
4
+ # ⚠️ CRITICAL: All version/feature info MUST be verified via WebSearch during workflow
5
+ # This file only provides: triggers, relationships, and pattern identification logic
6
+
7
+ requirement_patterns:
8
+ realtime_multiplayer:
9
+ triggers:
10
+ - "real-time multiplayer"
11
+ - "online multiplayer"
12
+ - "networked gameplay"
13
+ - "PvP"
14
+ - "co-op"
15
+ - "competitive"
16
+ - "synchronous multiplayer"
17
+ decisions_needed:
18
+ - networking_model
19
+ - netcode_solution
20
+ - server_authority
21
+ - state_synchronization
22
+ - lag_compensation
23
+ - matchmaking
24
+ suggested_stack:
25
+ - "Dedicated servers or relay for authoritative gameplay"
26
+ - "Client-side prediction with server reconciliation"
27
+ - "UDP-based transport (ENet, LiteNetLib, or engine-native)"
28
+ - "Matchmaking service (engine-native, PlayFab, or custom)"
29
+
30
+ turn_based_multiplayer:
31
+ triggers:
32
+ - "turn-based"
33
+ - "asynchronous multiplayer"
34
+ - "hotseat"
35
+ - "play-by-mail"
36
+ - "card game"
37
+ - "board game"
38
+ decisions_needed:
39
+ - session_persistence
40
+ - turn_validation
41
+ - game_state_storage
42
+ - player_notification
43
+ - reconnection_handling
44
+ suggested_stack:
45
+ - "REST or WebSocket API for turn submission"
46
+ - "Server-side turn validation and state management"
47
+ - "Database-backed game state (SQLite, PostgreSQL, or cloud)"
48
+ - "Push notifications for turn alerts"
49
+
50
+ physics_simulation:
51
+ triggers:
52
+ - "physics"
53
+ - "rigid body"
54
+ - "collision"
55
+ - "ragdoll"
56
+ - "destruction"
57
+ - "vehicle simulation"
58
+ - "fluid simulation"
59
+ decisions_needed:
60
+ - physics_engine
61
+ - simulation_fidelity
62
+ - determinism_requirements
63
+ - collision_layer_strategy
64
+ - physics_tick_rate
65
+ suggested_stack:
66
+ - "Engine-native physics (PhysX, Jolt, Godot Physics)"
67
+ - "Fixed timestep simulation decoupled from rendering"
68
+ - "Collision layer matrix for performance"
69
+ - "Physics materials system for surface interactions"
70
+
71
+ procedural_generation:
72
+ triggers:
73
+ - "procedural"
74
+ - "randomly generated"
75
+ - "roguelike"
76
+ - "roguelite"
77
+ - "infinite terrain"
78
+ - "wave function collapse"
79
+ - "dungeon generation"
80
+ - "world generation"
81
+ decisions_needed:
82
+ - generation_algorithm
83
+ - seed_management
84
+ - chunk_streaming
85
+ - content_validation
86
+ - generation_pipeline
87
+ suggested_stack:
88
+ - "Seeded PRNG for reproducibility"
89
+ - "Chunk-based or room-based generation depending on scope"
90
+ - "Constraint-based validation passes"
91
+ - "Async generation with loading strategies"
92
+
93
+ rpg_systems:
94
+ triggers:
95
+ - "RPG"
96
+ - "character stats"
97
+ - "inventory"
98
+ - "skill tree"
99
+ - "leveling"
100
+ - "experience points"
101
+ - "equipment"
102
+ - "loot"
103
+ - "crafting"
104
+ decisions_needed:
105
+ - stat_system_design
106
+ - inventory_architecture
107
+ - progression_model
108
+ - save_data_schema
109
+ - effect_and_buff_system
110
+ suggested_stack:
111
+ - "Data-driven stat and item definitions (JSON, YAML, or ScriptableObjects)"
112
+ - "Component or ECS-based character system"
113
+ - "Serializable save system with versioning"
114
+ - "Observer pattern for stat change propagation"
115
+
116
+ platformer_mechanics:
117
+ triggers:
118
+ - "platformer"
119
+ - "2D physics"
120
+ - "jumping"
121
+ - "side-scrolling"
122
+ - "metroidvania"
123
+ - "precision movement"
124
+ decisions_needed:
125
+ - character_controller_type
126
+ - camera_system
127
+ - level_design_tools
128
+ - animation_system
129
+ - input_buffering
130
+ suggested_stack:
131
+ - "Custom character controller (not physics-driven rigidbody)"
132
+ - "Coyote time and input buffering for feel"
133
+ - "Tilemap or modular level construction"
134
+ - "State machine for character states"
135
+
136
+ strategy_rts:
137
+ triggers:
138
+ - "strategy"
139
+ - "RTS"
140
+ - "4X"
141
+ - "base building"
142
+ - "unit management"
143
+ - "resource management"
144
+ - "fog of war"
145
+ - "tower defense"
146
+ decisions_needed:
147
+ - pathfinding_solution
148
+ - unit_selection_system
149
+ - ai_architecture
150
+ - fog_of_war_approach
151
+ - resource_economy_model
152
+ suggested_stack:
153
+ - "A* or flow field pathfinding depending on unit count"
154
+ - "Spatial partitioning for unit queries (quadtree, spatial hash)"
155
+ - "Command pattern for unit orders"
156
+ - "ECS or data-oriented design for large unit counts"
157
+
158
+ puzzle_mechanics:
159
+ triggers:
160
+ - "puzzle"
161
+ - "logic game"
162
+ - "match-3"
163
+ - "word game"
164
+ - "brain teaser"
165
+ - "sokoban"
166
+ decisions_needed:
167
+ - puzzle_state_representation
168
+ - undo_redo_system
169
+ - hint_system
170
+ - difficulty_progression
171
+ - solution_validation
172
+ suggested_stack:
173
+ - "Immutable state snapshots for undo/redo"
174
+ - "Rule engine for move validation"
175
+ - "Data-driven puzzle definitions"
176
+ - "Analytics-informed difficulty tuning"
177
+
178
+ open_world:
179
+ triggers:
180
+ - "open world"
181
+ - "sandbox"
182
+ - "seamless world"
183
+ - "large map"
184
+ - "exploration"
185
+ - "survival"
186
+ - "crafting"
187
+ decisions_needed:
188
+ - world_streaming
189
+ - lod_strategy
190
+ - persistence_model
191
+ - ai_budget_management
192
+ - day_night_cycle
193
+ suggested_stack:
194
+ - "Chunk-based world streaming with async loading"
195
+ - "Multi-level LOD for terrain, objects, and AI"
196
+ - "Zone-based save system with dirty tracking"
197
+ - "Spatial partitioning for active entity management"
198
+
199
+ narrative_driven:
200
+ triggers:
201
+ - "story"
202
+ - "dialogue"
203
+ - "branching narrative"
204
+ - "visual novel"
205
+ - "quest system"
206
+ - "cutscenes"
207
+ - "choices matter"
208
+ decisions_needed:
209
+ - dialogue_system
210
+ - narrative_scripting_tool
211
+ - quest_tracking
212
+ - branching_logic
213
+ - localization_pipeline
214
+ suggested_stack:
215
+ - "Dialogue graph tool (Yarn Spinner, Ink, or custom)"
216
+ - "Event-driven quest state machine"
217
+ - "Flag/variable system for world state tracking"
218
+ - "Localization table with string keys"
219
+
220
+ mobile_casual:
221
+ triggers:
222
+ - "mobile"
223
+ - "casual"
224
+ - "free-to-play"
225
+ - "F2P"
226
+ - "hyper-casual"
227
+ - "idle game"
228
+ - "touch controls"
229
+ decisions_needed:
230
+ - monetization_model
231
+ - session_design
232
+ - save_and_sync
233
+ - performance_budget
234
+ - input_abstraction
235
+ suggested_stack:
236
+ - "Lightweight engine or framework (Unity Mobile, Godot, or custom)"
237
+ - "Cloud save with offline-first design"
238
+ - "Ad mediation SDK and IAP integration"
239
+ - "Aggressive memory and draw call budgeting"
240
+
241
+ vr_xr:
242
+ triggers:
243
+ - "VR"
244
+ - "virtual reality"
245
+ - "AR"
246
+ - "augmented reality"
247
+ - "XR"
248
+ - "mixed reality"
249
+ - "motion controls"
250
+ - "room-scale"
251
+ decisions_needed:
252
+ - xr_runtime
253
+ - interaction_system
254
+ - locomotion_method
255
+ - comfort_settings
256
+ - performance_target
257
+ suggested_stack:
258
+ - "OpenXR for cross-platform headset support"
259
+ - "Engine XR toolkit (XR Interaction Toolkit, XR Tools)"
260
+ - "Fixed foveated rendering and LOD for performance"
261
+ - "Comfort options (vignette, snap turn, teleport)"
262
+
263
+ fighting_action:
264
+ triggers:
265
+ - "fighting game"
266
+ - "action combat"
267
+ - "combo system"
268
+ - "hitbox"
269
+ - "frame data"
270
+ - "hack and slash"
271
+ - "beat-em-up"
272
+ decisions_needed:
273
+ - combat_system_architecture
274
+ - hitbox_hurtbox_system
275
+ - animation_canceling
276
+ - frame_data_model
277
+ - input_handling
278
+ suggested_stack:
279
+ - "Frame-based combat state machine"
280
+ - "Data-driven hitbox/hurtbox definitions"
281
+ - "Input buffer with command parsing"
282
+ - "Deterministic simulation for rollback netcode"
283
+
284
+ racing_vehicle:
285
+ triggers:
286
+ - "racing"
287
+ - "driving"
288
+ - "vehicle physics"
289
+ - "kart"
290
+ - "flight sim"
291
+ - "space sim"
292
+ decisions_needed:
293
+ - vehicle_physics_model
294
+ - track_design_tools
295
+ - camera_system
296
+ - ai_racing_line
297
+ - replay_system
298
+ suggested_stack:
299
+ - "Custom vehicle physics or engine-provided vehicle controller"
300
+ - "Spline-based track and AI path definition"
301
+ - "Ghost replay via input or transform recording"
302
+ - "Multiple camera modes (chase, cockpit, replay)"
303
+
304
+ # Quality attribute patterns
305
+ quality_attributes:
306
+ high_framerate:
307
+ triggers:
308
+ - "60 FPS"
309
+ - "120 FPS"
310
+ - "low latency"
311
+ - "performance critical"
312
+ - "competitive"
313
+ - "VR"
314
+ architectural_needs:
315
+ - frame_budget_allocation
316
+ - profiling_pipeline
317
+ - object_pooling
318
+ - batching_strategy
319
+ - gc_pressure_management
320
+
321
+ cross_platform:
322
+ triggers:
323
+ - "cross-platform"
324
+ - "PC and console"
325
+ - "mobile and desktop"
326
+ - "multi-platform"
327
+ - "Nintendo Switch"
328
+ - "Steam Deck"
329
+ architectural_needs:
330
+ - input_abstraction_layer
331
+ - resolution_scaling
332
+ - platform_capability_detection
333
+ - build_pipeline_per_platform
334
+ - platform_specific_apis
335
+
336
+ scalable_multiplayer:
337
+ triggers:
338
+ - "MMO"
339
+ - "hundreds of players"
340
+ - "massively multiplayer"
341
+ - "persistent world"
342
+ - "server scaling"
343
+ architectural_needs:
344
+ - server_fleet_management
345
+ - interest_management
346
+ - database_sharding
347
+ - zone_instancing
348
+ - load_balancing
349
+
350
+ mod_support:
351
+ triggers:
352
+ - "modding"
353
+ - "user-generated content"
354
+ - "UGC"
355
+ - "mod support"
356
+ - "workshop"
357
+ - "custom content"
358
+ architectural_needs:
359
+ - data_driven_architecture
360
+ - asset_loading_abstraction
361
+ - scripting_api
362
+ - sandboxed_execution
363
+ - content_validation
364
+
365
+ accessibility:
366
+ triggers:
367
+ - "accessibility"
368
+ - "colorblind"
369
+ - "subtitles"
370
+ - "remappable controls"
371
+ - "difficulty options"
372
+ - "assist mode"
373
+ architectural_needs:
374
+ - input_remapping_system
375
+ - text_scaling_and_narration
376
+ - color_palette_alternatives
377
+ - difficulty_modifier_system
378
+ - settings_persistence
379
+
380
+ # Game service integration patterns
381
+ integration_requirements:
382
+ player_services:
383
+ common_choices:
384
+ - "Steam API - PC standard (achievements, leaderboards, matchmaking)"
385
+ - "PlayFab - cross-platform backend services"
386
+ - "Epic Online Services - free cross-platform (auth, lobbies, voice)"
387
+ - "GameSparks or AccelByte - full-featured game backend"
388
+ - "Engine-native (Unity Gaming Services, Unreal Online Subsystem)"
389
+ considerations:
390
+ - platform_requirements
391
+ - cross_platform_needs
392
+ - cost_at_scale
393
+ - feature_completeness
394
+
395
+ monetization:
396
+ common_choices:
397
+ - "Steam IAP - PC purchases and DLC"
398
+ - "Platform stores - console-mandated (PSN, Xbox, Nintendo)"
399
+ - "Unity IAP or Godot IAP plugins - mobile"
400
+ - "Custom storefront - web-based games"
401
+ considerations:
402
+ - platform_revenue_share
403
+ - regional_pricing
404
+ - refund_policies
405
+ - receipt_validation
406
+
407
+ analytics_telemetry:
408
+ common_choices:
409
+ - "Unity Analytics or Unreal Insights - engine-native"
410
+ - "GameAnalytics - free tier, game-focused"
411
+ - "Amplitude or Mixpanel - product analytics"
412
+ - "Custom telemetry with time-series database"
413
+ considerations:
414
+ - privacy_compliance
415
+ - data_granularity
416
+ - real_time_vs_batch
417
+ - cost_per_event
418
+
419
+ voice_chat:
420
+ common_choices:
421
+ - "Vivox - industry standard (Unity/Unreal integration)"
422
+ - "Discord SDK - community-focused"
423
+ - "Photon Voice - Photon ecosystem"
424
+ - "Epic Online Services voice"
425
+ considerations:
426
+ - platform_compatibility
427
+ - spatial_audio_support
428
+ - moderation_tools
429
+ - bandwidth_overhead
430
+
431
+ cloud_saves:
432
+ common_choices:
433
+ - "Steam Cloud - PC standard"
434
+ - "Platform cloud (PSN, Xbox, iCloud)"
435
+ - "PlayFab or custom backend - cross-platform"
436
+ - "Engine services (Unity Cloud Save)"
437
+ considerations:
438
+ - conflict_resolution
439
+ - save_size_limits
440
+ - offline_support
441
+ - migration_between_versions
442
+
443
+ anti_cheat:
444
+ common_choices:
445
+ - "Easy Anti-Cheat - widely adopted, free for some engines"
446
+ - "BattlEye - AAA standard"
447
+ - "Custom server authority - indie/small scale"
448
+ - "VAC - Steam-integrated"
449
+ considerations:
450
+ - server_authority_level
451
+ - client_trust_model
452
+ - performance_impact
453
+ - platform_support
454
+
455
+ # Decision heuristics
456
+ decision_rules:
457
+ engine_selection:
458
+ if_requirements_include:
459
+ - 3d_high_fidelity: "Unreal Engine"
460
+ - 2d_focused: "Godot or Unity"
461
+ - cross_platform_mobile: "Unity or Godot"
462
+ - open_source_priority: "Godot"
463
+ - aaa_pipeline: "Unreal Engine"
464
+ - rapid_prototype: "Godot"
465
+ - web_browser_target: "Godot (HTML5), Phaser, or PlayCanvas"
466
+ - vr_xr: "Unity (XR Toolkit) or Unreal (OpenXR)"
467
+
468
+ networking_model:
469
+ if_requirements_include:
470
+ - competitive_pvp: "Dedicated servers with rollback or server reconciliation"
471
+ - cooperative_pve: "Host-migration capable peer-to-peer or listen servers"
472
+ - turn_based: "Client-server REST/WebSocket with authoritative state"
473
+ - mmo_scale: "Dedicated server fleet with spatial partitioning"
474
+ - local_multiplayer: "Shared-screen input splitting (no networking)"
475
+
476
+ physics_solution:
477
+ if_requirements_include:
478
+ - standard_3d: "Engine-native physics (PhysX, Jolt, Godot 3D)"
479
+ - deterministic_required: "Custom fixed-point or deterministic physics library"
480
+ - 2d_platformer: "Custom character controller with raycasts"
481
+ - vehicle_sim: "Specialized vehicle physics (engine-provided or custom)"
482
+ - destruction: "Engine destructibles or Chaos (Unreal) / custom solution"
483
+
484
+ audio_solution:
485
+ if_requirements_include:
486
+ - simple_sfx: "Engine-native audio system"
487
+ - adaptive_music: "FMOD or Wwise middleware"
488
+ - spatial_3d_audio: "Engine spatial audio or middleware (Wwise Spatial)"
489
+ - large_sound_library: "FMOD or Wwise for memory management and streaming"
490
+ - procedural_audio: "Custom DSP or middleware with scripting"
491
+
492
+ ai_approach:
493
+ if_requirements_include:
494
+ - simple_enemies: "Finite state machines"
495
+ - complex_behaviors: "Behavior trees"
496
+ - emergent_ai: "Utility AI or GOAP (Goal-Oriented Action Planning)"
497
+ - large_scale_rts: "Hierarchical AI with strategic and tactical layers"
498
+ - companion_npcs: "Behavior trees with context awareness"
499
+ - open_world_npcs: "Scheduler-based AI with daily routines"
500
+
501
+ save_system:
502
+ if_requirements_include:
503
+ - simple_progress: "Key-value storage (PlayerPrefs, config files)"
504
+ - complex_world_state: "Serialized scene graph with versioned schema"
505
+ - cloud_sync: "Platform cloud saves with local fallback"
506
+ - roguelike_runs: "Run state snapshot with permadeath logic"
507
+ - sandbox_world: "Chunk-based world serialization"