ma-agents 3.18.0-beta.2 → 3.18.0

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 (168) hide show
  1. package/README.md +2 -2
  2. package/bin/cli.js +29 -32
  3. package/docs/architecture.md +2 -2
  4. package/lib/bmad-cache/cache-manifest.json +0 -12
  5. package/lib/bmad-extension-plugin/.claude-plugin/marketplace.json +1 -1
  6. package/lib/bmad.js +33 -34
  7. package/package.json +1 -1
  8. package/scripts/build-bmad-cache.js +18 -9
  9. package/lib/bmad-cache/gds/.claude-plugin/marketplace.json +0 -56
  10. package/lib/bmad-cache/gds/.markdownlint-cli2.yaml +0 -35
  11. package/lib/bmad-cache/gds/.nvmrc +0 -1
  12. package/lib/bmad-cache/gds/.prettierignore +0 -9
  13. package/lib/bmad-cache/gds/CNAME +0 -1
  14. package/lib/bmad-cache/gds/LICENSE +0 -26
  15. package/lib/bmad-cache/gds/README.md +0 -134
  16. package/lib/bmad-cache/gds/_git_preserved/HEAD +0 -1
  17. package/lib/bmad-cache/gds/_git_preserved/config +0 -13
  18. package/lib/bmad-cache/gds/_git_preserved/description +0 -1
  19. package/lib/bmad-cache/gds/_git_preserved/hooks/applypatch-msg.sample +0 -15
  20. package/lib/bmad-cache/gds/_git_preserved/hooks/commit-msg.sample +0 -74
  21. package/lib/bmad-cache/gds/_git_preserved/hooks/fsmonitor-watchman.sample +0 -168
  22. package/lib/bmad-cache/gds/_git_preserved/hooks/post-update.sample +0 -8
  23. package/lib/bmad-cache/gds/_git_preserved/hooks/pre-applypatch.sample +0 -14
  24. package/lib/bmad-cache/gds/_git_preserved/hooks/pre-commit.sample +0 -49
  25. package/lib/bmad-cache/gds/_git_preserved/hooks/pre-merge-commit.sample +0 -13
  26. package/lib/bmad-cache/gds/_git_preserved/hooks/pre-push.sample +0 -53
  27. package/lib/bmad-cache/gds/_git_preserved/hooks/pre-rebase.sample +0 -169
  28. package/lib/bmad-cache/gds/_git_preserved/hooks/pre-receive.sample +0 -24
  29. package/lib/bmad-cache/gds/_git_preserved/hooks/prepare-commit-msg.sample +0 -42
  30. package/lib/bmad-cache/gds/_git_preserved/hooks/push-to-checkout.sample +0 -78
  31. package/lib/bmad-cache/gds/_git_preserved/hooks/sendemail-validate.sample +0 -77
  32. package/lib/bmad-cache/gds/_git_preserved/hooks/update.sample +0 -128
  33. package/lib/bmad-cache/gds/_git_preserved/index +0 -0
  34. package/lib/bmad-cache/gds/_git_preserved/info/exclude +0 -6
  35. package/lib/bmad-cache/gds/_git_preserved/objects/pack/pack-dcb7c556d9bb6b6b70d2301e094eaac6d7300552.idx +0 -0
  36. package/lib/bmad-cache/gds/_git_preserved/objects/pack/pack-dcb7c556d9bb6b6b70d2301e094eaac6d7300552.pack +0 -0
  37. package/lib/bmad-cache/gds/_git_preserved/objects/pack/pack-dcb7c556d9bb6b6b70d2301e094eaac6d7300552.rev +0 -0
  38. package/lib/bmad-cache/gds/_git_preserved/packed-refs +0 -2
  39. package/lib/bmad-cache/gds/_git_preserved/refs/heads/main +0 -1
  40. package/lib/bmad-cache/gds/_git_preserved/shallow +0 -1
  41. package/lib/bmad-cache/gds/eslint.config.mjs +0 -141
  42. package/lib/bmad-cache/gds/package.json +0 -91
  43. package/lib/bmad-cache/gds/prettier.config.mjs +0 -32
  44. package/lib/bmad-cache/gds/src/agents/gds-agent-game-architect/customize.toml +0 -57
  45. package/lib/bmad-cache/gds/src/agents/gds-agent-game-designer/customize.toml +0 -59
  46. package/lib/bmad-cache/gds/src/agents/gds-agent-game-dev/customize.toml +0 -129
  47. package/lib/bmad-cache/gds/src/agents/gds-agent-game-dev/gametest/qa-index.csv +0 -18
  48. package/lib/bmad-cache/gds/src/agents/gds-agent-game-solo-dev/customize.toml +0 -55
  49. package/lib/bmad-cache/gds/src/agents/gds-agent-tech-writer/customize.toml +0 -65
  50. package/lib/bmad-cache/gds/src/module-help.csv +0 -30
  51. package/lib/bmad-cache/gds/src/module.yaml +0 -113
  52. package/lib/bmad-cache/gds/src/workflows/1-preproduction/gds-brainstorm-game/customize.toml +0 -41
  53. package/lib/bmad-cache/gds/src/workflows/1-preproduction/gds-brainstorm-game/game-brain-methods.csv +0 -26
  54. package/lib/bmad-cache/gds/src/workflows/1-preproduction/gds-create-game-brief/customize.toml +0 -116
  55. package/lib/bmad-cache/gds/src/workflows/1-preproduction/research/gds-domain-research/customize.toml +0 -41
  56. package/lib/bmad-cache/gds/src/workflows/2-design/gds-create-narrative/customize.toml +0 -41
  57. package/lib/bmad-cache/gds/src/workflows/2-design/gds-gdd/assets/game-types.csv +0 -25
  58. package/lib/bmad-cache/gds/src/workflows/2-design/gds-gdd/assets/genre-complexity.csv +0 -26
  59. package/lib/bmad-cache/gds/src/workflows/2-design/gds-gdd/assets/validation-report-template.html +0 -190
  60. package/lib/bmad-cache/gds/src/workflows/2-design/gds-gdd/customize.toml +0 -99
  61. package/lib/bmad-cache/gds/src/workflows/2-design/gds-gdd/scripts/render-validation-html.py +0 -290
  62. package/lib/bmad-cache/gds/src/workflows/2-design/gds-prd/assets/validation-report-template.html +0 -190
  63. package/lib/bmad-cache/gds/src/workflows/2-design/gds-prd/customize.toml +0 -84
  64. package/lib/bmad-cache/gds/src/workflows/2-design/gds-ux/assets/validation-report-template.html +0 -319
  65. package/lib/bmad-cache/gds/src/workflows/2-design/gds-ux/customize.toml +0 -101
  66. package/lib/bmad-cache/gds/src/workflows/3-technical/gds-check-implementation-readiness/customize.toml +0 -41
  67. package/lib/bmad-cache/gds/src/workflows/3-technical/gds-create-epics-and-stories/customize.toml +0 -41
  68. package/lib/bmad-cache/gds/src/workflows/3-technical/gds-game-architecture/architecture-patterns.yaml +0 -508
  69. package/lib/bmad-cache/gds/src/workflows/3-technical/gds-game-architecture/customize.toml +0 -41
  70. package/lib/bmad-cache/gds/src/workflows/3-technical/gds-game-architecture/decision-catalog.yaml +0 -428
  71. package/lib/bmad-cache/gds/src/workflows/3-technical/gds-game-architecture/engine-mcps.yaml +0 -392
  72. package/lib/bmad-cache/gds/src/workflows/3-technical/gds-game-architecture/pattern-categories.csv +0 -13
  73. package/lib/bmad-cache/gds/src/workflows/3-technical/gds-generate-project-context/customize.toml +0 -41
  74. package/lib/bmad-cache/gds/src/workflows/4-production/gds-code-review/customize.toml +0 -41
  75. package/lib/bmad-cache/gds/src/workflows/4-production/gds-correct-course/customize.toml +0 -41
  76. package/lib/bmad-cache/gds/src/workflows/4-production/gds-create-story/customize.toml +0 -41
  77. package/lib/bmad-cache/gds/src/workflows/4-production/gds-dev-story/customize.toml +0 -41
  78. package/lib/bmad-cache/gds/src/workflows/4-production/gds-investigate/customize.toml +0 -62
  79. package/lib/bmad-cache/gds/src/workflows/4-production/gds-retrospective/customize.toml +0 -41
  80. package/lib/bmad-cache/gds/src/workflows/4-production/gds-sprint-planning/customize.toml +0 -41
  81. package/lib/bmad-cache/gds/src/workflows/4-production/gds-sprint-planning/sprint-status-template.yaml +0 -55
  82. package/lib/bmad-cache/gds/src/workflows/4-production/gds-sprint-status/customize.toml +0 -41
  83. package/lib/bmad-cache/gds/src/workflows/gametest/gds-e2e-scaffold/customize.toml +0 -41
  84. package/lib/bmad-cache/gds/src/workflows/gametest/gds-performance-test/customize.toml +0 -41
  85. package/lib/bmad-cache/gds/src/workflows/gametest/gds-playtest-plan/customize.toml +0 -41
  86. package/lib/bmad-cache/gds/src/workflows/gametest/gds-test-automate/customize.toml +0 -41
  87. package/lib/bmad-cache/gds/src/workflows/gametest/gds-test-design/customize.toml +0 -41
  88. package/lib/bmad-cache/gds/src/workflows/gametest/gds-test-framework/customize.toml +0 -41
  89. package/lib/bmad-cache/gds/src/workflows/gametest/gds-test-review/customize.toml +0 -41
  90. package/lib/bmad-cache/gds/src/workflows/gds-document-project/customize.toml +0 -41
  91. package/lib/bmad-cache/gds/src/workflows/gds-document-project/documentation-requirements.csv +0 -12
  92. package/lib/bmad-cache/gds/src/workflows/gds-document-project/templates/project-scan-report-schema.json +0 -160
  93. package/lib/bmad-cache/gds/src/workflows/gds-quick-flow/gds-quick-dev/customize.toml +0 -41
  94. package/lib/bmad-cache/gds/tools/build-docs.mjs +0 -450
  95. package/lib/bmad-cache/gds/website/astro.config.mjs +0 -142
  96. package/lib/bmad-cache/gds/website/public/favicon.ico +0 -0
  97. package/lib/bmad-cache/gds/website/public/img/bmad-dark.png +0 -0
  98. package/lib/bmad-cache/gds/website/public/img/bmad-light.png +0 -0
  99. package/lib/bmad-cache/gds/website/src/components/Banner.astro +0 -71
  100. package/lib/bmad-cache/gds/website/src/components/Header.astro +0 -94
  101. package/lib/bmad-cache/gds/website/src/components/MobileMenuFooter.astro +0 -33
  102. package/lib/bmad-cache/gds/website/src/content/config.ts +0 -6
  103. package/lib/bmad-cache/gds/website/src/content/docs +0 -1
  104. package/lib/bmad-cache/gds/website/src/lib/site-url.mjs +0 -25
  105. package/lib/bmad-cache/gds/website/src/rehype-base-paths.js +0 -88
  106. package/lib/bmad-cache/gds/website/src/rehype-markdown-links.js +0 -117
  107. package/lib/bmad-cache/gds/website/src/styles/custom.css +0 -503
  108. package/lib/bmad-cache/wds/.claude-plugin/marketplace.json +0 -35
  109. package/lib/bmad-cache/wds/.markdownlint-cli2.yaml +0 -38
  110. package/lib/bmad-cache/wds/.nvmrc +0 -1
  111. package/lib/bmad-cache/wds/.prettierignore +0 -9
  112. package/lib/bmad-cache/wds/LICENSE +0 -27
  113. package/lib/bmad-cache/wds/README.md +0 -139
  114. package/lib/bmad-cache/wds/_git_preserved/HEAD +0 -1
  115. package/lib/bmad-cache/wds/_git_preserved/config +0 -13
  116. package/lib/bmad-cache/wds/_git_preserved/description +0 -1
  117. package/lib/bmad-cache/wds/_git_preserved/hooks/applypatch-msg.sample +0 -15
  118. package/lib/bmad-cache/wds/_git_preserved/hooks/commit-msg.sample +0 -74
  119. package/lib/bmad-cache/wds/_git_preserved/hooks/fsmonitor-watchman.sample +0 -168
  120. package/lib/bmad-cache/wds/_git_preserved/hooks/post-update.sample +0 -8
  121. package/lib/bmad-cache/wds/_git_preserved/hooks/pre-applypatch.sample +0 -14
  122. package/lib/bmad-cache/wds/_git_preserved/hooks/pre-commit.sample +0 -49
  123. package/lib/bmad-cache/wds/_git_preserved/hooks/pre-merge-commit.sample +0 -13
  124. package/lib/bmad-cache/wds/_git_preserved/hooks/pre-push.sample +0 -53
  125. package/lib/bmad-cache/wds/_git_preserved/hooks/pre-rebase.sample +0 -169
  126. package/lib/bmad-cache/wds/_git_preserved/hooks/pre-receive.sample +0 -24
  127. package/lib/bmad-cache/wds/_git_preserved/hooks/prepare-commit-msg.sample +0 -42
  128. package/lib/bmad-cache/wds/_git_preserved/hooks/push-to-checkout.sample +0 -78
  129. package/lib/bmad-cache/wds/_git_preserved/hooks/sendemail-validate.sample +0 -77
  130. package/lib/bmad-cache/wds/_git_preserved/hooks/update.sample +0 -128
  131. package/lib/bmad-cache/wds/_git_preserved/index +0 -0
  132. package/lib/bmad-cache/wds/_git_preserved/info/exclude +0 -6
  133. package/lib/bmad-cache/wds/_git_preserved/objects/pack/pack-656c3d8d5426e73043b6a7f45eedaab74e3c419e.idx +0 -0
  134. package/lib/bmad-cache/wds/_git_preserved/objects/pack/pack-656c3d8d5426e73043b6a7f45eedaab74e3c419e.pack +0 -0
  135. package/lib/bmad-cache/wds/_git_preserved/objects/pack/pack-656c3d8d5426e73043b6a7f45eedaab74e3c419e.rev +0 -0
  136. package/lib/bmad-cache/wds/_git_preserved/packed-refs +0 -2
  137. package/lib/bmad-cache/wds/_git_preserved/refs/heads/main +0 -1
  138. package/lib/bmad-cache/wds/_git_preserved/refs/tags/v0.4.3 +0 -1
  139. package/lib/bmad-cache/wds/_git_preserved/shallow +0 -1
  140. package/lib/bmad-cache/wds/eslint.config.mjs +0 -152
  141. package/lib/bmad-cache/wds/package.json +0 -82
  142. package/lib/bmad-cache/wds/prettier.config.mjs +0 -32
  143. package/lib/bmad-cache/wds/src/agents/wds-agent-freya-ux/customize.toml +0 -80
  144. package/lib/bmad-cache/wds/src/agents/wds-agent-mimir-builder/customize.toml +0 -52
  145. package/lib/bmad-cache/wds/src/agents/wds-agent-saga-analyst/customize.toml +0 -70
  146. package/lib/bmad-cache/wds/src/module-help.csv +0 -19
  147. package/lib/bmad-cache/wds/src/module.yaml +0 -173
  148. package/lib/bmad-cache/wds/src/scripts/README.md +0 -155
  149. package/lib/bmad-cache/wds/src/scripts/wds-add-object.js +0 -202
  150. package/lib/bmad-cache/wds/src/scripts/wds-add-spacing.js +0 -158
  151. package/lib/bmad-cache/wds/src/scripts/wds-init-page.js +0 -229
  152. package/lib/bmad-cache/wds/src/scripts/wds-init-scenario.js +0 -120
  153. package/lib/bmad-cache/wds/src/scripts/wds-nav.js +0 -201
  154. package/lib/bmad-cache/wds/src/scripts/wds-validate.js +0 -301
  155. package/lib/bmad-cache/wds/src/workflows/wds-0-project-setup/resources/wds-1-project-brief/templates/platform-requirements.template.yaml +0 -69
  156. package/lib/bmad-cache/wds/src/workflows/wds-0-project-setup/resources/wds-7-design-system/templates/catalog.template.html +0 -363
  157. package/lib/bmad-cache/wds/src/workflows/wds-1-project-brief/templates/platform-requirements.template.yaml +0 -69
  158. package/lib/bmad-cache/wds/src/workflows/wds-3-scenarios/workflow.xml +0 -450
  159. package/lib/bmad-cache/wds/src/workflows/wds-4-ux-design/templates/design-delivery.template.yaml +0 -104
  160. package/lib/bmad-cache/wds/src/workflows/wds-4-ux-design/templates/test-scenario.template.yaml +0 -192
  161. package/lib/bmad-cache/wds/src/workflows/wds-4-ux-design/workflow-specify.xml +0 -387
  162. package/lib/bmad-cache/wds/src/workflows/wds-5-agentic-development/templates/components/dev-mode.css +0 -164
  163. package/lib/bmad-cache/wds/src/workflows/wds-5-agentic-development/templates/components/dev-mode.html +0 -18
  164. package/lib/bmad-cache/wds/src/workflows/wds-5-agentic-development/templates/components/dev-mode.js +0 -430
  165. package/lib/bmad-cache/wds/src/workflows/wds-5-agentic-development/templates/demo-data-template.json +0 -63
  166. package/lib/bmad-cache/wds/src/workflows/wds-5-agentic-development/templates/page-template.html +0 -465
  167. package/lib/bmad-cache/wds/src/workflows/wds-5-agentic-development/templates/work-file-template.yaml +0 -264
  168. package/lib/bmad-cache/wds/src/workflows/wds-7-design-system/templates/catalog.template.html +0 -363
