@zigrivers/scaffold 3.4.1 → 3.5.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.
- package/README.md +91 -0
- package/content/knowledge/game/game-accessibility.md +328 -0
- package/content/knowledge/game/game-ai-patterns.md +542 -0
- package/content/knowledge/game/game-asset-pipeline.md +359 -0
- package/content/knowledge/game/game-audio-design.md +342 -0
- package/content/knowledge/game/game-binary-vcs-strategy.md +396 -0
- package/content/knowledge/game/game-design-document.md +260 -0
- package/content/knowledge/game/game-domain-patterns.md +297 -0
- package/content/knowledge/game/game-economy-design.md +355 -0
- package/content/knowledge/game/game-engine-selection.md +242 -0
- package/content/knowledge/game/game-input-systems.md +357 -0
- package/content/knowledge/game/game-level-content-design.md +455 -0
- package/content/knowledge/game/game-liveops-analytics.md +280 -0
- package/content/knowledge/game/game-localization.md +323 -0
- package/content/knowledge/game/game-milestone-definitions.md +337 -0
- package/content/knowledge/game/game-modding-ugc.md +390 -0
- package/content/knowledge/game/game-narrative-design.md +404 -0
- package/content/knowledge/game/game-networking.md +391 -0
- package/content/knowledge/game/game-performance-budgeting.md +378 -0
- package/content/knowledge/game/game-platform-certification.md +417 -0
- package/content/knowledge/game/game-project-structure.md +360 -0
- package/content/knowledge/game/game-save-systems.md +452 -0
- package/content/knowledge/game/game-testing-strategy.md +470 -0
- package/content/knowledge/game/game-ui-patterns.md +475 -0
- package/content/knowledge/game/game-vr-ar-design.md +313 -0
- package/content/knowledge/review/review-art-bible.md +305 -0
- package/content/knowledge/review/review-game-design.md +303 -0
- package/content/knowledge/review/review-game-economy.md +272 -0
- package/content/knowledge/review/review-netcode.md +280 -0
- package/content/knowledge/review/review-platform-cert.md +341 -0
- package/content/methodology/custom-defaults.yml +25 -0
- package/content/methodology/deep.yml +25 -0
- package/content/methodology/game-overlay.yml +145 -0
- package/content/methodology/mvp.yml +25 -0
- package/content/pipeline/architecture/ai-behavior-design.md +87 -0
- package/content/pipeline/architecture/netcode-spec.md +86 -0
- package/content/pipeline/architecture/review-netcode.md +78 -0
- package/content/pipeline/foundation/performance-budgets.md +91 -0
- package/content/pipeline/modeling/narrative-bible.md +84 -0
- package/content/pipeline/pre/game-design-document.md +89 -0
- package/content/pipeline/pre/review-gdd.md +74 -0
- package/content/pipeline/quality/analytics-telemetry.md +98 -0
- package/content/pipeline/quality/live-ops-plan.md +99 -0
- package/content/pipeline/quality/platform-cert-prep.md +129 -0
- package/content/pipeline/quality/playtest-plan.md +83 -0
- package/content/pipeline/specification/art-bible.md +87 -0
- package/content/pipeline/specification/audio-design.md +96 -0
- package/content/pipeline/specification/content-structure-design.md +141 -0
- package/content/pipeline/specification/economy-design.md +104 -0
- package/content/pipeline/specification/game-accessibility.md +82 -0
- package/content/pipeline/specification/game-ui-spec.md +97 -0
- package/content/pipeline/specification/input-controls-spec.md +81 -0
- package/content/pipeline/specification/localization-plan.md +113 -0
- package/content/pipeline/specification/modding-ugc-spec.md +116 -0
- package/content/pipeline/specification/online-services-spec.md +104 -0
- package/content/pipeline/specification/review-economy.md +87 -0
- package/content/pipeline/specification/review-game-ui.md +73 -0
- package/content/pipeline/specification/save-system-spec.md +116 -0
- package/dist/cli/commands/adopt.d.ts.map +1 -1
- package/dist/cli/commands/adopt.js +25 -0
- package/dist/cli/commands/adopt.js.map +1 -1
- package/dist/cli/commands/adopt.test.js +28 -1
- package/dist/cli/commands/adopt.test.js.map +1 -1
- package/dist/cli/commands/build.test.js +3 -0
- package/dist/cli/commands/build.test.js.map +1 -1
- package/dist/cli/commands/init.d.ts +1 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +6 -0
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/init.test.js +12 -1
- package/dist/cli/commands/init.test.js.map +1 -1
- package/dist/cli/commands/knowledge.test.js +8 -0
- package/dist/cli/commands/knowledge.test.js.map +1 -1
- package/dist/cli/commands/next.d.ts.map +1 -1
- package/dist/cli/commands/next.js +19 -5
- package/dist/cli/commands/next.js.map +1 -1
- package/dist/cli/commands/next.test.js +56 -0
- package/dist/cli/commands/next.test.js.map +1 -1
- package/dist/cli/commands/rework.d.ts.map +1 -1
- package/dist/cli/commands/rework.js +11 -2
- package/dist/cli/commands/rework.js.map +1 -1
- package/dist/cli/commands/rework.test.js +5 -0
- package/dist/cli/commands/rework.test.js.map +1 -1
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +54 -4
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/run.test.js +384 -0
- package/dist/cli/commands/run.test.js.map +1 -1
- package/dist/cli/commands/skip.test.js +3 -0
- package/dist/cli/commands/skip.test.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +16 -3
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/status.test.js +55 -0
- package/dist/cli/commands/status.test.js.map +1 -1
- package/dist/cli/output/auto.d.ts +3 -0
- package/dist/cli/output/auto.d.ts.map +1 -1
- package/dist/cli/output/auto.js +9 -0
- package/dist/cli/output/auto.js.map +1 -1
- package/dist/cli/output/context.d.ts +6 -0
- package/dist/cli/output/context.d.ts.map +1 -1
- package/dist/cli/output/context.js.map +1 -1
- package/dist/cli/output/context.test.js +87 -0
- package/dist/cli/output/context.test.js.map +1 -1
- package/dist/cli/output/error-display.test.js +3 -0
- package/dist/cli/output/error-display.test.js.map +1 -1
- package/dist/cli/output/interactive.d.ts +3 -0
- package/dist/cli/output/interactive.d.ts.map +1 -1
- package/dist/cli/output/interactive.js +76 -0
- package/dist/cli/output/interactive.js.map +1 -1
- package/dist/cli/output/json.d.ts +3 -0
- package/dist/cli/output/json.d.ts.map +1 -1
- package/dist/cli/output/json.js +9 -0
- package/dist/cli/output/json.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +3 -2
- package/dist/config/loader.js.map +1 -1
- package/dist/config/schema.d.ts +641 -15
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +26 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/config/schema.test.js +192 -1
- package/dist/config/schema.test.js.map +1 -1
- package/dist/core/assembly/overlay-loader.d.ts +24 -0
- package/dist/core/assembly/overlay-loader.d.ts.map +1 -0
- package/dist/core/assembly/overlay-loader.js +190 -0
- package/dist/core/assembly/overlay-loader.js.map +1 -0
- package/dist/core/assembly/overlay-loader.test.d.ts +2 -0
- package/dist/core/assembly/overlay-loader.test.d.ts.map +1 -0
- package/dist/core/assembly/overlay-loader.test.js +106 -0
- package/dist/core/assembly/overlay-loader.test.js.map +1 -0
- package/dist/core/assembly/overlay-resolver.d.ts +15 -0
- package/dist/core/assembly/overlay-resolver.d.ts.map +1 -0
- package/dist/core/assembly/overlay-resolver.js +58 -0
- package/dist/core/assembly/overlay-resolver.js.map +1 -0
- package/dist/core/assembly/overlay-resolver.test.d.ts +2 -0
- package/dist/core/assembly/overlay-resolver.test.d.ts.map +1 -0
- package/dist/core/assembly/overlay-resolver.test.js +246 -0
- package/dist/core/assembly/overlay-resolver.test.js.map +1 -0
- package/dist/core/assembly/overlay-state-resolver.d.ts +26 -0
- package/dist/core/assembly/overlay-state-resolver.d.ts.map +1 -0
- package/dist/core/assembly/overlay-state-resolver.js +63 -0
- package/dist/core/assembly/overlay-state-resolver.js.map +1 -0
- package/dist/core/assembly/overlay-state-resolver.test.d.ts +2 -0
- package/dist/core/assembly/overlay-state-resolver.test.d.ts.map +1 -0
- package/dist/core/assembly/overlay-state-resolver.test.js +256 -0
- package/dist/core/assembly/overlay-state-resolver.test.js.map +1 -0
- package/dist/core/assembly/preset-loader.d.ts +1 -0
- package/dist/core/assembly/preset-loader.d.ts.map +1 -1
- package/dist/core/assembly/preset-loader.js +2 -0
- package/dist/core/assembly/preset-loader.js.map +1 -1
- package/dist/core/dependency/eligibility.test.js +3 -0
- package/dist/core/dependency/eligibility.test.js.map +1 -1
- package/dist/e2e/game-pipeline.test.d.ts +10 -0
- package/dist/e2e/game-pipeline.test.d.ts.map +1 -0
- package/dist/e2e/game-pipeline.test.js +298 -0
- package/dist/e2e/game-pipeline.test.js.map +1 -0
- package/dist/e2e/init.test.js +3 -0
- package/dist/e2e/init.test.js.map +1 -1
- package/dist/project/adopt.d.ts +3 -1
- package/dist/project/adopt.d.ts.map +1 -1
- package/dist/project/adopt.js +29 -1
- package/dist/project/adopt.js.map +1 -1
- package/dist/project/adopt.test.js +51 -1
- package/dist/project/adopt.test.js.map +1 -1
- package/dist/types/config.d.ts +50 -4
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.test.d.ts +2 -0
- package/dist/types/config.test.d.ts.map +1 -0
- package/dist/types/config.test.js +97 -0
- package/dist/types/config.test.js.map +1 -0
- package/dist/utils/eligible.d.ts +3 -2
- package/dist/utils/eligible.d.ts.map +1 -1
- package/dist/utils/eligible.js +18 -4
- package/dist/utils/eligible.js.map +1 -1
- package/dist/utils/errors.d.ts +4 -0
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +31 -0
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/errors.test.js +4 -1
- package/dist/utils/errors.test.js.map +1 -1
- package/dist/wizard/questions.d.ts +4 -0
- package/dist/wizard/questions.d.ts.map +1 -1
- package/dist/wizard/questions.js +59 -1
- package/dist/wizard/questions.js.map +1 -1
- package/dist/wizard/questions.test.js +178 -4
- package/dist/wizard/questions.test.js.map +1 -1
- package/dist/wizard/wizard.d.ts +1 -0
- package/dist/wizard/wizard.d.ts.map +1 -1
- package/dist/wizard/wizard.js +4 -1
- package/dist/wizard/wizard.js.map +1 -1
- package/dist/wizard/wizard.test.js +102 -4
- package/dist/wizard/wizard.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: game-milestone-definitions
|
|
3
|
+
description: Standard game development milestones from concept through live ops, gate criteria, and task-wave mapping
|
|
4
|
+
topics: [game-dev, milestones, production, vertical-slice, alpha, beta]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Game development milestones are the checkpoints that determine whether a project is on track, at risk, or should be cancelled. Unlike software sprints that deliver incremental value, game milestones represent qualitative gates — each one answers a fundamentally different question about the project. Missing a milestone gate criteria is a signal that should trigger re-evaluation, not just a schedule adjustment. The discipline to enforce gate criteria is what separates shipped games from cancelled ones.
|
|
8
|
+
|
|
9
|
+
## Summary
|
|
10
|
+
|
|
11
|
+
### Standard Milestone Sequence
|
|
12
|
+
|
|
13
|
+
Game development follows a well-established milestone progression, though studios may rename or combine stages:
|
|
14
|
+
|
|
15
|
+
1. **Concept** — Is this idea worth exploring?
|
|
16
|
+
2. **Pre-Production / Prototype** — Can we prove the core is fun?
|
|
17
|
+
3. **Vertical Slice** — Can we build a representative slice at shippable quality?
|
|
18
|
+
4. **First Playable** — Does the full game structure work?
|
|
19
|
+
5. **Alpha (Feature Complete)** — Are all features implemented?
|
|
20
|
+
6. **Beta (Content Complete)** — Is all content in the game?
|
|
21
|
+
7. **Release Candidate** — Is the game ready to ship?
|
|
22
|
+
8. **Gold Master / Launch** — The game ships.
|
|
23
|
+
9. **Live / Post-Launch** — Ongoing support, patches, content updates.
|
|
24
|
+
|
|
25
|
+
### Feature Complete vs Content Complete
|
|
26
|
+
|
|
27
|
+
These terms are frequently confused and the distinction matters:
|
|
28
|
+
|
|
29
|
+
- **Feature Complete (Alpha)**: Every gameplay system, mechanic, and tool is implemented and functional. Art and audio may be placeholder. Balance is rough. Bugs are acceptable. The question answered: "Does everything work?"
|
|
30
|
+
- **Content Complete (Beta)**: All levels, assets, dialogue, music, and UI are in the game at final quality. No new content will be added — only polish, optimization, and bug fixes from here. The question answered: "Is everything here?"
|
|
31
|
+
|
|
32
|
+
### Content Lock vs Code Lock
|
|
33
|
+
|
|
34
|
+
- **Content Lock** occurs at Beta — no new art, audio, levels, or text enters the build
|
|
35
|
+
- **Code Lock** occurs at Release Candidate — no new code changes except critical bug fixes
|
|
36
|
+
- Violating these locks introduces regression risk and delays shipping
|
|
37
|
+
|
|
38
|
+
### Milestone-to-Task-Wave Mapping
|
|
39
|
+
|
|
40
|
+
Each milestone maps to a wave of tasks that should be planned, estimated, and tracked:
|
|
41
|
+
|
|
42
|
+
- **Concept**: Design tasks only (research, competitive analysis, pitch document)
|
|
43
|
+
- **Pre-Production**: Design + engineering prototype tasks (throwaway code is expected)
|
|
44
|
+
- **Vertical Slice**: Full-discipline tasks (design, engineering, art, audio) at final quality for one slice
|
|
45
|
+
- **Alpha**: Engineering-heavy tasks (implement all remaining systems), art production ramps up
|
|
46
|
+
- **Beta**: Content production-heavy tasks (level building, asset finalization, localization)
|
|
47
|
+
- **Release Candidate**: QA-heavy tasks (bug fixing, performance optimization, platform certification)
|
|
48
|
+
|
|
49
|
+
## Deep Guidance
|
|
50
|
+
|
|
51
|
+
### Milestone 1: Concept
|
|
52
|
+
|
|
53
|
+
**Duration**: 1-4 weeks
|
|
54
|
+
|
|
55
|
+
**Gate question**: "Is this idea worth investing in?"
|
|
56
|
+
|
|
57
|
+
**Gate criteria:**
|
|
58
|
+
- Written pitch document (1-3 pages) covering: genre, target audience, core hook, competitive landscape, platform targets
|
|
59
|
+
- Game pillars defined (3-5, phrased as "X over Y" tradeoffs)
|
|
60
|
+
- Core loop described at a high level
|
|
61
|
+
- Market analysis: who are the competitors, what is the opportunity, what is the differentiation
|
|
62
|
+
- Initial scope estimate: team size, timeline, budget range
|
|
63
|
+
- Key risks identified with mitigation strategies
|
|
64
|
+
|
|
65
|
+
**Documentation expected:**
|
|
66
|
+
- Pitch document
|
|
67
|
+
- Competitive analysis spreadsheet
|
|
68
|
+
- Initial risk register
|
|
69
|
+
|
|
70
|
+
**Go/No-Go signals:**
|
|
71
|
+
- Go: Clear differentiation, viable market, team capable of executing, budget available
|
|
72
|
+
- No-Go: Undifferentiated from competitors, market too small, team lacks critical skills, scope exceeds budget
|
|
73
|
+
|
|
74
|
+
### Milestone 2: Pre-Production / Prototype
|
|
75
|
+
|
|
76
|
+
**Duration**: 4-12 weeks
|
|
77
|
+
|
|
78
|
+
**Gate question**: "Is the core gameplay fun?"
|
|
79
|
+
|
|
80
|
+
**Gate criteria:**
|
|
81
|
+
- Playable prototype demonstrating the core loop (primary loop only)
|
|
82
|
+
- Prototype has been playtested by people outside the team
|
|
83
|
+
- Playtest feedback documented and analyzed
|
|
84
|
+
- Core loop validated as engaging: players voluntarily continue playing past the minimum test time
|
|
85
|
+
- Technical feasibility confirmed for highest-risk features
|
|
86
|
+
- Art style exploration complete with reference sheet or mood board
|
|
87
|
+
- Full GDD v1.0 written
|
|
88
|
+
|
|
89
|
+
**Documentation expected:**
|
|
90
|
+
- GDD v1.0
|
|
91
|
+
- Playtest reports (minimum 5 external testers)
|
|
92
|
+
- Technical feasibility assessment for top 3 risk items
|
|
93
|
+
- Art direction reference document
|
|
94
|
+
- Updated risk register
|
|
95
|
+
|
|
96
|
+
**Go/No-Go signals:**
|
|
97
|
+
- Go: Playtesters find the core loop engaging, technical risks are mitigable, art direction is clear
|
|
98
|
+
- No-Go: Core loop is not fun after iteration, a critical technical feature is infeasible, art direction is unresolved
|
|
99
|
+
|
|
100
|
+
**Critical rule**: The prototype is throwaway code. Do not carry prototype code into production. Its purpose is learning, not building.
|
|
101
|
+
|
|
102
|
+
### Milestone 3: Vertical Slice
|
|
103
|
+
|
|
104
|
+
**Gate question**: "Can we build this game at shippable quality?"
|
|
105
|
+
|
|
106
|
+
**Duration**: 8-16 weeks
|
|
107
|
+
|
|
108
|
+
This is the most important milestone in game development. The vertical slice is a small, complete section of the game built to final quality. It represents 5-15 minutes of gameplay that is indistinguishable from the final product in terms of polish, art quality, audio quality, and gameplay feel.
|
|
109
|
+
|
|
110
|
+
**Gate criteria:**
|
|
111
|
+
- One complete section/level/area at final visual quality
|
|
112
|
+
- All core mechanics functional and polished in this section
|
|
113
|
+
- Final-quality art, audio, and UI for this section
|
|
114
|
+
- Performance targets met on target hardware for this section
|
|
115
|
+
- Build is stable (no crashes during a 30-minute play session)
|
|
116
|
+
- External playtest confirms the experience matches the intended pillar delivery
|
|
117
|
+
|
|
118
|
+
**Documentation expected:**
|
|
119
|
+
- Updated GDD reflecting lessons from vertical slice
|
|
120
|
+
- Production pipeline documentation (how assets are created, reviewed, integrated)
|
|
121
|
+
- Technical design document for all major systems
|
|
122
|
+
- Performance benchmark report on target hardware
|
|
123
|
+
- Updated project plan with revised scope and schedule
|
|
124
|
+
|
|
125
|
+
**Go/No-Go signals:**
|
|
126
|
+
- Go: The vertical slice is fun, visually compelling, technically sound, and producible at a sustainable pace
|
|
127
|
+
- No-Go: The slice is not fun, visual quality is below target, production pipeline is too slow, performance is unacceptable
|
|
128
|
+
|
|
129
|
+
**Why the vertical slice matters**: It is the "is this fun?" gate. Everything before this was theory and prototyping. The vertical slice is the first moment the team sees the actual game. If the vertical slice is not compelling, the full game will not be compelling. This is the cheapest point to cancel or pivot.
|
|
130
|
+
|
|
131
|
+
```yaml
|
|
132
|
+
# Milestone Gate Checklist Template
|
|
133
|
+
# Copy and customize for each milestone review
|
|
134
|
+
|
|
135
|
+
milestone: "Vertical Slice"
|
|
136
|
+
date: "YYYY-MM-DD"
|
|
137
|
+
reviewers:
|
|
138
|
+
- name: ""
|
|
139
|
+
role: "Project Lead"
|
|
140
|
+
- name: ""
|
|
141
|
+
role: "Design Lead"
|
|
142
|
+
- name: ""
|
|
143
|
+
role: "Tech Lead"
|
|
144
|
+
- name: ""
|
|
145
|
+
role: "Art Lead"
|
|
146
|
+
|
|
147
|
+
gate_criteria:
|
|
148
|
+
gameplay:
|
|
149
|
+
- criterion: "Core loop playable end-to-end"
|
|
150
|
+
status: "pass | fail | partial"
|
|
151
|
+
notes: ""
|
|
152
|
+
- criterion: "All primary mechanics functional"
|
|
153
|
+
status: ""
|
|
154
|
+
notes: ""
|
|
155
|
+
- criterion: "External playtest completed (min 5 testers)"
|
|
156
|
+
status: ""
|
|
157
|
+
notes: ""
|
|
158
|
+
- criterion: "Playtest satisfaction score >= 7/10"
|
|
159
|
+
status: ""
|
|
160
|
+
notes: ""
|
|
161
|
+
|
|
162
|
+
technical:
|
|
163
|
+
- criterion: "Target framerate met (specify: 30/60 fps)"
|
|
164
|
+
status: ""
|
|
165
|
+
notes: ""
|
|
166
|
+
- criterion: "No crashes in 30-min session"
|
|
167
|
+
status: ""
|
|
168
|
+
notes: ""
|
|
169
|
+
- criterion: "Memory budget met on target platform"
|
|
170
|
+
status: ""
|
|
171
|
+
notes: ""
|
|
172
|
+
- criterion: "Load times within target (specify seconds)"
|
|
173
|
+
status: ""
|
|
174
|
+
notes: ""
|
|
175
|
+
|
|
176
|
+
art_audio:
|
|
177
|
+
- criterion: "Final-quality art for slice content"
|
|
178
|
+
status: ""
|
|
179
|
+
notes: ""
|
|
180
|
+
- criterion: "Final-quality audio for slice content"
|
|
181
|
+
status: ""
|
|
182
|
+
notes: ""
|
|
183
|
+
- criterion: "UI mockups approved for all screens"
|
|
184
|
+
status: ""
|
|
185
|
+
notes: ""
|
|
186
|
+
|
|
187
|
+
production:
|
|
188
|
+
- criterion: "Asset pipeline documented and tested"
|
|
189
|
+
status: ""
|
|
190
|
+
notes: ""
|
|
191
|
+
- criterion: "Content production rate is sustainable"
|
|
192
|
+
status: ""
|
|
193
|
+
notes: ""
|
|
194
|
+
- criterion: "Updated schedule based on actual velocity"
|
|
195
|
+
status: ""
|
|
196
|
+
notes: ""
|
|
197
|
+
|
|
198
|
+
decision: "go | no-go | conditional-go"
|
|
199
|
+
conditions: "" # If conditional-go, what must be resolved and by when
|
|
200
|
+
next_milestone: "First Playable"
|
|
201
|
+
next_review_date: "YYYY-MM-DD"
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### Milestone 4: First Playable
|
|
205
|
+
|
|
206
|
+
**Duration**: 8-20 weeks after vertical slice
|
|
207
|
+
|
|
208
|
+
**Gate question**: "Does the full game structure work?"
|
|
209
|
+
|
|
210
|
+
**Gate criteria:**
|
|
211
|
+
- Complete game flow from start to finish (even if many sections use placeholder content)
|
|
212
|
+
- All primary and secondary gameplay systems implemented (may use placeholder art/audio)
|
|
213
|
+
- Save/load functional
|
|
214
|
+
- All game modes playable (single-player, multiplayer modes if applicable)
|
|
215
|
+
- Menu flow complete (main menu, settings, pause, game over)
|
|
216
|
+
- Build runs on all target platforms (does not need to meet final performance targets)
|
|
217
|
+
|
|
218
|
+
**Documentation expected:**
|
|
219
|
+
- Complete level/mission list with status (placeholder/WIP/final)
|
|
220
|
+
- System design documents for all gameplay systems
|
|
221
|
+
- Platform-specific technical notes
|
|
222
|
+
- Updated content production schedule
|
|
223
|
+
|
|
224
|
+
### Milestone 5: Alpha (Feature Complete)
|
|
225
|
+
|
|
226
|
+
**Duration**: 12-30 weeks after first playable
|
|
227
|
+
|
|
228
|
+
**Gate question**: "Are all features implemented?"
|
|
229
|
+
|
|
230
|
+
**Gate criteria:**
|
|
231
|
+
- Every feature in the approved scope is implemented and functional
|
|
232
|
+
- No major systems are missing — this is the last point to add new features
|
|
233
|
+
- All difficulty levels/modes are playable
|
|
234
|
+
- Multiplayer networking is functional (if applicable)
|
|
235
|
+
- Platform-specific features implemented (achievements, save systems, controller support)
|
|
236
|
+
- All UI screens implemented (final art not required)
|
|
237
|
+
- Localization pipeline is functional (all strings are externalized)
|
|
238
|
+
- Automated test coverage for critical gameplay systems
|
|
239
|
+
|
|
240
|
+
**Documentation expected:**
|
|
241
|
+
- Feature completion matrix (every feature rated: implemented/functional/polished)
|
|
242
|
+
- Known issues list (bugs are expected; they should be categorized by severity)
|
|
243
|
+
- Performance baseline report
|
|
244
|
+
- Localization readiness report
|
|
245
|
+
|
|
246
|
+
**Critical rule**: No new features after Alpha. Feature requests after Alpha are deferred to post-launch or DLC. Scope discipline here determines whether the project ships on time.
|
|
247
|
+
|
|
248
|
+
### Milestone 6: Beta (Content Complete)
|
|
249
|
+
|
|
250
|
+
**Duration**: 8-16 weeks after alpha
|
|
251
|
+
|
|
252
|
+
**Gate question**: "Is all content in the game?"
|
|
253
|
+
|
|
254
|
+
**Gate criteria:**
|
|
255
|
+
- All levels, missions, and encounters are in the game at final quality
|
|
256
|
+
- All art assets are final (no more placeholder art)
|
|
257
|
+
- All audio assets are final (music, SFX, voice acting)
|
|
258
|
+
- All text and dialogue are final and localized
|
|
259
|
+
- All cinematics and cutscenes are final
|
|
260
|
+
- Difficulty balance pass complete
|
|
261
|
+
- First-time user experience (FTUE) / tutorial is complete
|
|
262
|
+
- Platform certification pre-check passes (no certification blockers)
|
|
263
|
+
|
|
264
|
+
**Documentation expected:**
|
|
265
|
+
- Content completion matrix (every asset rated: draft/WIP/final)
|
|
266
|
+
- Localization status by language
|
|
267
|
+
- Balance spreadsheet with tuning parameters
|
|
268
|
+
- Certification pre-check report
|
|
269
|
+
|
|
270
|
+
**Critical rule**: Content lock. No new content after Beta. Only bug fixes, optimization, and polish.
|
|
271
|
+
|
|
272
|
+
### Milestone 7: Release Candidate
|
|
273
|
+
|
|
274
|
+
**Duration**: 4-8 weeks after beta
|
|
275
|
+
|
|
276
|
+
**Gate question**: "Is the game ready to ship?"
|
|
277
|
+
|
|
278
|
+
**Gate criteria:**
|
|
279
|
+
- Zero critical (crash) bugs
|
|
280
|
+
- Zero high-severity gameplay-blocking bugs
|
|
281
|
+
- Performance targets met on all target platforms
|
|
282
|
+
- Platform certification requirements met (console TRCs/XRs, platform store requirements)
|
|
283
|
+
- All legal and ratings requirements met (ESRB, PEGI, age gates)
|
|
284
|
+
- Day-one patch scope defined (if applicable)
|
|
285
|
+
- Server infrastructure tested at expected launch load (if applicable)
|
|
286
|
+
|
|
287
|
+
**Documentation expected:**
|
|
288
|
+
- Bug database with all issues triaged and either fixed or deferred-to-patch
|
|
289
|
+
- Final performance report per platform
|
|
290
|
+
- Certification submission checklist
|
|
291
|
+
- Launch day operations plan
|
|
292
|
+
|
|
293
|
+
### Milestone 8: Gold Master / Launch
|
|
294
|
+
|
|
295
|
+
**Gate question**: "Ship it?"
|
|
296
|
+
|
|
297
|
+
**Gate criteria:**
|
|
298
|
+
- Release Candidate approved by all leads
|
|
299
|
+
- Platform certification passed
|
|
300
|
+
- Store pages finalized (descriptions, screenshots, trailers)
|
|
301
|
+
- Marketing materials ready
|
|
302
|
+
- Community/support infrastructure ready (forums, bug reporting, social media)
|
|
303
|
+
- Day-one patch built and tested (if applicable)
|
|
304
|
+
|
|
305
|
+
### Milestone 9: Live / Post-Launch
|
|
306
|
+
|
|
307
|
+
This is not a single gate but an ongoing phase. Key activities:
|
|
308
|
+
|
|
309
|
+
- Monitor crash reports, player feedback, and telemetry
|
|
310
|
+
- Release hotfix patches for critical issues within 24-72 hours
|
|
311
|
+
- First content update within 4-8 weeks to maintain player engagement
|
|
312
|
+
- Roadmap communication to community
|
|
313
|
+
- Live service operations (if applicable): seasons, battle passes, events, balance patches
|
|
314
|
+
|
|
315
|
+
### Milestone Duration by Project Scale
|
|
316
|
+
|
|
317
|
+
| Milestone | Indie (6-18 mo) | AA (18-36 mo) | AAA (36-60+ mo) |
|
|
318
|
+
|-----------|:--:|:--:|:--:|
|
|
319
|
+
| Concept | 1-2 wk | 2-4 wk | 4-8 wk |
|
|
320
|
+
| Pre-Production | 2-4 wk | 4-12 wk | 8-24 wk |
|
|
321
|
+
| Vertical Slice | 4-8 wk | 8-16 wk | 12-24 wk |
|
|
322
|
+
| First Playable | 4-8 wk | 8-16 wk | 16-32 wk |
|
|
323
|
+
| Alpha | 4-12 wk | 12-24 wk | 24-52 wk |
|
|
324
|
+
| Beta | 2-4 wk | 4-12 wk | 12-24 wk |
|
|
325
|
+
| Release Candidate | 1-2 wk | 2-4 wk | 4-8 wk |
|
|
326
|
+
|
|
327
|
+
### Common Milestone Anti-Patterns
|
|
328
|
+
|
|
329
|
+
**The Phantom Alpha**: The team declares "Alpha" but entire systems are still being designed. If features are still being added, it is not Alpha — it is still in production. Mislabeling milestones gives false schedule confidence.
|
|
330
|
+
|
|
331
|
+
**The Never-Ending Beta**: Content keeps being added after Beta because "just one more thing." Every addition resets QA testing. Content lock means content lock.
|
|
332
|
+
|
|
333
|
+
**The Missing Vertical Slice**: Skipping the vertical slice to "save time" and jumping straight to full production. This is the single most common cause of game cancellations — the team discovers the game is not fun only after spending most of the budget.
|
|
334
|
+
|
|
335
|
+
**Gate Criteria Inflation**: Making gates so strict that nothing passes, or so loose that everything passes. Gates should be difficult but achievable — their purpose is to catch real problems, not to create bureaucracy.
|
|
336
|
+
|
|
337
|
+
**The Orphan Milestone**: Defining milestones without assigning ownership for the gate review. Every milestone needs a named reviewer with authority to enforce the go/no-go decision.
|