Skip to main content

Empire / 4X Layer Build-Out (Master Design)

Empire / 4X Layer Build-Out (Master Design)

Status: DESIGN APPROVED 2026-06-18 (user_decision 285, entity_ref gd-04, "Invest in the 4X layer", re-confirmed) — SE-1 (Empire Tier core + Empire Screen + Edicts) IMPLEMENTED 2026-06-19. SE-2 (NG+ de

Last updated: August 30, 2026

Blood Lineage — Empire / 4X Layer Build-Out (Master Design)

Status: DESIGN APPROVED 2026-06-18 (user_decision 285, entity_ref gd-04, "Invest in the 4X layer", re-confirmed) — SE-1 (Empire Tier core + Empire Screen + Edicts) IMPLEMENTED 2026-06-19. SE-2 (NG+ depth — chosen ascension trait + founding legacy) IMPLEMENTED 2026-06-19. SE-3 (emergent-story depth — revisitable Dynasty Chronicle + four new beats) IMPLEMENTED 2026-06-19.

Parent: index.md. Siblings: four-x-systems.md (the on-demand resource screen + the basic NG+ Legacy screen + the first four emergent beats — the FOUNDATION this doc builds on), return-briefing.md (the entry-time voice-memory fix), endgame.md (Pillars A/B/C shipped; Pillar D Empire Tier is the unbuilt design this doc takes to depth), prestige.md (Tracks A/B service layer — NG+ carryover), progression.md (turn pipeline, victory, events). Voice standard: ../../philosophy/player-experience.md.

Origin (finding gd-04, decision 285)

game-design-audit finding gd-04 (process-reports report 3): "BL's 7-resource 4X has no screen, hollow NG+, no emergent story" — and a voice-memory-load risk that any build-out would worsen if done naively. The owner chose the ambitious path (decision 285, chosen_option = "Invest in the 4X layer", re-confirmed after the prior decision row was lost). gd-04 has been answered in two waves already:

  • Wave 1 built the FOUNDATION: the on-demand resource screen, a basic NG+ Legacy screen + a flat resource headstart, and four deterministic emergent-story beats. See four-x-systems.md.
  • Wave 2 built the voice-memory entry-point fix: the spoken state-of-the-realm return briefing. See return-briefing.md.

This doc is Wave 3 — the depth build-out: the post-victory Empire Tier (the unbuilt endgame.md Pillar D), NG+ depth beyond the flat headstart, and emergent-story depth beyond the first four beats — every piece designed inside an explicit voice-memory-load budget so the 4X gets richer without getting heavier to hold in the player's head.


The governing constraint — Voice-Memory-Load (read this first)

This is the spine of the whole build-out and the reason gd-04 flagged a risk, not just a gap.

Why a voice 4X is memory-fragile

A 4X is a state-holding genre. Blood Lineage's state is large: seven resources, population, morale, stability, a map of owned territories with buildings and fortifications, multiple armies with stances and positions, a ruler who ages and dies, an heir line, a web of treaties and AI relations, research in progress, pending random events, and progress toward five victory conditions. On a screen that state lives in glanceable panels. In voice it lives only in the player's memory, and between sessions (days in SP/MP; weekly turns in Global) that memory is gone. Every NEW system the build-out adds — an empire tier, deeper NG+, more story beats — is MORE state to hold. Build it naively and the 4X becomes less playable in voice, not more. gd-04's risk is real and structural.

The thesis — push the urgent, pull the rest, never make them remember

Voice cannot give the player a dashboard. It can do something a dashboard cannot: brief the player like a steward, and answer any question on demand. The discipline is: the game holds the state, and the player asks — they never have to remember. The return briefing already proves the entry-time half of this (push what changed); the build-out extends the same discipline to every new surface (pull what you need, when you need it).

The seven rules every new 4X surface MUST obey

Any epic implementing this doc is bound by these. They are the acceptance bar, not aspirations.

  1. Push the urgent, pull the rest. The return briefing is the only push surface (once per session, leads with threats + delta). Everything the build-out adds — the empire screen, the chronicle, the legacy screen — is a pull-on-demand surface the player speaks for by name. New systems never force new state into the player's head between turns.
  2. Re-readable on request, always. Anything the game expects the player to act on MUST be speakable back at any time. "What edicts can I afford?", "Tell me my chronicle", "What does my legacy give me?" Every new mechanic ships with the command that reads its current state aloud. No hidden timers, no off-screen countdowns the player must track mentally.
  3. Reuse a number the player already knows; do not mint new ones. The empire tier spends prestige — a number the player already sees and earns. NG+ depth reuses the Legacy screen and victory count. Do NOT introduce a parallel currency or a new menu tree that compounds memory load. One new spendable concept (Empire Edicts), denominated in an existing number.
  4. Cap concurrent decisions at three. Voice cannot present a menu of ten. Any choice surface (edict menu, ascension founding-choice, emergent-beat response) presents at most three options at once, each one short and distinct. Longer catalogs are paged ("say more options") — never read in a wall.
  5. Adaptive length / progressive disclosure. Brief by default, drill down on request (mirrors the return briefing's adaptive length and Mystery's adaptive onboarding). The empire screen leads with the one urgent thing; "tell me more" expands. log() what was summarized rather than reading every item.
  6. Suppress empty sections. Never narrate what is not relevant. An empire at peace gets no vassal- rebellion sentence; a fresh dynasty's chronicle is a one-line call to action, not a blank.
  7. Every surface ends with an actionable handoff. No new surface is ever a text-only dead-end (the no-dead-end invariant). The empire screen ends offering the edicts; the chronicle ends offering the next turn; the legacy screen ends offering to found the dynasty.

These rules are why the build-out makes the 4X deeper without heavier: the player's working memory stays bounded because the game, not the player, holds the state — and the build-out only ever adds new things the player can ask about, never new things the player must remember.


The foundation already shipped (do NOT rebuild)

The build-out sits on top of working code. An implementing epic verifies current state first and EXTENDS these — it does not re-create them.

Foundation piece Status Class / surface
On-demand resource screen (7 resources, net/turn, trend) SHIPPED (22169) (resource screen)
Basic NG+ Legacy screen SHIPPED (22169) (legacy)
Flat NG+ resource headstart (gold/food, cap NG+5) SHIPPED (22169)
Emergent story — first four beats SHIPPED (22169) ; tracked on LineageKingdom.firedStoryBeats
Emergent story — Chronicle pull surface + four empire/NG+ beats SHIPPED (22422) (chronicle); beats THE_SECOND_CROWN, THE_ANCESTRAL_RETURN, THE_LAST_VASSAL, THE_CROWN_OF_THE_REALM
Return briefing (entry-time push, snapshot + delta) SHIPPED (22283)
Prestige Track A (cross-game) + Track B (dynasty ascension carryover) SHIPPED ,
Endgame Pillars A/B/C (building upgrades, legendary units, Barbarian Horde) SHIPPED (19254) , ,
Empire Tier (Pillar D) DESIGN-ONLY — UNBUILT designed in endgame.md § Pillar D; taken to depth below

Build-out Pillar 1 — The Empire Tier (post-victory continuation + the empire screen)

The single largest gap. Today sets world.isCompleted = true and stops processing the moment a victory condition is met — the campaign ends with a thud and the dynasty's accumulated empire evaporates. The Empire Tier turns a victory into a new phase the player opts into, with its own pull-on-demand screen and a prestige-spend action class.

1a — Opt-in continuation (not an auto-extend)

On victory, instead of a hard stop, the player is offered (a capped, two-option voice choice — rule 4):

"Victory, my liege. Your dynasty has achieved the Domination of the realm. You may rest your crown and let the chronicle close, or rule on as an Empire — your rivals will not kneel quietly. Shall your dynasty rule on, or rest?"

  • Rest → the existing completion path (victory recorded, NG+ carryover banked, game ends). Unchanged.
  • Rule on → the world enters EMPIRE tier: it does NOT complete; play continues. The victory is STILL recorded for NG+/prestige at the moment of the win (so continuing costs the player nothing in legacy terms — important so the choice is a genuine "more game", not a trap).

Voice-memory: this is a push (it is the climax of the campaign, the player is present for it) and it is a capped two-option decision. The empire tier itself, once entered, is then driven by pull surfaces — the player never has to remember "I'm in empire tier"; the return briefing and the empire screen tell them.

1b — What empire tier changes (kept deliberately small to bound memory)

Change Mechanic Why it is memory-safe
Vassal rebellion Former AI kingdoms reseed as hostile independent vassals at the map edge over the next few turns Surfaced through the EXISTING threat/event + diplomacy surfaces the player already reads; no new tracker
Passive prestige income +10 prestige per turn while in empire tier Reuses prestige (rule 3); shown on the empire screen + resource-screen-style trend
Empire Edicts A prestige-spend action class (see 1c) One new spendable concept, denominated in prestige

Empire tier adds NO new resource, NO new map mechanic, NO new menu tree beyond the single empire screen. That restraint IS the voice-memory design — depth comes from new uses of existing numbers, not new numbers.

1c — Empire Edicts (the prestige sink)

One-shot, kingdom-wide buffs the player buys with accumulated prestige. Inherited from endgame.md § Pillar D and bound to rule 4 (≤3 offered at once; the rest are paged):

Edict Cost (prestige) Effect
Edict of Peace 500 −20 unrest in every owned territory
Edict of Conquest 750 +30% army strength for 3 turns
Edict of Prosperity 500 +50% gold production for 3 turns
Edict of Legacy 1000 +1 carried-trait slot for next dynasty (composes with prestige.md Track B caps)

Edicts route through a new Tier-4 NLU verb (edict ... / proclaim ...) and a handler that checks the prestige balance, applies the effect via the existing KingdomBonus / enchantment machinery, and debits prestige. The active-edict timers are always re-readable on the empire screen (rule 2) — the player never has to remember "Prosperity ends in 2 turns"; they ask.

1d — The Empire Screen (pull-on-demand)

A consolidated pull surface, analogous to the resource screen, command empire screen / view empire / empire status / my empire. Routes through → LINEAGE_VIEW matched key EMPIRE, handled by a new . It leads with the urgent and ends with the handoff (rules 5 + 7):

Your Empire endures.
A vassal, the Iron Compact, has risen in rebellion to your east.   (threat first; suppressed if none)
Prestige: 1850, plus 10 per turn, rising.                          (the spendable number + trend)
Edict of Prosperity is active, two turns remain.                   (active edict; suppressed if none)
You may proclaim an Edict of Peace, of Conquest, or of Prosperity. (≤3 offered; "more edicts" pages)
Shall you proclaim an edict, take command, or end your turn?       (actionable handoff)

The empire screen is the empire tier's only standing surface. Everything the player needs to rule an empire is one spoken question away, and nothing about the empire tier needs to be held in memory between turns.

1e — Integration risk (flag for the implementing epic)

today short-circuits to world.isCompleted = true. The opt-in continuation requires threading an "empire tier" world state through that path WITHOUT breaking the five existing victory conditions, the tie-resolution order, or the NG+ earn hook (). The earn hook must fire at the win (1a) even when the player chooses "rule on". This is the highest-risk refactor in the build-out and is why empire tier was deferred from the original endgame Phase 1.


Build-out Pillar 2 — NG+ depth (player-chosen ascension, not a flat grant)

The gap beyond Wave 1

Wave 1 made NG+ visible (the Legacy screen) and gave a flat resource headstart (gold/food scaling to NG+5). It is felt, but it is not a choice — every victor's next kingdom starts the same way. The depth this pillar adds is agency: the player shapes what their bloodline carries.

2a — Choose your carried trait on victory (prestige.md Phase 4, unbuilt)

prestige.md already designed this and left it unbuilt: on victory, prompt the player to pick ONE trait from the victorious ruler to carry forward (capped 3-option voice prompt — rule 4), with a 7-day auto-pick fallback (, picks the rarest BLOODLINE-first trait). This turns the silent carryover into a deliberate legacy decision.

"Choose a trait from your final ruler to pass into your next kingdom: Brilliant, Dragonblood, or Diplomatic?"

2b — Founding choice on the new kingdom (a felt, chosen headstart)

When a victor founds their next dynasty, replace the silent flat grant with a capped three-way founding choice (rule 4), each option a different flavour of the same total headstart budget — so the headstart is now a strategic identity, not just a number:

Founding legacy Headstart bias
A Martial Legacy the headstart weighted to a starting army + warfare-leaning founding ruler
A Mercantile Legacy the headstart weighted to gold + a market head-start
An Arcane Legacy the headstart weighted to mana + a magic-leaning founding ruler

Total value stays bounded by the existing NG+5 caps ( caps + prestige.md Track A/B caps); only the distribution changes. The choice is announced and then echoed on the Legacy screen (rule 2 — re-readable: "This realm was founded on a Martial Legacy").

Implementation. The gold budget (min(victoryCount,5) x 250) is conserved across all three legacies as a 1:1 split between gold, iron, and mana; food (x 100) is the constant survival floor. MERCANTILE keeps the full gold weighting (the existing flat grant, applied as the default at founding so a lazily-founded kingdom is never left without a headstart); MARTIAL moves half the gold budget into iron (the means to raise an army) plus a +5 warfare bias on the founding ruler; ARCANE moves half into mana plus a +5 magic bias. The literal "starting army" and "market building" of the table are realized through these bounded existing primitives (resources + a cap-checked ruler-stat nudge) rather than injecting army/building objects at founding — same strategic identity, no new machinery, fully testable. The +5 stat bias composes within the prestige.md +20-per-stat cap (clamped at base 70). The choice re-weights via an exact delta from the currently-applied legacy, so it is idempotent and switching legacies applies only the difference. + computeLegacyDistribution hold the math; applyFoundingLegacy applies the delta.

2c — Voice-memory treatment

Both choices are capped 3-option voice prompts at moments the player is already present for (victory, founding) — never background state. The Legacy screen (four-x-systems.md Pillar 2) remains the single pull surface that reads NG+ standing back on demand, now including the chosen legacy. No new menus; the depth is agency over existing numbers, denominated in the Legacy screen the player already knows (rule 3).


Build-out Pillar 3 — Emergent-story depth (the revisitable Dynasty Chronicle)

The gap beyond Wave 1

Wave 1 fires four deterministic beats inline at end-turn. They are good moments, but they are ephemeral — spoken once, then gone. In a voice game with no screen, a beat heard three sessions ago is forgotten. The depth this pillar adds is persistence and recall: the dynasty's story becomes a thing the player can revisit, which directly serves the voice-memory thesis — the chronicle is the player's externalized memory of their own campaign.

3a — The Chronicle as a pull-on-demand surface (the keystone)

Command chronicle / my chronicle / dynasty chronicle / tell me my story / our history. Routes through → LINEAGE_VIEW matched key CHRONICLE, handled by reading LineageKingdom.firedStoryBeats (already persisted). It reads the fired beats back as a short narrative in declaration order, adaptive length (rule 5):

"Your dynasty's chronicle holds three chapters. The Gilded Throne, when your treasury first overflowed. The Wide Realm, when your banners flew over eight provinces. And The Enduring Dynasty, when the third ruler of your blood took the throne. Shall I tell you more of any, or will you take command?"

A fresh dynasty hears the call to action, never a blank (rule 6): "Your chronicle is yet unwritten — rule, and your dynasty's story will begin to fill these pages." This is the single most voice-memory- positive feature in the build-out: it converts the player's lost memory of their own campaign into a re-readable artifact the game holds for them.

3b — More beats, including beats that reference the empire tier and NG+

Extend the beat set (the system is already declared extensible). New beats compose with the build-out's own new states, so the deeper systems generate deeper story:

Beat id Deterministic trigger Title Theme
THE_SECOND_CROWN entered EMPIRE tier (won, chose "rule on") The Second Crown A dynasty that would not lay down its crown
THE_ANCESTRAL_RETURN founded a kingdom at NG+ ≥ 3 The Ancestral Return A bloodline whose legend precedes it
THE_LAST_VASSAL crushed the final empire-tier rebellion The Last Vassal The empire pacified
THE_CROWN_OF_THE_REALM held ≥50% territory for 10 straight turns Crown of the Realm (folds in the endgame.md Phase-2 CROWN_OF_REALM beat)

All deterministic, state-triggered, fire-once-per-kingdom — same contract as the existing four (no RNG, hermetically testable per .claude/rules/hermetic-scenario-tests.md). Each interpolates the ruler / dynasty name so the beat is the player's own story.

Implementation. now takes the LineageWorld and the account's New Game Plus level (victory count, resolved in from ). THE_SECOND_CROWN fires on world.isEmpireTier(); THE_ANCESTRAL_RETURN at New Game Plus level ≥ 3; THE_LAST_VASSAL when the empire tier holds no remaining rebellious vassals (the empire always seeds at least one at entry, so an empty list in the tier means the rebellion is crushed); THE_CROWN_OF_THE_REALM when LineageKingdom.consecutiveDominantTurns (incremented each turn the kingdom owns ≥ half the map, reset otherwise) reaches 10. The empire/NG+ beats are guarded by a tolerant null-world / zero-level check — the capability check called for when SE-1/SE-2 are absent — but both are landed, so the beats read their state directly. A single ordered ChronicleChapter registry is the source of truth for every beat's title + re-readable clause, so the inline fire announcement and the chronicle read-back can never drift.

3c — Voice-memory treatment

The chronicle is pure pull-on-demand, adaptive length, suppresses-when-empty, ends with a handoff — it reduces memory load by externalizing the campaign's narrative. The new beats ride the existing inline end-turn push (one short line, suppressed when none fire) and are then re-readable via the chronicle. No new state the player must hold.


Sub-epic breakdown (the implementable units)

The build-out is sequenced into the epics below. Each is game-engine Java and therefore carries the per-commit game_test.scenario_tests obligation (deploy-gating.md), the hermetic-test discipline (hermetic-scenario-tests.md), and updates this doc + index.md in the same change. Every epic is bound by the seven voice-memory rules above — they are the acceptance bar. The implementing agent verifies current code state before building (the foundation table may have advanced).

# Sub-epic Scope Coupling
SE-1 Empire Tier core + Empire Screen + Edicts Pillar 1 in full: opt-in continuation refactor of (preserving the 5 victory conditions, tie-resolution, and the NG+ earn hook), vassal-rebellion reseed, passive prestige income, the pull screen, and the edict verb + handler + the four edicts. IMPLEMENTED. The highest-risk piece (victory-service refactor), shipped as one coherent epic: edicts are meaningless without the tier; the empire screen reads the tier.
SE-2 NG+ depth — chosen ascension Pillar 2: the on-victory carried-trait voice prompt + 7-day auto-pick scheduler (prestige.md Phase 4), and the three-way founding-legacy choice biasing the existing headstart budget; echo the chosen legacy on the Legacy screen. IMPLEMENTED. New (both spoken surfaces), LINEAGE_CHOOSE_TRAIT + LINEAGE_FOUNDING_LEGACY actions, (daily 7-day auto-pick), lineage.user_lineage_ascension.pending_trait_choice column, LineageDynasty.foundingLegacy.
SE-3 Emergent-story depth — the Chronicle Pillar 3: the chronicle pull surface in , plus the four new beats (two of which reference SE-1 / SE-2 states, so order SE-3 to land after or alongside them, or guard the empire/NG+ beats behind a capability check). IMPLEMENTED. New + LineageViewType.CHRONICLE; extended with world + New Game Plus level (the capability check is a tolerant null/zero guard, since SE-1 + SE-2 are landed); LineageKingdom.consecutiveDominantTurns tracks the Crown-of-the-Realm streak. The two cross-referencing beats read SE-1 / SE-2 state directly.

These three are bundled into THREE queued epic tasks (one per sub-epic) by this design pass — within the per-session queue budget. The endgame.md Phase-2 threat pool (DRAGON_AWAKENS, RIVAL_DYNASTY, ANCIENT_CURSE) is NOT re-owned here; it remains a referenced follow-up in endgame.md, with only its CROWN_OF_REALM beat folded into SE-3.


Regression shape (hermetic)

Per .claude/rules/hermetic-scenario-tests.md, each sub-epic seeds its trigger state and asserts the STABLE STRUCTURE (never an RNG/clock-dependent line):

Surface Hermetic assertion (scenario_test) Logic detail (JUnit)
Empire screen seed empire-tier world + a prestige balance; empire screen → names prestige + offers an edict + ends with a handoff option victory-service continuation: a win with "rule on" keeps world.isCompleted=false AND still fires the NG+ earn hook
Edicts seed prestige ≥ cost; proclaim edict of peace → unrest drops, prestige debits; insufficient prestige → gated message edict timer read-back on the empire screen
NG+ chosen ascension seed a victory state; assert the 3-option carried-trait prompt renders (capped, ≤3) founding-legacy distribution math + the existing NG+5 caps (seed an ascension row → JUnit, outside the hermetic seed surface, as four-x-systems.md does for carryover)
Chronicle seed a kingdom with ≥1 fired beat; chronicle → reads the beat titles back, ends with a handoff; fresh kingdom → the call-to-action empty state new-beat predicates fire-once-per-kingdom (THE_SECOND_CROWN on empire entry, etc.)

Voice-rule coverage (rules 4–7) belongs in process_tests + scenario_tests: the edict/founding/beat choice surfaces present ≤3 options and never dead-end; "skip"/meta-commands escape cleanly.


Out of scope / deferred

  • The endgame.md Phase-2 threat pool (DRAGON_AWAKENS, RIVAL_DYNASTY, ANCIENT_CURSE) — stays owned by endgame.md as a separate follow-up; only its CROWN_OF_REALM beat is folded into SE-3.
  • Frontend panels for the empire tier / chronicle — the browser UI is a later, lower-priority pass; this build-out is voice-first and the screens are spoken surfaces. A BuildingLevelPanel and empire panel are noted as deferred in endgame.md / index.md frontend section.
  • MP / Global-mode empire tier — Empire Tier targets SP kingdom victories first (mirrors prestige.md Track B's SP-first scope). MP/Global continuation is a later question.
  • four-x-systems.md — Wave 1 foundation: resource screen, basic NG+, first four beats.
  • return-briefing.md — Wave 2: the entry-time voice-memory push surface this doc extends.
  • endgame.md — Pillars A/B/C shipped; Pillar D Empire Tier is the seed this doc takes to depth.
  • prestige.md — Tracks A/B; NG+ carryover caps + the unbuilt Phase 4 carried-trait prompt.
  • progression.md — turn pipeline, the five victory conditions, succession, events.
  • ../../philosophy/player-experience.md — voice-first, never-dead-end.
  • .claude/rules/hermetic-scenario-tests.md — the regression discipline for these deterministic surfaces.