bmad-method 6.0.0-alpha.17 → 6.0.0-alpha.19

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 (185) hide show
  1. package/CHANGELOG.md +117 -0
  2. package/package.json +1 -1
  3. package/src/modules/bmgd/_module-installer/installer.js +160 -0
  4. package/src/modules/bmgd/_module-installer/platform-specifics/claude-code.js +23 -0
  5. package/src/modules/bmgd/_module-installer/platform-specifics/windsurf.js +18 -0
  6. package/src/modules/bmgd/agents/game-architect.agent.yaml +23 -8
  7. package/src/modules/bmgd/agents/game-designer.agent.yaml +38 -18
  8. package/src/modules/bmgd/agents/game-dev.agent.yaml +30 -14
  9. package/src/modules/bmgd/agents/game-qa.agent.yaml +64 -0
  10. package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +27 -39
  11. package/src/modules/bmgd/agents/game-solo-dev.agent.yaml +56 -0
  12. package/src/modules/bmgd/docs/README.md +180 -0
  13. package/src/modules/bmgd/docs/agents-guide.md +407 -0
  14. package/src/modules/bmgd/docs/game-types-guide.md +503 -0
  15. package/src/modules/bmgd/docs/glossary.md +294 -0
  16. package/src/modules/bmgd/docs/quick-flow-guide.md +288 -0
  17. package/src/modules/bmgd/docs/quick-start.md +250 -0
  18. package/src/modules/bmgd/docs/troubleshooting.md +259 -0
  19. package/src/modules/bmgd/docs/workflow-overview.jpg +0 -0
  20. package/src/modules/bmgd/docs/workflows-guide.md +463 -0
  21. package/src/modules/bmgd/gametest/knowledge/balance-testing.md +220 -0
  22. package/src/modules/bmgd/gametest/knowledge/certification-testing.md +319 -0
  23. package/src/modules/bmgd/gametest/knowledge/compatibility-testing.md +228 -0
  24. package/src/modules/bmgd/gametest/knowledge/godot-testing.md +376 -0
  25. package/src/modules/bmgd/gametest/knowledge/input-testing.md +315 -0
  26. package/src/modules/bmgd/gametest/knowledge/localization-testing.md +304 -0
  27. package/src/modules/bmgd/gametest/knowledge/multiplayer-testing.md +322 -0
  28. package/src/modules/bmgd/gametest/knowledge/performance-testing.md +204 -0
  29. package/src/modules/bmgd/gametest/knowledge/playtesting.md +384 -0
  30. package/src/modules/bmgd/gametest/knowledge/qa-automation.md +190 -0
  31. package/src/modules/bmgd/gametest/knowledge/regression-testing.md +280 -0
  32. package/src/modules/bmgd/gametest/knowledge/save-testing.md +280 -0
  33. package/src/modules/bmgd/gametest/knowledge/smoke-testing.md +404 -0
  34. package/src/modules/bmgd/gametest/knowledge/test-priorities.md +271 -0
  35. package/src/modules/bmgd/gametest/knowledge/unity-testing.md +383 -0
  36. package/src/modules/bmgd/gametest/knowledge/unreal-testing.md +388 -0
  37. package/src/modules/bmgd/gametest/qa-index.csv +17 -0
  38. package/src/modules/bmgd/module.yaml +25 -9
  39. package/src/modules/bmgd/teams/default-party.csv +2 -0
  40. package/src/modules/bmgd/teams/team-gamedev.yaml +12 -1
  41. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-01-init.md +164 -0
  42. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-02-context.md +210 -0
  43. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-03-ideation.md +289 -0
  44. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-04-complete.md +275 -0
  45. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.md +49 -0
  46. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.yaml +29 -8
  47. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01-init.md +223 -0
  48. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01b-continue.md +151 -0
  49. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-02-vision.md +218 -0
  50. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-03-market.md +218 -0
  51. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-04-fundamentals.md +231 -0
  52. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-05-scope.md +242 -0
  53. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-06-references.md +224 -0
  54. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-07-content.md +282 -0
  55. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-08-complete.md +296 -0
  56. package/src/modules/bmgd/workflows/1-preproduction/game-brief/workflow.md +62 -0
  57. package/src/modules/bmgd/workflows/1-preproduction/game-brief/workflow.yaml +40 -9
  58. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-01-init.md +248 -0
  59. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-01b-continue.md +173 -0
  60. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-02-context.md +332 -0
  61. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-03-platforms.md +245 -0
  62. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-04-vision.md +229 -0
  63. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-05-core-gameplay.md +258 -0
  64. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-06-mechanics.md +249 -0
  65. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-07-game-type.md +266 -0
  66. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-08-progression.md +272 -0
  67. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-09-levels.md +264 -0
  68. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-10-art-audio.md +255 -0
  69. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-11-technical.md +275 -0
  70. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-12-epics.md +284 -0
  71. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-13-metrics.md +250 -0
  72. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-14-complete.md +335 -0
  73. package/src/modules/bmgd/workflows/2-design/gdd/workflow.md +61 -0
  74. package/src/modules/bmgd/workflows/2-design/gdd/workflow.yaml +27 -7
  75. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-01-init.md +228 -0
  76. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-01b-continue.md +163 -0
  77. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-02-foundation.md +262 -0
  78. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-03-story.md +238 -0
  79. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-04-characters.md +297 -0
  80. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-05-world.md +262 -0
  81. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-06-dialogue.md +250 -0
  82. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-07-environmental.md +244 -0
  83. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-08-delivery.md +264 -0
  84. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-09-integration.md +254 -0
  85. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-10-production.md +262 -0
  86. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-11-complete.md +331 -0
  87. package/src/modules/bmgd/workflows/2-design/narrative/workflow.md +57 -0
  88. package/src/modules/bmgd/workflows/2-design/narrative/workflow.yaml +53 -8
  89. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01-init.md +223 -0
  90. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01b-continue.md +153 -0
  91. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-02-context.md +262 -0
  92. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-03-starter.md +290 -0
  93. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-04-decisions.md +300 -0
  94. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-05-crosscutting.md +319 -0
  95. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-06-structure.md +304 -0
  96. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-07-patterns.md +349 -0
  97. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-08-validation.md +293 -0
  98. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-09-complete.md +302 -0
  99. package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.md +55 -0
  100. package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.yaml +50 -21
  101. package/src/modules/bmgd/workflows/4-production/code-review/checklist.md +23 -0
  102. package/src/modules/bmgd/workflows/4-production/code-review/instructions.xml +225 -0
  103. package/src/modules/bmgd/workflows/4-production/code-review/workflow.yaml +18 -15
  104. package/src/modules/bmgd/workflows/4-production/correct-course/checklist.md +1 -1
  105. package/src/modules/bmgd/workflows/4-production/correct-course/instructions.md +1 -1
  106. package/src/modules/bmgd/workflows/4-production/correct-course/workflow.yaml +11 -6
  107. package/src/modules/bmgd/workflows/4-production/create-story/checklist.md +332 -214
  108. package/src/modules/bmgd/workflows/4-production/create-story/instructions.xml +298 -0
  109. package/src/modules/bmgd/workflows/4-production/create-story/template.md +3 -5
  110. package/src/modules/bmgd/workflows/4-production/create-story/workflow.yaml +12 -7
  111. package/src/modules/bmgd/workflows/4-production/dev-story/checklist.md +65 -23
  112. package/src/modules/bmgd/workflows/4-production/dev-story/instructions.xml +409 -0
  113. package/src/modules/bmgd/workflows/4-production/dev-story/workflow.yaml +13 -3
  114. package/src/modules/bmgd/workflows/4-production/retrospective/instructions.md +4 -4
  115. package/src/modules/bmgd/workflows/4-production/retrospective/workflow.yaml +12 -7
  116. package/src/modules/bmgd/workflows/4-production/sprint-planning/instructions.md +32 -41
  117. package/src/modules/bmgd/workflows/4-production/sprint-planning/sprint-status-template.yaml +13 -13
  118. package/src/modules/bmgd/workflows/4-production/sprint-planning/workflow.yaml +6 -1
  119. package/src/modules/bmgd/workflows/4-production/sprint-status/instructions.md +229 -0
  120. package/src/modules/bmgd/workflows/4-production/sprint-status/workflow.yaml +35 -0
  121. package/src/modules/bmgd/workflows/bmgd-quick-flow/create-tech-spec/instructions.md +140 -0
  122. package/src/modules/bmgd/workflows/bmgd-quick-flow/create-tech-spec/workflow.yaml +27 -0
  123. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/checklist.md +37 -0
  124. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/instructions.md +220 -0
  125. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/workflow.yaml +45 -0
  126. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-prototype/checklist.md +26 -0
  127. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-prototype/instructions.md +156 -0
  128. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-prototype/workflow.yaml +36 -0
  129. package/src/modules/bmgd/workflows/gametest/automate/checklist.md +93 -0
  130. package/src/modules/bmgd/workflows/gametest/automate/instructions.md +317 -0
  131. package/src/modules/bmgd/workflows/gametest/automate/workflow.yaml +50 -0
  132. package/src/modules/bmgd/workflows/gametest/performance/checklist.md +96 -0
  133. package/src/modules/bmgd/workflows/gametest/performance/instructions.md +323 -0
  134. package/src/modules/bmgd/workflows/gametest/performance/performance-template.md +256 -0
  135. package/src/modules/bmgd/workflows/gametest/performance/workflow.yaml +48 -0
  136. package/src/modules/bmgd/workflows/gametest/playtest-plan/checklist.md +93 -0
  137. package/src/modules/bmgd/workflows/gametest/playtest-plan/instructions.md +297 -0
  138. package/src/modules/bmgd/workflows/gametest/playtest-plan/playtest-template.md +208 -0
  139. package/src/modules/bmgd/workflows/gametest/playtest-plan/workflow.yaml +59 -0
  140. package/src/modules/bmgd/workflows/gametest/test-design/checklist.md +98 -0
  141. package/src/modules/bmgd/workflows/gametest/test-design/instructions.md +280 -0
  142. package/src/modules/bmgd/workflows/gametest/test-design/test-design-template.md +205 -0
  143. package/src/modules/bmgd/workflows/gametest/test-design/workflow.yaml +47 -0
  144. package/src/modules/bmgd/workflows/gametest/test-framework/checklist.md +103 -0
  145. package/src/modules/bmgd/workflows/gametest/test-framework/instructions.md +348 -0
  146. package/src/modules/bmgd/workflows/gametest/test-framework/workflow.yaml +48 -0
  147. package/src/modules/bmgd/workflows/gametest/test-review/checklist.md +87 -0
  148. package/src/modules/bmgd/workflows/gametest/test-review/instructions.md +272 -0
  149. package/src/modules/bmgd/workflows/gametest/test-review/test-review-template.md +203 -0
  150. package/src/modules/bmgd/workflows/gametest/test-review/workflow.yaml +48 -0
  151. package/src/modules/bmgd/workflows/workflow-status/init/instructions.md +299 -0
  152. package/src/modules/bmgd/workflows/workflow-status/init/workflow.yaml +29 -0
  153. package/src/modules/bmgd/workflows/workflow-status/instructions.md +395 -0
  154. package/src/modules/bmgd/workflows/workflow-status/paths/gamedev-brownfield.yaml +65 -0
  155. package/src/modules/bmgd/workflows/workflow-status/paths/gamedev-greenfield.yaml +71 -0
  156. package/src/modules/bmgd/workflows/workflow-status/paths/quickflow-brownfield.yaml +29 -0
  157. package/src/modules/bmgd/workflows/workflow-status/paths/quickflow-greenfield.yaml +39 -0
  158. package/src/modules/bmgd/workflows/workflow-status/project-levels.yaml +63 -0
  159. package/src/modules/bmgd/workflows/workflow-status/workflow-status-template.yaml +24 -0
  160. package/src/modules/bmgd/workflows/workflow-status/workflow.yaml +30 -0
  161. package/tools/cli/commands/install.js +9 -0
  162. package/tools/cli/installers/lib/core/installer.js +140 -592
  163. package/tools/cli/installers/lib/modules/manager.js +15 -3
  164. package/tools/cli/lib/agent/compiler.js +99 -0
  165. package/tools/cli/lib/ui.js +78 -27
  166. package/src/modules/bmgd/workflows/2-design/gdd/instructions-gdd.md +0 -502
  167. package/src/modules/bmgd/workflows/4-production/code-review/instructions.md +0 -398
  168. package/src/modules/bmgd/workflows/4-production/create-story/instructions.md +0 -256
  169. package/src/modules/bmgd/workflows/4-production/dev-story/instructions.md +0 -267
  170. package/src/modules/bmgd/workflows/4-production/epic-tech-context/checklist.md +0 -17
  171. package/src/modules/bmgd/workflows/4-production/epic-tech-context/instructions.md +0 -164
  172. package/src/modules/bmgd/workflows/4-production/epic-tech-context/template.md +0 -76
  173. package/src/modules/bmgd/workflows/4-production/epic-tech-context/workflow.yaml +0 -58
  174. package/src/modules/bmgd/workflows/4-production/story-context/checklist.md +0 -16
  175. package/src/modules/bmgd/workflows/4-production/story-context/context-template.xml +0 -34
  176. package/src/modules/bmgd/workflows/4-production/story-context/instructions.md +0 -209
  177. package/src/modules/bmgd/workflows/4-production/story-context/workflow.yaml +0 -63
  178. package/src/modules/bmgd/workflows/4-production/story-done/instructions.md +0 -111
  179. package/src/modules/bmgd/workflows/4-production/story-done/workflow.yaml +0 -28
  180. package/src/modules/bmgd/workflows/4-production/story-ready/instructions.md +0 -117
  181. package/src/modules/bmgd/workflows/4-production/story-ready/workflow.yaml +0 -25
  182. /package/src/modules/bmgd/workflows/1-preproduction/game-brief/{template.md → templates/game-brief-template.md} +0 -0
  183. /package/src/modules/bmgd/workflows/2-design/gdd/{gdd-template.md → templates/gdd-template.md} +0 -0
  184. /package/src/modules/bmgd/workflows/2-design/narrative/{narrative-template.md → templates/narrative-template.md} +0 -0
  185. /package/src/modules/bmgd/workflows/3-technical/game-architecture/{architecture-template.md → templates/architecture-template.md} +0 -0
