The game doesn't work without it.
The 6-Section
GDD Template
Fill in these 6 sections before you write a single line of code. This is the same structure I've used on 800+ Unity projects, and it has saved more games than any technical skill I have.
How to use it
Make a copy, replace every [bracketed] prompt with your own answer, and delete the example lines. If you can't fill a section, that's not a gap in the document — it's a gap in the game. Solve it now, while it's cheap.
Project meta
| Field | Your answer |
|---|---|
| Game title | [Working title] |
| Genre | [e.g. casual puzzle, endless runner, idle tycoon] |
| Platforms | [iOS / Android / PC / WebGL] |
| Target player | [Who plays this, and where — commute, couch, desk] |
| Session length | [e.g. 2–5 minutes] |
| Engine & version | [e.g. Unity 2022.3 LTS] |
| Document version | [v1.0 – date] |
Core loop in one sentence
If you can't describe what the player does every 30 seconds in one sentence, the game isn't designed yet. Every feature later in this document must serve this loop.
Formula
The player [action] to earn [reward], which they spend on [upgrade], so they can [harder or bigger action].
Your core loop
[Write it here — one sentence, no commas allowed if you can manage it]
Example
The player completes jigsaw levels to earn coins, which they spend on hints and new puzzle packs, so they can tackle bigger, harder puzzles.
Answer these before moving on
- What does the player do in the first 10 seconds?
- What makes them start a second session tomorrow?
- What is the fail state, and what happens right after it?
Feature list with priorities
List every feature, then rank it honestly. Scope creep starts when nobody wrote down what was optional.
Big impact, but launch can happen without it.
Post-launch update material.
| Feature | Priority | Serves the core loop how? | Est. days |
|---|---|---|---|
| [e.g. Level select screen] | P0 | [Player picks next challenge] | [2] |
| [e.g. Daily reward] | P1 | [Brings player back tomorrow] | [1] |
| [e.g. Leaderboards] | P2 | [Social competition] | [3] |
| [Feature] | [P0/P1/P2] | [ ] | [ ] |
| [Feature] | [P0/P1/P2] | [ ] | [ ] |
Rule of thumb: if more than 40% of your list is P0, you're lying to yourself. Cut again.
Item counts and upgrade formulas
Write down exact numbers. “Some levels and a few characters” can't be estimated, built or balanced. “60 levels, 6 characters, 10 upgrade tiers” can.
| Content type | Count at launch | Count post-launch | Notes |
|---|---|---|---|
| Levels / stages | [e.g. 60] | [+20 per update] | [e.g. 5 worlds × 12 levels] |
| Characters / vehicles | [ ] | [ ] | [Free vs. paid split] |
| Upgrades / tiers | [ ] | [ ] | [ ] |
| Currencies | [e.g. 2 — coins + gems] | [ ] | [Soft vs. hard] |
| Enemies / obstacles | [ ] | [ ] | [ ] |
Upgrade cost formula — define it now, tune it later
Costn = BaseCost × Multipliern−1
Your values: BaseCost = [e.g. 100 coins] · Multiplier = [e.g. 1.15] · Max level = [e.g. 20]
Earn-rate check: average coins per session = [ ] → sessions needed for the next upgrade = [ ]. If the answer is more than 3–4 sessions early on, players will quit before they feel progress.
Monetization architecture
Monetization bolted on after launch kills retention. Design it here, alongside the loop, so ads and purchases feel like part of the game.
| Placement | Ad / IAP type | Trigger | Frequency cap | Player benefit |
|---|---|---|---|---|
| After level complete | Interstitial | [Level won] | [e.g. every 2–3 levels] | — |
| Loss / fail screen | Rewarded video (opt-in) | [Player chooses “Watch to continue”] | [ ] | [Extra life / continue] |
| Hint button | Rewarded video (opt-in) | [Player taps hint] | [ ] | [Free hint] |
| Main menu | Banner | [Menu open] | Menus only — never in gameplay | — |
| Shop | IAP | [ ] | — | [e.g. Remove ads, coin packs] |
Three rules that protect retention
- Interstitials only at natural breaks — after a level ends, never mid-play.
- Rewarded ads are always the player's choice. “Watch to continue” converts far better than forced ads.
- Banners stay on menus. A banner over gameplay costs you more in churn than it earns.
Your revenue model
[Ads only / IAP only / Hybrid] — Why: [ ]
Screen wireframes
List every screen and sketch it — paper, Figma, anything. Boxes and labels are enough. Every screen you forget here becomes a surprise in week 6.
| Screen | Key elements (buttons, info shown) | Leads to | Wireframe link |
|---|---|---|---|
| Splash / loading | [Logo, progress bar] | Main menu | [link] |
| Main menu | [Play, Shop, Settings, banner slot] | Level select, Shop, Settings | [link] |
| Level select | [ ] | Gameplay | [link] |
| Gameplay HUD | [Score, timer, pause, hint] | Pause, Win, Lose | [link] |
| Win screen | [Stars, reward, next level] | Next level, Main menu | [link] |
| Lose screen | [Retry, “Watch to continue”] | Gameplay, Main menu | [link] |
| Shop | [ ] | Main menu | [link] |
| Settings | [Music, SFX, language, restore purchases] | Main menu | [link] |
Check: can a player reach every screen and get back to the main menu? Trace each path once before development starts.
Budget breakdown by milestone
Split the project into milestones that each end with something playable. Pay and review per milestone — it keeps both sides honest and catches problems while they're cheap.
| Milestone | Deliverable (playable) | Duration | Budget | Acceptance criteria |
|---|---|---|---|---|
| M1 — Prototype | [Core loop playable with placeholder art] | [e.g. 2 weeks] | [ ] | [Loop is fun in a 2-minute test] |
| M2 — Vertical slice | [1 world/level set at final quality] | [ ] | [ ] | [ ] |
| M3 — Content complete | [All P0 features + all launch content] | [ ] | [ ] | [ ] |
| M4 — Monetization + polish | [Ads, IAP, UI polish, sounds] | [ ] | [ ] | [ ] |
| M5 — Launch | [Store builds, bug fixes, submission] | [ ] | [ ] | [ ] |
| Total | [ ] | [ ] |
Buffer: add 15–20% to the total for the things nobody planned for. Something always comes up.
Before you write code
- Core loop fits in one sentence
- Under 40% of features are P0
- Every content type has a number
- Upgrade costs and earn rate are written down
- Every ad placement has a trigger and a frequency cap
- Every screen is sketched and connected
- Every milestone ends with something playable
All ticked? Now open Unity.