# Foldwake — Game Design Document v0.1

## Source and Truth Labels

This document is the authoritative player-facing contract for concept `foldwake`. The owner brief is CONFIRMED. Rules, UX, scope, cost, and content counts in this document are DESIGN TARGETS until prototype or player evidence exists. Originality, audience demand, retention, CPI, and revenue are UNKNOWN here and must be assessed only in later gates. The defining promise is: fold a nautical chart, change its topology, and rescue every lantern boat.

## Player Promise and Audience

Foldwake is a premium-feeling portrait spatial puzzle for mobile players who enjoy short, thoughtful sessions and visible cause and effect. The player becomes a chartkeeper who literally reshapes a paper sea during a storm. A session lasts 45–120 seconds; the first session delivers a real fold, a rescued boat, and a completed map page within two minutes. The primary audience is puzzle players aged 13+ who like elegant one-input games, tactile materials, and deterministic retries rather than timers or twitch execution.

## Fantasy, Promise, Audience, and Genre

Genre: deterministic spatial transformation puzzle. Fantasy: calmly reshape a living chart to guide fragile lantern boats home. Store promise: every crease rescues or endangers something now and permanently changes the geometry of what can happen next. `ENV-CHART` is the playable paper archipelago; `ENV-STORM` frames urgency without adding a timer; `ENV-ATLAS` holds completed level pages.

## Design Pillars and Non-Goals

1. `P-TOPOLOGY`: every committed `M-FOLD` must alter later legal spatial relationships, not merely play an animation.
2. `P-LEGIBLE`: `M-PREVIEW` exposes the moving half, overlap cells, resolution order, and projected consequences before release.
3. `P-ONE-THUMB`: all core play fits one portrait hand with no multi-touch requirement.
4. `P-FAIR`: no random outcomes, hidden collision priorities, energy timers, forced ads, or paid reasoning bypasses.
5. `P-PAPER`: tactile paper depth supports readability; decoration never hides symbols or fold boundaries.

Non-goals: visual-novel structure, branching dialogue, combat, freeform origami, decorative fold-a-picture play, physics randomness, base building, gacha, multiplayer, or live-service dependencies.

## Design Pillars

`P-TOPOLOGY`, `P-LEGIBLE`, `P-ONE-THUMB`, `P-FAIR`, and `P-PAPER` are release invariants. If testing shows the game is satisfying only when a fold does not change future topology, or when hints solve decisions for the player, the concept must be revised rather than padded with content.

## Player-Facing Fingerprint

- Input: drag a horizontal or vertical `UI-CREASE-RAIL`, inspect `M-PREVIEW`, release to commit `M-FOLD`.
- Decision: select crease, moving side, and fold order that rescues now without destroying future routes.
- Objective: overlap each `E-BOAT` with its matching `E-HARBOR` within the crease budget.
- Failure: `E-BOAT` overlaps `E-REEF`, two boats overlap, a boat leaves the surviving chart, or no crease remains.
- State change: `M-RESOLVE` shrinks the board, changes adjacency and layer order, rotates affected `E-TIDE`, removes rescued boats, and decrements the budget.
- Progression: five six-level chapters add paired boats, reefs, tides, locked edges, and ordered rescues.
- Content: authored start layouts generated from a small deterministic tile grammar.
- Presentation: top-down 2D cut paper, indigo sea, warm boats, coral hazards, cyan crease previews.
- Metagame: completed maps restore pages in `ENV-ATLAS`; no power stats or upgrade grind.

## Core Loop and Player Verbs

Read the remaining boats and crease budget → drag `UI-CREASE-RAIL` to preview `M-PREVIEW` → move across legal crease positions and switch the folding side → release to commit `M-FOLD` → watch the fixed `M-RESOLVE` order → continue, succeed, fail, or invoke `M-RETRY`.

Legal verbs are inspect, drag, choose side, cancel before release, commit, pause, retry, and advance. Undo after a committed fold is not available in the base rules because permanence is the central consequence. `UI-PRIMARY` advances or retries; `UI-MODAL` owns pause and confirmations; `UI-TOPBAR` presents level, remaining boats, and creases.

## Camera, Dimension, and Controls

The product uses portrait-only 2D with a fixed orthographic top-down camera and a 360×800 logical canvas. The full live `ENV-CHART` remains visible between `UI-TOPBAR` and the lower thumb zone. One-finger drag begins on a legal `UI-CREASE-RAIL`, crossing the crease chooses the moving side, returning to origin or lifting outside cancels, and release on a valid preview commits. Gameplay never uses camera rotation, pan, zoom, multi-touch, free-angle input, or perspective-dependent adjacency.

## Deterministic Rules

