CAMPAIGNS & PROGRESSION TREE — three heroes, one world
STATUS: NEW — game-only structural spec. Defines the progression pipeline: a branching region-tree the
player travels, three playable campaigns that start in different parts of the same world, road-gating that
keeps it explorable-but-directed, the convergence at the Ministry, and the **progression-level enemy-scaling
algorithm**. Canon: ZONES.md, GAME1-ALIGNMENT.md, QUESTS.md, BALANCE.md, STARBORNE-VISION.md (the 12-medal spine).
See the rendered "Progression Tree" diagram. Additive; never delete.
0. THE TREE MODEL (explorable, not a corridor)
Think of the world as a tree, not a line:
- Trunk = the main expected chain of regions for that campaign (the story spine).
- Branches = roads. Most are short side branches (optional); a few are bigger.
- Leaves = cities/regions you arrive at.
- The player can wander side branches freely, but the trunk is gated: to take the next trunk road you must either
(a) hold a thing you obtained there (a Veil Medal / key item — its verb literally opens the way), or
(b) clear an objective that lifts a road blockage (a fallen bridge, a counting-storm, a sealed gate that
only opens when the region's beat is done).
- So progression is directed but loose: always a clear next goal, always optional detours for loot/quests/lore.
- Side branches feed the RANDOM layer (ZONES.md): minor cities, quest-buildings, resource pockets — skippable.
1. THE THREE CAMPAIGNS (same world, different seat)
Each is its own playable campaign with its own start point, scenario emphasis, and signature mechanic, sharing
the same map and the same 12-medal goal. (GoT-style: the same events seen from a different seat — what one plays, the
other two are NPCs.)
A. Lyra & Gideon — the hunted family. Start: Hearthvale (meadow/thorn, west). The spiritual spine; survive
the taking, forge, flee, chase medals east. Swap: Lyra ⇄ Gideon (existing dual-hero swap — child/seer + smith/father).
B. Balkan & Hakon — the North's stand. Start: Eisengrave/Frostmere (frost, north). War & holdfasts; hold the
line, carry the warning, win the cold medals. Swap: Balkan ⇄ Jarl Hakon (son + warlord father; heavier, martial feel).
C. Gael & Wild Animals — the metamorph in the wood. Start: the Whispering Forest (raven/thorn). Infiltration
& the Order. Signature mechanic: Gael can SWAP CONTROL into special wild animals — possess a scout-bird (range/
recon), a wolf (speed/combat), a burrower (reach hidden paths). The animal is his traversal/stealth toolkit; some
gated branches only open while piloting the right beast.
All three: start at the cabin/holdfast door of their home region, same forced opening (spawn safe, learn the
loop), then branch outward. Structurally similar (trunk + gates + medals), scenically distinct (different home,
different roads emphasized, different signature mechanic).
2. GATING (per region — how a road opens)
Each region's exit toward the trunk is blocked until its beat is met. Two gate types:
- KEY-GATE — the region's Veil Medal / key item (won ~70% into its dungeon, ZONES §2) has a verb that opens
the road: Lantern sears a dark pass, Frostbrand crosses the ice-ledger, Tide Whistle stills a flood, etc.
- OBJECTIVE-GATE — a road blockage (counting-storm, salted bridge, sealed Ministry checkpoint) that clears
when an objective completes (free the village, ring the true bell, break the auditor's tally).
Side branches are ungated (free to explore). Only trunk roads gate. A blocked trunk road shows a clear,
diegetic marker (chain, storm-wall, grey-coat checkpoint) + the requirement on approach — never a dead end with no hint.
3. CONVERGENCE — the Ministry (Concordia)
All three campaigns end at Concordia, the Ministry (far east, the final town). Its door is **sealed until 12/12
Veil Medals are bound (the Pokémon payoff). At the threshold, the two heroes you did NOT pick appear as NPCs and
open the door** for you (e.g. play Lyra → Balkan & Gael work the seal; play Balkan → Lyra & Gael; play Gael → Lyra &
Balkan). Then the finale: the descent to the Veil's Mouth and Evil Alex. The three campaigns are the same war won
from three seats; they literally unlock each other at the end.
4. ENEMY SCALING — by PROGRESSION LEVEL, not strict region
Enemies scale to how far the player has come, so a region reads right whether reached early or late, and the three
campaigns (which overlap the map differently) stay fair.
- Progression Level P =
medals*2 + trunkObjectivesCleared + floor(playerLevel/3). (Medals weigh most — they are
the true milestones.) P grows ~0→26 across a campaign.
- Scale multiplier
T = 1 + 0.075 * P(replaces/augments the current day-basedT). - Per-region band: each region declares a floor and ceiling P (from
zones[].tier, BALANCE.md). Effective
enemy stat = clamp(base T, base(1+0.075floorP), base(1+0.075*ceilP)). So a frost region you wander into early
won't be trivial, and one you backtrack to late won't be a pushover — but it never spikes past its band.
- Bosses: fixed to their dungeon tier (not P-scaled) — they are checks, gating the medal.
- Multi-campaign convergence: regions shared by trunks use the higher band, and the final approach to Concordia
assumes near-max P regardless of route. Record floor/ceil P per zone in zones[] (gamedata).
4b. REVISION — coherent spawns & survival (in-game 2026-06-29)
- Lyra & Gideon — spawn EAST, a meadow by the woods; farming survival. Gideon now levels up (no longer fixed-stat).
- Balkan & Astrid — Astrid, a strong barbarian woman, replaces the elder Jarl Hakon. Both start level 15. Spawn
NORTH in snow; survival by the hunt (a camp + campfire for warmth, no farm).
- Gael & Bran — Gael starts bonded to his eagle, Bran (his first controllable animal; he can possess other
special wild beasts too). Spawn SOUTH, inside a treehouse in the forest; survive by foraging berries, a
small forest farm, and hunting.
- Each start paints its local biome (meadow / snow / forest) so terrain matches the book; homes relocated off the old
city grid. Roster anchor/ward: Lyra{Gideon/Lyra} · Balkan{Astrid/Balkan} · Gael{Bran/Gael}.
5. WHAT THE WORKERS BUILD (added to INTEGRATION-BACKLOG.md)
- Campaign select (3 campaigns) + per-campaign start point + the swap pairs; Gael's animal-possession mechanic.
- Tree gating: trunk roads with KEY-GATE / OBJECTIVE-GATE blockers + diegetic markers + hint-on-approach.
- The Ministry 12/12 convergence + the two-NPC door-open beat (already partly in via the medal gate).
- Progression scaling: implement P + T + per-zone floor/ceil bands; add
floorP/ceilPtozones[]. - Per-campaign trunk + side-branch lists go in
zones[]/ a newcampaigns[]block in gamedata.json.