@@ -1,428 +0,0 @@
1
- # Decision Catalog - Composability knowledge for game architectural decisions
2
- # This provides RELATIONSHIPS and WORKFLOW LOGIC, not generic tech knowledge
3
- #
4
- # ⚠️ CRITICAL: All version/feature info MUST be verified via WebSearch during workflow
5
- # This file only provides: triggers, relationships (pairs_with), and opinionated stacks
6
-
7
- decision_categories:
8
- game_engine:
9
- triggers: ["engine", "framework", "game framework", "renderer", "runtime"]
10
- importance: "critical"
11
- affects: "all epics"
12
- options:
13
- unity:
14
- pairs_with: ["C#", "URP", "HDRP", "Unity Input System", "Addressables", "Unity Gaming Services"]
15
- unreal:
16
- pairs_with: ["C++", "Blueprints", "Nanite", "Lumen", "Enhanced Input", "Unreal Online Subsystem"]
17
- godot:
18
- pairs_with: ["GDScript", "C#", "GDExtension", "Godot Physics", "GodotSteam"]
19
- phaser:
20
- pairs_with: ["JavaScript", "TypeScript", "Matter.js", "Arcade Physics"]
21
- roblox:
22
- pairs_with:
23
- [
24
- "Luau",
25
- "DataStoreService",
26
- "MemoryStoreService",
27
- "RemoteEvents",
28
- "TweenService",
29
- "UserInputService",
30
- "ContextActionService",
31
- "Rojo",
32
- "Wally",
33
- ]
34
- bevy:
35
- pairs_with: ["Rust", "ECS", "wgpu"]
36
- monogame:
37
- pairs_with: ["C#", "FNA", "FMOD"]
38
-
39
- rendering_pipeline:
40
- triggers: ["graphics", "rendering", "shaders", "visual style", "art style", "2D", "3D", "pixel art"]
41
- importance: "critical"
42
- affects: "all visual epics"
43
- options:
44
- unity_urp:
45
- pairs_with: ["Unity", "Shader Graph", "2D Renderer", "mobile targets"]
46
- unity_hdrp:
47
- pairs_with: ["Unity", "Shader Graph", "ray tracing", "high-end PC/console"]
48
- unreal_nanite_lumen:
49
- pairs_with: ["Unreal", "virtual geometry", "global illumination", "high-end PC/console"]
50
- unreal_forward:
51
- pairs_with: ["Unreal", "mobile", "VR", "stylized rendering"]
52
- godot_vulkan:
53
- pairs_with: ["Godot", "Forward+", "mid-range hardware"]
54
- godot_compatibility:
55
- pairs_with: ["Godot", "OpenGL", "mobile", "web export"]
56
- custom_2d:
57
- pairs_with: ["Phaser", "SDL", "sprite batching", "pixel art"]
58
- roblox_rendering:
59
- pairs_with: ["Roblox", "fixed pipeline (platform-managed)", "SurfaceAppearance", "Atmosphere", "Lighting", "StreamingEnabled"]
60
-
61
- physics_system:
62
- triggers: ["physics", "collision", "rigid body", "character controller", "raycasting", "platformer movement"]
63
- importance: "high"
64
- affects: "gameplay and movement epics"
65
- options:
66
- engine_native:
67
- pairs_with: ["PhysX (Unity)", "Chaos (Unreal)", "Godot Physics"]
68
- jolt:
69
- pairs_with: ["Godot (Jolt plugin)", "custom engines"]
70
- box2d:
71
- pairs_with: ["2D games", "Godot", "Phaser (Matter.js alternative)"]
72
- custom_controller:
73
- pairs_with: ["platformers", "raycasting", "kinematic bodies"]
74
- deterministic:
75
- pairs_with: ["rollback netcode", "fixed-point math", "lockstep multiplayer"]
76
- roblox_physics:
77
- pairs_with: ["Roblox", "Humanoid", "BasePart constraints", "Workspace.Gravity", "client-authoritative character movement"]
78
-
79
- audio_system:
80
- triggers: ["audio", "music", "sound effects", "SFX", "adaptive music", "spatial audio", "voice"]
81
- importance: "medium"
82
- affects: "audio and ambiance epics"
83
- options:
84
- engine_native:
85
- pairs_with: ["Unity Audio", "Unreal MetaSounds", "Godot AudioStreamPlayer"]
86
- fmod:
87
- pairs_with: ["Unity", "Unreal", "Godot (via plugin)", "adaptive music", "large projects"]
88
- wwise:
89
- pairs_with: ["Unity", "Unreal", "AAA projects", "spatial audio", "large sound libraries"]
90
- roblox_audio:
91
- pairs_with: ["Roblox", "SoundService", "Sound/SoundGroup instances", "AudioAnalyzer", "spatial 3D audio via RollOffMode"]
92
-
93
- networking:
94
- triggers: ["multiplayer", "online", "netcode", "co-op", "PvP", "lobby", "matchmaking", "dedicated server"]
95
- importance: "critical"
96
- affects: "all multiplayer epics"
97
- options:
98
- unity_netcode:
99
- pairs_with: ["Unity", "Netcode for GameObjects", "Unity Relay", "Unity Lobby"]
100
- photon:
101
- pairs_with: ["Unity", "Photon Fusion", "Photon Quantum", "Photon Voice"]
102
- mirror:
103
- pairs_with: ["Unity", "open source", "server authoritative"]
104
- unreal_replication:
105
- pairs_with: ["Unreal", "built-in replication", "dedicated servers", "listen servers"]
106
- eos:
107
- pairs_with: ["Epic Online Services", "cross-platform", "lobbies", "voice", "anti-cheat"]
108
- steam_networking:
109
- pairs_with: ["Steamworks", "peer-to-peer", "relay", "PC-focused"]
110
- godot_multiplayer:
111
- pairs_with: ["Godot", "MultiplayerAPI", "ENet", "WebSocket"]
112
- custom_udp:
113
- pairs_with: ["ENet", "LiteNetLib", "GameServer.io", "custom protocol"]
114
- roblox_networking:
115
- pairs_with:
116
- [
117
- "Roblox",
118
- "RemoteEvent",
119
- "RemoteFunction",
120
- "server-authoritative (mandatory)",
121
- "FilteringEnabled",
122
- "MemoryStoreService for cross-server",
123
- "MessagingService",
124
- ]
125
-
126
- input_system:
127
- triggers: ["input", "controls", "controller", "gamepad", "keyboard", "touch", "gesture", "rebinding"]
128
- importance: "high"
129
- affects: "player interaction epics"
130
- options:
131
- unity_input_system:
132
- pairs_with: ["Unity", "action maps", "rebinding", "multiple devices"]
133
- unreal_enhanced_input:
134
- pairs_with: ["Unreal", "input actions", "modifiers", "triggers"]
135
- godot_input_map:
136
- pairs_with: ["Godot", "InputMap", "action system"]
137
- rewired:
138
- pairs_with: ["Unity", "advanced controller support", "Steam Input"]
139
- custom_buffer:
140
- pairs_with: ["fighting games", "input buffering", "command parsing"]
141
- roblox_input:
142
- pairs_with:
143
- ["Roblox", "UserInputService", "ContextActionService", "mobile touch (automatic)", "gamepad (Xbox controller supported)"]
144
-
145
- ai_system:
146
- triggers: ["AI", "enemies", "NPC", "behavior", "pathfinding", "navigation", "companion"]
147
- importance: "high"
148
- affects: "AI and gameplay epics"
149
- options:
150
- behavior_trees:
151
- pairs_with: ["Unity (Behavior Designer)", "Unreal (Behavior Trees)", "Godot (LimboAI)"]
152
- state_machines:
153
- pairs_with: ["any engine", "simple enemy AI", "animation state"]
154
- goap:
155
- pairs_with: ["emergent behavior", "complex NPCs", "simulation games"]
156
- utility_ai:
157
- pairs_with: ["dynamic decision making", "The Sims-style", "squad tactics"]
158
- navigation_mesh:
159
- pairs_with: ["Unity NavMesh", "Unreal NavMesh", "Godot NavigationServer", "3D pathfinding"]
160
- astar_grid:
161
- pairs_with: ["2D games", "tile-based", "grid pathfinding", "RTS"]
162
-
163
- save_persistence:
164
- triggers: ["save", "load", "persistence", "progress", "cloud save", "save file", "checkpoint"]
165
- importance: "high"
166
- affects: "progression and data epics"
167
- options:
168
- player_prefs:
169
- pairs_with: ["Unity PlayerPrefs", "Godot ConfigFile", "simple key-value", "settings only"]
170
- serialized_json:
171
- pairs_with: ["any engine", "JSON save files", "versioned schema", "complex state"]
172
- sqlite:
173
- pairs_with: ["large save data", "queryable state", "inventory-heavy games"]
174
- platform_cloud:
175
- pairs_with: ["Steam Cloud", "PSN", "Xbox Cloud", "iCloud", "Google Play"]
176
- custom_binary:
177
- pairs_with: ["performance-sensitive", "large worlds", "anti-tamper"]
178
- roblox_datastore:
179
- pairs_with:
180
- [
181
- "Roblox",
182
- "DataStoreService",
183
- "UpdateAsync",
184
- "MemoryStoreService session locking",
185
- "in-memory cache pattern",
186
- "BindToClose flush",
187
- ]
188
-
189
- ui_framework:
190
- triggers: ["UI", "HUD", "menu", "inventory screen", "dialogue box", "health bar", "minimap"]
191
- importance: "medium"
192
- affects: "UI and UX epics"
193
- options:
194
- unity_ui_toolkit:
195
- pairs_with: ["Unity", "USS styling", "UXML layout", "runtime UI"]
196
- unity_ugui:
197
- pairs_with: ["Unity", "Canvas", "legacy but mature", "wide plugin support"]
198
- unreal_umg:
199
- pairs_with: ["Unreal", "UMG widgets", "Blueprints", "Slate (C++)"]
200
- godot_control:
201
- pairs_with: ["Godot", "Control nodes", "themes", "containers"]
202
- imgui:
203
- pairs_with: ["debug tools", "dev UI", "any engine via binding"]
204
- roblox_gui:
205
- pairs_with:
206
- ["Roblox", "ScreenGui", "PlayerGui", "vanilla Roblox UI", "Fusion (community reactive)", "Roact (community declarative)"]
207
-
208
- asset_pipeline:
209
- triggers: ["assets", "textures", "models", "sprites", "animation", "import", "asset bundles", "streaming"]
210
- importance: "medium"
211
- affects: "content and loading epics"
212
- options:
213
- unity_addressables:
214
- pairs_with: ["Unity", "async loading", "content updates", "DLC"]
215
- unity_resources:
216
- pairs_with: ["Unity", "simple projects", "no remote content"]
217
- unreal_asset_manager:
218
- pairs_with: ["Unreal", "async loading", "streaming levels", "pak files"]
219
- godot_resource_loader:
220
- pairs_with: ["Godot", "ResourceLoader", "threaded loading", "PCK files"]
221
- roblox_assets:
222
- pairs_with: ["Roblox", "Creator Store", "ContentProvider", "StreamingEnabled", "ReplicatedStorage vs ServerStorage split"]
223
-
224
- deployment_platform:
225
- triggers: ["platform", "target", "build", "export", "Steam", "console", "mobile", "web"]
226
- importance: "high"
227
- affects: "all epics"
228
- options:
229
- steam_pc:
230
- pairs_with: ["Steamworks SDK", "Steam Cloud", "Steam Input", "achievements"]
231
- console:
232
- pairs_with: ["platform SDK (NDA)", "certification requirements", "platform-specific APIs"]
233
- mobile_ios:
234
- pairs_with: ["App Store", "Metal", "Game Center", "StoreKit"]
235
- mobile_android:
236
- pairs_with: ["Google Play", "Vulkan/OpenGL ES", "Google Play Games Services"]
237
- web_html5:
238
- pairs_with: ["WebGL", "WebAssembly", "itch.io", "Newgrounds"]
239
- vr_headset:
240
- pairs_with: ["OpenXR", "Meta SDK", "SteamVR", "platform store"]
241
- roblox_platform:
242
- pairs_with:
243
- [
244
- "Roblox handles all deployment",
245
- "PC",
246
- "mobile iOS/Android",
247
- "Xbox",
248
- "VR (Meta Quest)",
249
- "no App Store submission required",
250
- "Robux monetization",
251
- ]
252
-
253
- # Opinionated stack combinations for common game types
254
- common_stacks:
255
- unity_3d_action:
256
- name: "Unity 3D Action/Adventure"
257
- components: ["Unity", "URP", "C#", "Cinemachine", "Unity Input System", "FMOD or native audio", "Addressables"]
258
- good_for: "3D action games, third-person, first-person, adventure"
259
-
260
- unity_2d_platformer:
261
- name: "Unity 2D Platformer"
262
- components: ["Unity", "URP 2D Renderer", "C#", "Tilemap", "Unity Input System", "custom character controller"]
263
- good_for: "2D platformers, metroidvanias, side-scrollers"
264
-
265
- unreal_high_fidelity:
266
- name: "Unreal High-Fidelity 3D"
267
- components: ["Unreal Engine", "Nanite", "Lumen", "C++ and Blueprints", "Enhanced Input", "MetaSounds"]
268
- good_for: "AAA-quality 3D, open world, realistic visuals"
269
-
270
- unreal_multiplayer:
271
- name: "Unreal Multiplayer"
272
- components: ["Unreal Engine", "Replication", "Dedicated Servers", "Enhanced Input", "EOS"]
273
- good_for: "Competitive multiplayer, team shooters, battle royale"
274
-
275
- godot_2d:
276
- name: "Godot 2D"
277
- components: ["Godot", "GDScript", "TileMap", "AnimationPlayer", "Godot Physics 2D"]
278
- good_for: "2D games, pixel art, indie, rapid prototyping, web export"
279
-
280
- godot_3d:
281
- name: "Godot 3D"
282
- components: ["Godot", "GDScript or C#", "Forward+ renderer", "NavigationServer", "Jolt Physics"]
283
- good_for: "Mid-scope 3D games, open source priority, multi-platform"
284
-
285
- roblox_experience:
286
- name: "Roblox Experience"
287
- components:
288
- [
289
- "Roblox Studio",
290
- "Luau",
291
- "DataStoreService + MemoryStoreService",
292
- "RemoteEvents/RemoteFunctions",
293
- "UserInputService/ContextActionService",
294
- "SoundService",
295
- "Rojo (version control)",
296
- "Wally (packages)",
297
- ]
298
- good_for: "Social games, multiplayer experiences, UGC-driven games, games targeting the Roblox platform"
299
-
300
- web_browser_game:
301
- name: "Browser/HTML5 Game"
302
- components: ["Phaser or Godot HTML5", "JavaScript/TypeScript", "WebGL", "Howler.js for audio"]
303
- good_for: "Web games, game jams, itch.io, casual browser games"
304
-
305
- mobile_casual:
306
- name: "Mobile Casual"
307
- components: ["Unity or Godot", "lightweight renderer", "touch input", "ad SDK", "IAP SDK", "cloud save"]
308
- good_for: "Mobile F2P, hyper-casual, idle games"
309
-
310
- vr_experience:
311
- name: "VR Game"
312
- components: ["Unity XR Toolkit or Unreal OpenXR", "OpenXR", "spatial audio", "hand tracking", "fixed foveated rendering"]
313
- good_for: "VR games, XR experiences, room-scale interaction"
314
-
315
- # Starter templates and what decisions they pre-make
316
- starter_templates:
317
- unity_2d_urp:
318
- name: "Unity 2D (URP)"
319
- command_search: "Unity Hub → New Project → 2D (URP)"
320
- decisions_provided: ["Unity engine", "URP rendering", "2D Renderer", "C# language", "basic project structure"]
321
- good_for: ["2D games", "pixel art", "platformers", "top-down"]
322
-
323
- unity_3d_urp:
324
- name: "Unity 3D (URP)"
325
- command_search: "Unity Hub → New Project → 3D (URP)"
326
- decisions_provided: ["Unity engine", "URP rendering", "3D pipeline", "C# language", "basic project structure"]
327
- good_for: ["3D games", "mobile 3D", "stylized visuals", "cross-platform"]
328
-
329
- unity_3d_hdrp:
330
- name: "Unity 3D (HDRP)"
331
- command_search: "Unity Hub → New Project → 3D (HDRP)"
332
- decisions_provided: ["Unity engine", "HDRP rendering", "high-end pipeline", "C# language"]
333
- good_for: ["High-fidelity 3D", "PC/console", "realistic rendering"]
334
-
335
- unity_vr:
336
- name: "Unity VR"
337
- command_search: "Unity Hub → New Project → VR"
338
- decisions_provided: ["Unity engine", "XR Plugin Management", "XR Interaction Toolkit", "URP"]
339
- good_for: ["VR games", "XR experiences"]
340
-
341
- unreal_blank:
342
- name: "Unreal Blank Project"
343
- command_search: "Epic Games Launcher → Unreal → Blank"
344
- decisions_provided: ["Unreal engine", "C++ and Blueprints", "Chaos physics", "MetaSounds"]
345
- good_for: ["Custom game types", "full control over setup"]
346
-
347
- unreal_third_person:
348
- name: "Unreal Third Person"
349
- command_search: "Epic Games Launcher → Unreal → Third Person"
350
- decisions_provided: ["Unreal engine", "character movement", "Enhanced Input", "third-person camera", "mannequin animations"]
351
- good_for: ["3D action/adventure", "third-person games"]
352
-
353
- unreal_first_person:
354
- name: "Unreal First Person"
355
- command_search: "Epic Games Launcher → Unreal → First Person"
356
- decisions_provided: ["Unreal engine", "FPS movement", "Enhanced Input", "first-person camera", "projectile system"]
357
- good_for: ["FPS games", "first-person exploration"]
358
-
359
- godot_default:
360
- name: "Godot Default Project"
361
- command_search: "Godot → Project Manager → New Project"
362
- decisions_provided: ["Godot engine", "GDScript", "scene tree architecture", "2D and 3D capable"]
363
- good_for: ["Any Godot game", "rapid prototyping", "2D or 3D"]
364
-
365
- phaser_vite:
366
- name: "Phaser + Vite"
367
- command_search: "npm create @phaserjs/game@latest"
368
- decisions_provided: ["Phaser framework", "TypeScript option", "Vite bundler", "Arcade Physics"]
369
- good_for: ["Browser games", "2D web games", "game jams"]
370
-
371
- roblox_new_place:
372
- name: "Roblox New Place"
373
- command_search: "Roblox Studio → New → Baseplate (or your template of choice)"
374
- decisions_provided:
375
- [
376
- "Roblox engine",
377
- "Luau language",
378
- "server-authoritative networking (mandatory)",
379
- "DataStoreService persistence",
380
- "platform-managed deployment",
381
- "Roblox avatar system",
382
- ]
383
- good_for: ["Roblox platform games", "multiplayer experiences", "social games", "UGC games"]
384
-
385
- bevy_default:
386
- name: "Bevy Default"
387
- command_search: "cargo init && cargo add bevy"
388
- decisions_provided: ["Bevy engine", "Rust language", "ECS architecture", "wgpu renderer"]
389
- good_for: ["Rust game development", "data-oriented design", "custom pipelines"]
390
-
391
- # Starter selection heuristics (workflow logic)
392
- starter_selection_rules:
393
- by_game_type:
394
- 2d_platformer:
395
- recommended: ["unity_2d_urp", "godot_default"]
396
- considerations: "Asset store needs? → Unity. Open source? → Godot. Web export? → Godot or Phaser"
397
-
398
- 3d_action:
399
- recommended: ["unreal_third_person", "unity_3d_urp"]
400
- considerations: "High fidelity? → Unreal. Cross-platform mobile? → Unity URP. Stylized? → Either"
401
-
402
- fps_shooter:
403
- recommended: ["unreal_first_person", "unity_3d_urp"]
404
- considerations: "Multiplayer replication? → Unreal. Mobile? → Unity. Competitive netcode? → Both viable"
405
-
406
- open_world:
407
- recommended: ["unreal_blank", "unity_3d_urp"]
408
- considerations: "Large-scale streaming? → Unreal (World Partition). Mid-scope? → Unity or Godot"
409
-
410
- mobile_casual:
411
- recommended: ["unity_2d_urp", "godot_default"]
412
- considerations: "Ad/IAP SDKs? → Unity (best ecosystem). Open source? → Godot. Web-first? → Phaser"
413
-
414
- vr_game:
415
- recommended: ["unity_vr", "unreal_blank"]
416
- considerations: "XR Toolkit maturity? → Unity. Visual fidelity? → Unreal. Cross-headset? → Both via OpenXR"
417
-
418
- browser_game:
419
- recommended: ["phaser_vite", "godot_default"]
420
- considerations: "Pure web? → Phaser. May expand to desktop? → Godot. Game jam? → Either"
421
-
422
- strategy_rts:
423
- recommended: ["unity_3d_urp", "godot_default", "unreal_blank"]
424
- considerations: "Large unit counts? → ECS approach in any engine. Mod support? → Godot. Polish? → Unity or Unreal"
425
-
426
- narrative_rpg:
427
- recommended: ["unity_3d_urp", "unity_2d_urp", "godot_default"]
428
- considerations: "Yarn Spinner/Ink integration? → Unity or Godot. Dialogue-heavy? → Godot (built-in). AAA RPG? → Unreal"