1. A level starts on an even-width or even-height rectangular `ENV-CHART` grid. Each cell contains at most one base tile plus at most one occupant or marker.
2. A legal crease lies only between complete rows or columns. Locked edges disable creases crossing their lock icon.
3. During `M-PREVIEW`, the player chooses the moving side. The moving half mirrors across the crease onto the stationary half. No state mutates before release.
4. On release, resolution occurs cell by cell from nearest to farthest from the crease, then reading order top-to-bottom and left-to-right.
5. Moving `E-TIDE` arrows rotate 180 degrees with the fold. Stationary arrows do not rotate.
6. `E-BOAT` + matching `E-HARBOR` = rescue; both occupant and harbor beacon become a completed seal.
7. `E-BOAT` + nonmatching harbor = neutral stack; the boat remains active on top.
8. `E-BOAT` + `E-REEF`, boat + boat, or any boat landing beyond the stationary footprint = immediate failure.
9. Empty chart and decoration can stack without gameplay effect. `E-REEF` remains hazardous on any visible top layer.
10. After resolution, the moving half is removed from logical dimensions, the crease budget decrements once, and input unlocks.
11. If no active boat remains, enter `ST-SUCCESS`. If an immediate hazard resolved or budget reaches zero with boats remaining, enter `ST-FAILURE`. Otherwise enter `ST-ACTIVE` on the smaller board.
12. There is no randomness. Identical start state and input sequence produce byte-identical state logs.
13. Android/system back while active opens `ST-PAUSED`; back on an overlay closes it; back from home requests exit. Interruptions auto-pause.
14. `M-RETRY` restores the exact authored start state in under 500 ms. A pre-release drag can be cancelled by returning to its origin or lifting outside the valid rail.

## Failure, Consequence, and State Change

Every accepted fold is a permanent state transition inside the attempt. Its three consequences are visible: the chart bounds contract, overlapped pieces resolve, and the crease counter decreases. `V-FOLD` shows the moving paper with a restrained 280 ms hinge animation; `V-RESCUE` produces a warm ring and lantern chime; `V-WRECK` uses a coral crack, double-pulse outline, and low thud. Failure explains the exact rule in plain language, highlights the decisive cells for two seconds, then offers `M-RETRY`. Success uses `V-SUCCESS` and shows the final compact chart becoming an atlas page.

## Progression and Content Grammar

Launch scope is 30 authored levels in five chapters: Safe Harbor (single boat, 4×4), Crosswinds (two boats and matching symbols), Sharp Water (reefs), Turning Tide (rotating `E-TIDE`), and Last Crease (locked edges and rescue order). Difficulty variables are grid size, foldable axes, crease budget, pair count, hazard density, tide rotation, locks, solution depth, and decoy safe folds. Each level has at least one verified solution and no more than eight legal previews at any state. Three optional badges reward no-cancel completion, par creases, and all-symbol inspection; badges never affect power.

The content pipeline serializes grid, layers, entities, locks, budget, tutorial callouts, and canonical solution. A solver verifies solvability, detects alternative solutions, and estimates branching. The launch target is 30 levels; 60 additional layouts are a post-validation possibility, not a launch promise.

## State and Content Inventory

The nine screen IDs are `SCR-ONBOARDING`, `SCR-HOME`, `SCR-GAMEPLAY`, `SCR-PAUSE`, `SCR-SUCCESS`, `SCR-FAILURE`, `SCR-SETTINGS`, `SCR-ACCESSIBILITY`, and `SCR-LEGAL`. Important runtime states are `ST-FRESH`, `ST-ACTIVE`, `ST-PAUSED`, `ST-SUCCESS`, `ST-FAILURE`, and `ST-ERROR`. Systemic content uses `M-FOLD`, `M-PREVIEW`, `M-RESOLVE`, `M-RETRY`; `E-BOAT`, `E-HARBOR`, `E-REEF`, `E-TIDE`, `E-CREASE`; and `ENV-CHART`, `ENV-STORM`, `ENV-ATLAS`. This is the full launch visual inventory; adding another mechanic or entity requires a GDD revision and repeat audit.

## Difficulty, Progression, and Economy

Difficulty rises through consequence depth rather than speed. Chapter one teaches one rule per screen; chapter two asks pair ordering; chapter three introduces lethal overlaps; chapter four changes orientation; chapter five combines established rules. Completing a level restores one `ENV-ATLAS` page and awards up to three cosmetic stamps. Stamps only unlock alternate paper palettes that preserve semantic colors and patterns. No consumable currency exists.

## First Session and FTUE

`SCR-ONBOARDING` opens directly on a two-cell instructional chart with one boat and harbor. A ghost crease demonstrates direction once, then waits. The first committed fold uses the real rules. Success transitions to `SCR-HOME`, where level two is prominent. The tutorial can be skipped from a clearly labeled control and replayed from `SCR-SETTINGS`. Hints explain a rule or highlight a viable crease family; they never execute a move. First-launch consent and legal links remain accessible without blocking offline play.

## Economy and Monetization Boundaries

The base test build has no ads or purchases. A future commercial build may use either a single premium unlock after a free chapter or opt-in rewarded hints, subject to evidence and store review. It must not combine both at launch, sell solutions, use forced interstitials, energy, loot boxes, artificial wait timers, streak loss, manipulative scarcity, or purchases aimed at children. Purchase restoration, regional price disclosure, consent, and parental gates are mandatory if monetization is added.

## Monetization Constraints