@@ -0,0 +1,319 @@
1
+ # Platform Certification Testing Guide
2
+
3
+ ## Overview
4
+
5
+ Certification testing ensures games meet platform holder requirements (Sony TRC, Microsoft XR, Nintendo Guidelines). Failing certification delays launch and costs money—test thoroughly before submission.
6
+
7
+ ## Platform Requirements Overview
8
+
9
+ ### Major Platforms
10
+
11
+ | Platform | Requirements Doc | Submission Portal |
12
+ | --------------- | -------------------------------------- | ------------------------- |
13
+ | PlayStation | TRC (Technical Requirements Checklist) | PlayStation Partners |
14
+ | Xbox | XR (Xbox Requirements) | Xbox Partner Center |
15
+ | Nintendo Switch | Guidelines | Nintendo Developer Portal |
16
+ | Steam | Guidelines (less strict) | Steamworks |
17
+ | iOS | App Store Guidelines | App Store Connect |
18
+ | Android | Play Store Policies | Google Play Console |
19
+
20
+ ## Common Certification Categories
21
+
22
+ ### Account and User Management
23
+
24
+ ```
25
+ REQUIREMENT: User Switching
26
+ GIVEN user is playing game
27
+ WHEN system-level user switch occurs
28
+ THEN game handles transition gracefully
29
+ AND no data corruption
30
+ AND correct user data loads
31
+
32
+ REQUIREMENT: Guest Accounts
33
+ GIVEN guest user plays game
34
+ WHEN guest makes progress
35
+ THEN progress is not saved to other accounts
36
+ AND appropriate warnings displayed
37
+
38
+ REQUIREMENT: Parental Controls
39
+ GIVEN parental controls restrict content
40
+ WHEN restricted content is accessed
41
+ THEN content is blocked or modified
42
+ AND appropriate messaging shown
43
+ ```
44
+
45
+ ### System Events
46
+
47
+ ```
48
+ REQUIREMENT: Suspend/Resume (PS4/PS5)
49
+ GIVEN game is running
50
+ WHEN console enters rest mode
51
+ AND console wakes from rest mode
52
+ THEN game resumes correctly
53
+ AND network reconnects if needed
54
+ AND no audio/visual glitches
55
+
56
+ REQUIREMENT: Controller Disconnect
57
+ GIVEN player is in gameplay
58
+ WHEN controller battery dies
59
+ THEN game pauses immediately
60
+ AND reconnect prompt appears
61
+ AND gameplay resumes when connected
62
+
63
+ REQUIREMENT: Storage Full
64
+ GIVEN storage is nearly full
65
+ WHEN game attempts save
66
+ THEN graceful error handling
67
+ AND user informed of issue
68
+ AND no data corruption
69
+ ```
70
+
71
+ ### Network Requirements
72
+
73
+ ```
74
+ REQUIREMENT: PSN/Xbox Live Unavailable
75
+ GIVEN online features
76
+ WHEN platform network is unavailable
77
+ THEN offline features still work
78
+ AND appropriate error messages
79
+ AND no crashes
80
+
81
+ REQUIREMENT: Network Transition
82
+ GIVEN active online session
83
+ WHEN network connection lost
84
+ THEN graceful handling
85
+ AND reconnection attempted
86
+ AND user informed of status
87
+
88
+ REQUIREMENT: NAT Type Handling
89
+ GIVEN various NAT configurations
90
+ WHEN multiplayer is attempted
91
+ THEN appropriate feedback on connectivity
92
+ AND fallback options offered
93
+ ```
94
+
95
+ ### Save Data
96
+
97
+ ```
98
+ REQUIREMENT: Save Data Integrity
99
+ GIVEN save data exists
100
+ WHEN save is loaded
101
+ THEN data is validated
102
+ AND corrupted data handled gracefully
103
+ AND no crashes on invalid data
104
+
105
+ REQUIREMENT: Cloud Save Sync
106
+ GIVEN cloud saves enabled
107
+ WHEN save conflict occurs
108
+ THEN user chooses which to keep
109
+ AND no silent data loss
110
+
111
+ REQUIREMENT: Save Data Portability (PS4→PS5)
112
+ GIVEN save from previous generation
113
+ WHEN loaded on current generation
114
+ THEN data migrates correctly
115
+ AND no features lost
116
+ ```
117
+
118
+ ## Platform-Specific Requirements
119
+
120
+ ### PlayStation (TRC)
121
+
122
+ | Requirement | Description | Priority |
123
+ | ----------- | --------------------------- | -------- |
124
+ | TRC R4010 | Suspend/resume handling | Critical |
125
+ | TRC R4037 | User switching | Critical |
126
+ | TRC R4062 | Parental controls | Critical |
127
+ | TRC R4103 | PS VR comfort ratings | VR only |
128
+ | TRC R4120 | DualSense haptics standards | PS5 |
129
+ | TRC R5102 | PSN sign-in requirements | Online |
130
+
131
+ ### Xbox (XR)
132
+
133
+ | Requirement | Description | Priority |
134
+ | ----------- | ----------------------------- | ----------- |
135
+ | XR-015 | Title timeout handling | Critical |
136
+ | XR-045 | User sign-out handling | Critical |
137
+ | XR-067 | Active user requirement | Critical |
138
+ | XR-074 | Quick Resume support | Series X/S |
139
+ | XR-115 | Xbox Accessibility Guidelines | Recommended |
140
+
141
+ ### Nintendo Switch
142
+
143
+ | Requirement | Description | Priority |
144
+ | ------------------ | ------------------- | -------- |
145
+ | Docked/Handheld | Seamless transition | Critical |
146
+ | Joy-Con detachment | Controller handling | Critical |
147
+ | Home button | Immediate response | Critical |
148
+ | Screenshots/Video | Proper support | Required |
149
+ | Sleep mode | Resume correctly | Critical |
150
+
151
+ ## Automated Test Examples
152
+
153
+ ### System Event Testing
154
+
155
+ ```cpp
156
+ // Unreal - Suspend/Resume Test
157
+ IMPLEMENT_SIMPLE_AUTOMATION_TEST(
158
+ FSuspendResumeTest,
159
+ "Certification.System.SuspendResume",
160
+ EAutomationTestFlags::ApplicationContextMask | EAutomationTestFlags::ProductFilter
161
+ )
162
+
163
+ bool FSuspendResumeTest::RunTest(const FString& Parameters)
164
+ {
165
+ // Get game state before suspend
166
+ FGameState StateBefore = GetCurrentGameState();
167
+
168
+ // Simulate suspend
169
+ FCoreDelegates::ApplicationWillEnterBackgroundDelegate.Broadcast();
170
+
171
+ // Simulate resume
172
+ FCoreDelegates::ApplicationHasEnteredForegroundDelegate.Broadcast();
173
+
174
+ // Verify state matches
175
+ FGameState StateAfter = GetCurrentGameState();
176
+
177
+ TestEqual("Player position preserved",
178
+ StateAfter.PlayerPosition, StateBefore.PlayerPosition);
179
+ TestEqual("Game progress preserved",
180
+ StateAfter.Progress, StateBefore.Progress);
181
+
182
+ return true;
183
+ }
184
+ ```
185
+
186
+ ```csharp
187
+ // Unity - Controller Disconnect Test
188
+ [UnityTest]
189
+ public IEnumerator ControllerDisconnect_ShowsPauseMenu()
190
+ {
191
+ // Simulate gameplay
192
+ GameManager.Instance.StartGame();
193
+ yield return new WaitForSeconds(1f);
194
+
195
+ // Simulate controller disconnect
196
+ InputSystem.DisconnectDevice(Gamepad.current);
197
+ yield return null;
198
+
199
+ // Verify pause menu shown
200
+ Assert.IsTrue(PauseMenu.IsVisible, "Pause menu should appear");
201
+ Assert.IsTrue(Time.timeScale == 0, "Game should be paused");
202
+
203
+ // Simulate reconnect
204
+ InputSystem.ReconnectDevice(Gamepad.current);
205
+ yield return null;
206
+
207
+ // Verify prompt appears
208
+ Assert.IsTrue(ReconnectPrompt.IsVisible);
209
+ }
210
+ ```
211
+
212
+ ```gdscript
213
+ # Godot - Save Corruption Test
214
+ func test_corrupted_save_handling():
215
+ # Create corrupted save file
216
+ var file = FileAccess.open("user://save_corrupt.dat", FileAccess.WRITE)
217
+ file.store_string("CORRUPTED_GARBAGE_DATA")
218
+ file.close()
219
+
220
+ # Attempt to load
221
+ var result = SaveManager.load("save_corrupt")
222
+
223
+ # Should handle gracefully
224
+ assert_null(result, "Should return null for corrupted save")
225
+ assert_false(OS.has_feature("crashed"), "Should not crash")
226
+
227
+ # Should show user message
228
+ var message_shown = ErrorDisplay.current_message != ""
229
+ assert_true(message_shown, "Should inform user of corruption")
230
+ ```
231
+
232
+ ## Pre-Submission Checklist
233
+
234
+ ### General Requirements
235
+
236
+ - [ ] Game boots to interactive state within platform time limit
237
+ - [ ] Controller disconnect pauses game
238
+ - [ ] User sign-out handled correctly
239
+ - [ ] Save data validates on load
240
+ - [ ] No crashes in 8+ hours of automated testing
241
+ - [ ] Memory usage within platform limits
242
+ - [ ] Load times meet requirements
243
+
244
+ ### Platform Services
245
+
246
+ - [ ] Achievements/Trophies work correctly
247
+ - [ ] Friends list integration works
248
+ - [ ] Invite system functions
249
+ - [ ] Store/DLC integration validated
250
+ - [ ] Cloud saves sync properly
251
+
252
+ ### Accessibility (Increasingly Required)
253
+
254
+ - [ ] Text size options
255
+ - [ ] Colorblind modes
256
+ - [ ] Subtitle options
257
+ - [ ] Controller remapping
258
+ - [ ] Screen reader support (where applicable)
259
+
260
+ ### Content Compliance
261
+
262
+ - [ ] Age rating displayed correctly
263
+ - [ ] Parental controls respected
264
+ - [ ] No prohibited content
265
+ - [ ] Required legal text present
266
+
267
+ ## Common Certification Failures
268
+
269
+ | Issue | Platform | Fix |
270
+ | --------------------- | ------------ | ----------------------------------- |
271
+ | Home button delay | All consoles | Respond within required time |
272
+ | Controller timeout | PlayStation | Handle reactivation properly |
273
+ | Save on suspend | PlayStation | Don't save during suspend |
274
+ | User context loss | Xbox | Track active user correctly |
275
+ | Joy-Con drift | Switch | Proper deadzone handling |
276
+ | Background memory | Mobile | Release resources when backgrounded |
277
+ | Crash on corrupt data | All | Validate all loaded data |
278
+
279
+ ## Testing Matrix
280
+
281
+ ### Build Configurations to Test
282
+
283
+ | Configuration | Scenarios |
284
+ | --------------- | ----------------------- |
285
+ | First boot | No save data exists |
286
+ | Return user | Save data present |
287
+ | Upgrade path | Previous version save |
288
+ | Fresh install | After uninstall |
289
+ | Low storage | Minimum space available |
290
+ | Network offline | No connectivity |
291
+
292
+ ### Hardware Variants
293
+
294
+ | Platform | Variants to Test |
295
+ | ----------- | ------------------------------- |
296
+ | PlayStation | PS4, PS4 Pro, PS5 |
297
+ | Xbox | One, One X, Series S, Series X |
298
+ | Switch | Docked, Handheld, Lite |
299
+ | PC | Min spec, recommended, high-end |
300
+
301
+ ## Best Practices
302
+
303
+ ### DO
304
+
305
+ - Read platform requirements document thoroughly
306
+ - Test on actual hardware, not just dev kits
307
+ - Automate certification test scenarios
308
+ - Submit with extra time for re-submission
309
+ - Document all edge case handling
310
+ - Test with real user accounts
311
+
312
+ ### DON'T
313
+
314
+ - Assume debug builds behave like retail
315
+ - Skip testing on oldest supported hardware
316
+ - Ignore platform-specific features
317
+ - Wait until last minute to test certification items
318
+ - Use placeholder content in submission build
319
+ - Skip testing with real platform services
@@ -0,0 +1,228 @@
1
+ # Compatibility Testing for Games
2
+
3
+ ## Overview
4
+
5
+ Compatibility testing ensures your game works correctly across different hardware, operating systems, and configurations that players use.
6
+
7
+ ## Types of Compatibility Testing
8
+
9
+ ### Hardware Compatibility
10
+
11
+ - Graphics cards (NVIDIA, AMD, Intel)
12
+ - CPUs (Intel, AMD, Apple Silicon)
13
+ - Memory configurations
14
+ - Storage types (HDD, SSD, NVMe)
15
+ - Input devices (controllers, keyboards, mice)
16
+
17
+ ### Software Compatibility
18
+
19
+ - Operating system versions
20
+ - Driver versions
21
+ - Background software conflicts
22
+ - Antivirus interference
23
+
24
+ ### Platform Compatibility
25
+
26
+ - Console SKUs (PS5, Xbox Series X|S)
27
+ - PC storefronts (Steam, Epic, GOG)
28
+ - Mobile devices (iOS, Android)
29
+ - Cloud gaming services
30
+
31
+ ### Configuration Compatibility
32
+
33
+ - Graphics settings combinations
34
+ - Resolution and aspect ratios
35
+ - Refresh rates (60Hz, 144Hz, etc.)
36
+ - HDR and color profiles
37
+
38
+ ## Testing Matrix
39
+
40
+ ### Minimum Hardware Matrix
41
+
42
+ | Component | Budget | Mid-Range | High-End |
43
+ | --------- | -------- | --------- | -------- |
44
+ | GPU | GTX 1050 | RTX 3060 | RTX 4080 |
45
+ | CPU | i5-6400 | i7-10700 | i9-13900 |
46
+ | RAM | 8GB | 16GB | 32GB |
47
+ | Storage | HDD | SATA SSD | NVMe |
48
+
49
+ ### OS Matrix
50
+
51
+ - Windows 10 (21H2, 22H2)
52
+ - Windows 11 (22H2, 23H2)
53
+ - macOS (Ventura, Sonoma)
54
+ - Linux (Ubuntu LTS, SteamOS)
55
+
56
+ ### Controller Matrix
57
+
58
+ - Xbox Controller (wired, wireless, Elite)
59
+ - PlayStation DualSense
60
+ - Nintendo Pro Controller
61
+ - Generic XInput controllers
62
+ - Keyboard + Mouse
63
+
64
+ ## Testing Approach
65
+
66
+ ### 1. Define Supported Configurations
67
+
68
+ - Minimum specifications
69
+ - Recommended specifications
70
+ - Officially supported platforms
71
+ - Known unsupported configurations
72
+
73
+ ### 2. Create Test Matrix
74
+
75
+ - Prioritize common configurations
76
+ - Include edge cases
77
+ - Balance coverage vs. effort
78
+
79
+ ### 3. Execute Systematic Testing
80
+
81
+ - Full playthrough on key configs
82
+ - Spot checks on edge cases
83
+ - Automated smoke tests where possible
84
+
85
+ ### 4. Document Issues
86
+
87
+ - Repro steps with exact configuration
88
+ - Severity and frequency
89
+ - Workarounds if available
90
+
91
+ ## Common Compatibility Issues
92
+
93
+ ### Graphics Issues
94
+
95
+ | Issue | Cause | Detection |
96
+ | -------------------- | ---------------------- | -------------------------------- |
97
+ | Crashes on launch | Driver incompatibility | Test on multiple GPUs |
98
+ | Rendering artifacts | Shader issues | Visual inspection across configs |
99
+ | Performance variance | Optimization gaps | Profile on multiple GPUs |
100
+ | Resolution bugs | Aspect ratio handling | Test non-standard resolutions |
101
+
102
+ ### Input Issues
103
+
104
+ | Issue | Cause | Detection |
105
+ | ----------------------- | ------------------ | ------------------------------ |
106
+ | Controller not detected | Missing driver/API | Test all supported controllers |
107
+ | Wrong button prompts | Platform detection | Swap controllers mid-game |
108
+ | Stick drift handling | Deadzone issues | Test worn controllers |
109
+ | Mouse acceleration | Raw input issues | Test at different DPIs |
110
+
111
+ ### Audio Issues
112
+
113
+ | Issue | Cause | Detection |
114
+ | -------------- | ---------------- | --------------------------- |
115
+ | No sound | Device selection | Test multiple audio devices |
116
+ | Crackling | Buffer issues | Test under CPU load |
117
+ | Wrong channels | Surround setup | Test stereo vs 5.1 vs 7.1 |
118
+
119
+ ## Platform-Specific Considerations
120
+
121
+ ### PC
122
+
123
+ - **Steam:** Verify Steam Input, Steamworks features
124
+ - **Epic:** Test EOS features if used
125
+ - **GOG:** Test offline/DRM-free functionality
126
+ - **Game Pass:** Test Xbox services integration
127
+
128
+ ### Console
129
+
130
+ - **Certification Requirements:** Study TRCs/XRs early
131
+ - **SKU Differences:** Test on all variants (S vs X)
132
+ - **External Storage:** Test on USB drives
133
+ - **Quick Resume:** Test suspend/resume cycles
134
+
135
+ ### Mobile
136
+
137
+ - **Device Fragmentation:** Test across screen sizes
138
+ - **OS Versions:** Test min supported to latest
139
+ - **Permissions:** Test permission flows
140
+ - **App Lifecycle:** Test background/foreground
141
+
142
+ ## Automated Compatibility Testing
143
+
144
+ ### Smoke Tests
145
+
146
+ ```yaml
147
+ # Run on matrix of configurations
148
+ compatibility_test:
149
+ matrix:
150
+ os: [windows-10, windows-11, ubuntu-22]
151
+ gpu: [nvidia, amd, intel]
152
+ script:
153
+ - launch_game --headless
154
+ - verify_main_menu_reached
155
+ - check_no_errors
156
+ ```
157
+
158
+ ### Screenshot Comparison
159
+
160
+ - Capture screenshots on different GPUs
161
+ - Compare for rendering differences
162
+ - Flag significant deviations
163
+
164
+ ### Cloud Testing Services
165
+
166
+ - AWS Device Farm
167
+ - BrowserStack (web games)
168
+ - LambdaTest
169
+ - Sauce Labs
170
+
171
+ ## Compatibility Checklist
172
+
173
+ ### Pre-Alpha
174
+
175
+ - [ ] Minimum specs defined
176
+ - [ ] Key platforms identified
177
+ - [ ] Test matrix created
178
+ - [ ] Test hardware acquired/rented
179
+
180
+ ### Alpha
181
+
182
+ - [ ] Full playthrough on min spec
183
+ - [ ] Controller support verified
184
+ - [ ] Major graphics issues found
185
+ - [ ] Platform SDK integrated
186
+
187
+ ### Beta
188
+
189
+ - [ ] All matrix configurations tested
190
+ - [ ] Edge cases explored
191
+ - [ ] Certification pre-check done
192
+ - [ ] Store page requirements met
193
+
194
+ ### Release
195
+
196
+ - [ ] Final certification passed
197
+ - [ ] Known issues documented
198
+ - [ ] Workarounds communicated
199
+ - [ ] Support matrix published
200
+
201
+ ## Documenting Compatibility
202
+
203
+ ### System Requirements
204
+
205
+ ```
206
+ MINIMUM:
207
+ - OS: Windows 10 64-bit
208
+ - Processor: Intel Core i5-6400 or AMD equivalent
209
+ - Memory: 8 GB RAM
210
+ - Graphics: NVIDIA GTX 1050 or AMD RX 560
211
+ - Storage: 50 GB available space
212
+
213
+ RECOMMENDED:
214
+ - OS: Windows 11 64-bit
215
+ - Processor: Intel Core i7-10700 or AMD equivalent
216
+ - Memory: 16 GB RAM
217
+ - Graphics: NVIDIA RTX 3060 or AMD RX 6700 XT
218
+ - Storage: 50 GB SSD
219
+ ```
220
+
221
+ ### Known Issues
222
+
223
+ Maintain a public-facing list of known compatibility issues with:
224
+
225
+ - Affected configurations
226
+ - Symptoms
227
+ - Workarounds
228
+ - Fix status