Monetization cannot alter `M-FOLD`, `M-PREVIEW`, `M-RESOLVE`, failure rules, crease budgets, or canonical level solutions. `UI-PRIMARY` may show “Unlock full atlas” only after chapter one and never on `ST-FAILURE`. Analytics and ads default off until consent where legally required.

## UX, Accessibility, Audio, and VFX

Required screens are `SCR-ONBOARDING`, `SCR-HOME`, `SCR-GAMEPLAY`, `SCR-PAUSE`, `SCR-SUCCESS`, `SCR-FAILURE`, `SCR-SETTINGS`, `SCR-ACCESSIBILITY`, and `SCR-LEGAL`. Required important states are `ST-FRESH`, `ST-ACTIVE`, `ST-PAUSED`, `ST-SUCCESS`, `ST-FAILURE`, and `ST-ERROR`.

Portrait safe areas reserve 24 logical pixels around cutouts and 16 around controls. Touch targets are at least 48×48 logical pixels. `A-COLOR` pairs every semantic color with silhouette, icon, and texture; `A-MOTION` replaces folds with a 100 ms crossfade and disables camera drift; `A-TEXT` supports 100%, 125%, and 150% UI type without covering the board; `A-HAPTIC` separates preview tick, commit, rescue, and failure and can disable all vibration. Audio groups are music, ambience, effects, and haptics. `UI-TOGGLE` exposes individual settings. No VFX flashes more than three times per second; storm lightning remains decorative, low contrast, and disabled in reduced motion.

## UX and Accessibility

`UI-TOPBAR` stays above the chart and never overlaps the fold surface. `UI-CREASE-RAIL` has arrowheads and hatch patterns so fold direction is never color-only. `UI-PRIMARY` remains in the lower thumb zone. `UI-MODAL` traps focus, closes with back, and never hides the reason for failure. `SCR-ACCESSIBILITY` is reachable from first launch and settings. `ST-ERROR` preserves the level state and offers retry or safe return home.

## Audio and VFX

`V-FOLD` is a soft paper hinge with a quiet fiber scrape; `V-RESCUE` is a 350 ms lantern ring with paired bell and light haptic; `V-WRECK` is a non-flashing coral fracture with low thud and two heavy pulses; `V-SUCCESS` is a restrained upward lantern trail into `ENV-ATLAS`. Audio confirms but never replaces symbols or text. The runtime budget is 24 simultaneous particles, one full-screen overlay, and no post-processing required.

## Technical Constraints

Target iOS 16+ and Android 10+ phones, 60 fps on a 2019 mid-tier device, 30 fps fallback, under 150 MB installed, under 250 MB peak memory, and under two seconds cold-to-home after first load. Core play is offline. Cloud save and analytics are optional adapters and may fail without blocking play. State is integer-grid deterministic; a replay consists of level ID plus ordered crease index and moving side. No gameplay physics engine, account, server authority, or generative runtime dependency is allowed.

## Analytics and Technical Constraints

Local QA records tutorial start/complete/skip, level start, preview count, preview cancel, fold commit, failure rule, retry, success, solution length, elapsed time, accessibility settings, and frame-time buckets. Production telemetry requires consent and coarse event data only; no free-text or precise location. Acceptance builds must prove deterministic replay across 1,000 generated sequences and visual layout at 360×800 logical portrait resolution.

## Risks, Falsifiers, and Acceptance Criteria

Top risks are similarity to decorative paper-fold games, unreadable layer depth, preview solving too much, content exhaustion, and mismatch between generated art and the actual rule system. Kill or redesign if at least 6 of 10 unfamiliar target players describe the core as “just fold the picture,” fewer than 7 of 10 correctly predict a boat/reef consequence after the tutorial, median level-three completion exceeds five minutes, or the solver cannot produce 30 distinct validated layouts without a new verb. Do not compensate with meta progression before resolving the core.

## Risks and Falsifiers

Originality must survive live comparison at the dominant-loop and consequence-structure layers. Market appeal is not assumed by elegance. The fold preview fails if players commit accidental sides, the paper style fails if hazards disappear against decoration, and the content plan fails if authored levels collapse to repeated mirrored solutions. Each is an explicit return-to-GDD trigger.

## Acceptance Criteria

- Given any authored state, `M-PREVIEW` displays the exact cells, moving side, rotated `E-TIDE`, rescue, and hazard results that `M-RESOLVE` will produce.
- A committed `M-FOLD` cannot leave logical width/height unchanged and always decrements the budget once.
- `E-BOAT`/`E-HARBOR`, `E-REEF`, collision, off-chart, budget, `ST-SUCCESS`, and `ST-FAILURE` rules pass deterministic unit tests.
- Every required screen and important state is represented in UX and the Art Bible with standalone portrait evidence.
- All interactive targets meet 48×48, safe areas remain clear at 360×800, semantic states pass non-color inspection, and reduced motion removes hinge rotation.
- Ten unfamiliar users complete the tutorial; at least seven predict the next fold consequence, and at least six request another level without prompting.
- No HTML prototype begins until the owner accepts the complete GDD-bound Art Bible and a manual Codex design lock binds its package hash.
