units.md · non-normative

Every Last City — The Unit Roster and the Escalation of Complexity

Status: Design proposal v0.1 · Owner: unassigned · Depends on: direction.md, stack-decision.md

Clean-room note: EDCE.pdf and EDCE.txt are present in the working directory. Neither was opened in the production of this document. Every value here is derived from a stated design intent and the derivations are shown, so any number can be re-argued on its own terms without reference to anything outside this file.


1. The problem

Two problems, and they turn out to be one problem.

Problem one: how does a player grow into the depth? A game of this shape has a real cliff. The loop — cities make units, units take cities — takes ninety seconds to explain. The roster that makes the loop interesting takes an hour. The classic answer was to ship four fixed unit sets of escalating richness and make the player pick one in the setup screen. That answer has four things wrong with it, and they are not small:

  1. It asks the wrong person to choose. The setup screen is where a new player is least equipped to judge how much complexity they want. They pick blind, and they pick wrong in both directions.
  2. It builds four games and ships them as one. Four rosters is four balance surfaces, four sets of AI evaluation weights, four regression suites, four communities. In practice three of them get a fraction of the testing and one of them becomes "the real game."
  3. It never lets you grow. Learning happens across games, not within one. The only way to see more of the game is to abandon the game you are in and start a different one at a higher setting.
  4. The complexity is a packaging decision, not a play decision. It is a menu, not gameplay. That is a waste: the question "how much machinery do I want running" is one of the most interesting questions a strategy game can ask, and it is being answered before the game starts.

Problem two: design a roster. Twenty-odd units, each with a defensible role, none dominated, covering ground, sea, air, transport and specialists, expressible as pure data.

These are one problem because the roster is the complexity. There is no separate "advanced rules module." Air combat rules are invisible until an aircraft exists. Submarine detection is invisible until a submarine exists. Flak is invisible until something can fly. If you control when unit classes become available, you control the entire complexity curve for free, with no second system. That observation drives everything below.


2. Decision one — complexity arrives through the Industry ladder

2.1 The alternatives, weighed honestly

Approach Onboarding Replayability Balance surface Content cost Verdict
Fixed tiers chosen at setup Works, but the choice is made blind by the person least able to make it Four separate games; you replay within a tier ×4 ×4 rosters The safe answer. Rejected — it converts a play decision into a menu.
One roster + optional systems toggled at setup Good if the toggles are few; a wall of checkboxes is worse than four tiers High — orthogonal toggles multiply ×2^n, and the interactions are the hard part ×1 roster + n systems Close second. Rejected because most "systems" here are units, so the toggles would just be a clumsier version of what follows.
In-game progression Excellent — the first ten turns have four units in them High — the curve is a strategic axis ×1 ×1 roster + a ladder Chosen.
Scenario-driven rosters Good for a campaign, useless for skirmish and multiplayer Depends entirely on scenario supply ×1 per scenario, but no global balance Unbounded Rejected as the primary mechanism; kept as a layer on top (a scenario can pin the ladder).

2.2 The design

Complexity escalates inside a single game, driven by a thing the player already understands and already manages: their cities.

Every city has an Industry rating, 1 to 4. Industry determines two things and nothing else:

Industry Name Output (BP/turn) Cost to reach Unlocks
1 Depot 4 — (all cities start here) 5 units — the whole simple game
2 Workshop 7 30 BP +3 units — armour, real warships, the sky
3 Foundry 11 60 BP +6 units — concealment, strategic air, engineering, amphibious assault
4 Arsenal 16 120 BP +6 units — fleet-scale power and strategic reach

An upgrade is queued in the city's production queue exactly like a unit. It occupies the queue, costs BP, and finishes when it is paid for. There is no research, no research points, no tech tree, no choosing a branch. You are not managing a second economy; you are deciding whether this city builds a thing or builds itself. That decision already existed in shape — it is a build-order decision — and it is now the ladder.

Unlocks are per-city, not per-empire. Your frontier towns are cheap infantry mills. Your one Arsenal on the safe coast is where carriers come from. This is deliberate and it is worth more than it costs:

Capture degrades Industry. A captured city drops one Industry level (minimum 1) and loses all accumulated build progress. Taking an Arsenal gets you a Foundry and a bill for 120 BP. This is the single most important balancing rule in the proposal: without it, conquest of a developed empire is a jackpot and the game snowballs on capture rather than on production. With it, conquering an industrial core is an investment — you still have to rebuild it — and defending yours is proportionally more valuable than defending a frontier town.

Everything is previewable and nothing is hidden. The encyclopedia is complete from turn one. You can inspect what Industry 3 will give you before you spend a point on it. Enemy city Industry is visible whenever you have vision on the city, which makes scouting industry a genuine objective. There is no fog over rules, only over the map.

2.3 What the setup screen does instead

Setup no longer picks a roster. It picks the shape of the curve — four numbers, all of which mean something obvious:

Preset Start Industry Cap Upgrade costs What it is for
Outpost 1 2 ×1 First game. Eight unit types, ever. A complete game of land, sea crossing and escort.
Standard 1 4 ×1 The full arc. The default.
Escalation 1 4 ×0.6 (18 / 36 / 72) Shorter games; the deep roster arrives by mid-game.
Total War 3 4 ×1 Starts at the Foundry. For players who want the deep game immediately, and the only reliable way to get tier-4 play tested.
Fixed n = n Freezes the roster at one tier.

That last row deserves a sentence, because it is the argument in miniature: the classic fixed-tier experience falls out of this design as a degenerate case, for free. Anyone who wants "pick a set and play it" sets start = cap and has exactly that. We get their mode as a special case of ours; the reverse is not true.

Mixed-skill play gets a further tool: the cap is settable per player. A veteran capped at Industry 2 against a newcomer with 4 is a real, legible handicap ladder that costs no extra content.

2.4 What this does to onboarding

Turn 1 of a first game presents five units. Not twenty. By the time the sixth exists, the player has spent fifteen turns learning what the first five do, in a live game, with something at stake. Each unlock is presented as a single card on arrival: one sentence of role, the stat line, and the two units it beats and the two that beat it.

The hole in this — and it is a real hole — is that you can meet a unit class before you can build one. The mitigation is a contact briefing: the first time you sight an enemy unit class you have not built, its card opens. Stats are public information in this game; the fog is over positions, not over rules. A player who is out-teched should be beaten by tempo, not by surprise.


3. The attribute schema, and the combat model the numbers assume

Combat resolution belongs to another subsystem. But numbers are meaningless without a procedure, so this is the procedure the roster is tuned against. If the combat author changes it, the roster needs re-tuning, not redesign — the relationships survive; the constants move.

3.1 Attributes

Every unit is these integers plus a flag list. No unit has a special case in code.

Attribute Meaning
cost BP to build
industry Minimum city Industry required
upkeep BP/turn charged to the empire = ceil(cost / 20)
move Movement points per turn
vision Sight radius in tiles
hits Damage absorbed before destruction. Damage persists between turns.
atkLand / atkSea / atkAir Attack strength against each domain. 0 = cannot engage that domain.
def Defence strength against all attackers
flak Return fire against air attackers only, resolved before the exchange
slots Transport slots this unit occupies as cargo
capacity Transport slots this unit provides

Three attack numbers instead of a per-unit target matrix is the load-bearing simplification. It puts every counter relationship in three integers a player can read off a card, it is trivially data-driven for custom sets, and it makes "this thing cannot touch that thing" expressible as a zero rather than as a rule.

flak is the second one. It means anti-air is a property of units rather than a special unit class, so a destroyer is naturally dangerous to aircraft without any code that knows what a destroyer is — and it means the anti-air rules are dormant, and invisible, in a game where nobody has built an aircraft. That is the escalation argument working.

3.2 Resolution (integer-only, per-mille)

All strengths are carried in per-mille (atk 44000) so modifiers compose without loss.

A = attacker's atk[domain of defender]  × Π modifiers   (per-mille)
D = defender's def                      × Π modifiers   (per-mille)

share = clamp( A * 1000 / (A + D), 50, 950 )     // integer division

Then repeat: draw r = prng.next(1000). If r < share, the defender loses 1 hit; otherwise the attacker loses 1 hit. Continue until a side reaches 0 hits, or until the attacker's strikeRun round limit is reached (air and raiding units break off; ground and naval units fight it out).

The clamp at 50/950 guarantees nothing is ever mathematically impossible, which matters because a player who is told "0%" and then loses feels cheated, and a player who is told "5%" and loses does not.

This is exactly representable, exact to compute expected outcomes for, and therefore the UI can show the honest win probability before you commit — a Markov race between two hit counts is a closed form. That is a modern-UX win that a dice-table system cannot offer.

3.3 The modifiers that give combat texture

Modifier Effect on D Why
Defender in a city ×1500 Cities should be hard. This is what makes infantry the answer to everything.
Defender in rough terrain ×1200 to ×1400 (terrain subsystem owns the table) Positioning matters
Entrenched — did not move last turn ×1250 Rewards patience; punishes constant shuffling
Suppressed — took bombard damage this turn entrenchment lost, terrain/city bonus halved The combined-arms lever
Attacker attacking from aboard a transport attacker's A ×750 Amphibious assault should be expensive

Bombard is the combined-arms mechanic and the answer to the "flat attrition" complaint in §6 of the direction brief. A unit with the bombard flag spends its whole turn firing at a target within range. It resolves shots single rounds; the target takes hits, the firer takes none, and bombard cannot reduce a target below 1 hit — artillery softens, it never takes ground. Bombard ignores the entrenchment multiplier (artillery is precisely the thing that un-digs a dug-in unit) and applies Suppressed on any hit.

That one rule turns a hopeless frontal assault into a viable operation, as §5.2 shows with numbers.

3.4 Stacking assumption

The roster is tuned for one combat unit per land tile outside cities (cities and transports hold many; cargo does not count). This is stated because it changes everything: it is what makes five cheap units genuinely different from one expensive one, what makes bombard range matter, and what keeps the creation-order activation queue from becoming a stack-management chore. If the rules author chooses a small cap (2–3) instead, hits values on cheap units should come down ~15%.


4. The roster

Twenty units. Every one has a one-sentence role, and the role names a thing no other unit does.

4.1 Tier 1 — Depot (Industry 1). The complete simple game.

Unit Cost Move Vis Hits atkL atkS atkA Def Flak Slots/Cap Key flags
Scout 12 5 4 3 2 0 0 2 0 1 / — capture, foot
Infantry 20 2 2 6 4 1 0 5 1 1 / — capture, entrench, foot
Field Gun 26 2 2 4 7 3 0 2 1 1 / — bombard(range 2, shots 2), foot
Transport 30 6 2 8 0 0 0 3 1 — / 6 land naval, draft 1, cargoLost
Corvette 34 8 3 7 3 6 0 5 3 — / — naval, draft 1, shoreBombard(1)

Five units and the game is already complete: expand on land, cross water, contest the crossing, besiege a city. An Outpost-preset game never needs more than this plus tier 2.

4.2 Tier 2 — Workshop (Industry 2). Land war gets fast; the sky opens.

Unit Cost Move Vis Hits atkL atkS atkA Def Flak Slots/Cap Key flags
Armour 52 4 3 8 9 2 0 6 1 2 / — capture, tracked
Destroyer 64 10 4 10 4 9 5 7 6 — / — naval, draft 2, sonar, shoreBombard(1)
Fighter 46 14 6 5 3 3 9 4 0 — / — air, endurance 2, intercept, strikeRun 2 (vs ground/sea)

4.3 Tier 3 — Foundry (Industry 3). Concealment, strategic air, engineering, assault.

Unit Cost Move Vis Hits atkL atkS atkA Def Flak Slots/Cap Key flags
Engineer 44 2 2 5 1 0 0 3 1 1 / — capture, build[road,airfield,fort,bridge], repair 1, foot
Air Defence Battery 42 2 4 (8 vs air) 5 1 0 11 4 12 1 / — interceptZone 1, reactiveOnly, foot
Landing Ship 70 7 2 12 3 0 0 5 3 — / 4 land naval, draft 1, assaultLanding
Heavy Artillery 72 1 2 6 14 6 0 3 1 3 / — bombard(range 3, shots 3), siege, foot
Submarine 86 8 3 8 0 14 0 5 0 — / — naval, draft 2, submerged, ambush
Bomber 88 12 4 6 12 10 1 3 0 — / — air, endurance 2, strikeRun 3, cityStrike 1

4.4 Tier 4 — Arsenal (Industry 4). Fleet-scale power and strategic reach.

Unit Cost Move Vis Hits atkL atkS atkA Def Flak Slots/Cap Key flags
Missile 58 24 1 1 18 18 0 1 0 — / — air, endurance 1, expendable, strikeRun 4
Air Transport 84 16 4 6 0 0 0 2 0 — / 2 (slot-1 only) air, endurance 2, airdrop
Heavy Armour 124 4 3 14 16 3 0 11 2 3 / — capture, tracked
Heavy Bomber 132 14 5 9 16 12 0 5 0 — / — air, endurance 3, strikeRun 4, cityStrike 2, highAltitude
Cruiser 160 9 5 18 12 16 8 12 10 — / — naval, draft 3, sonar, shoreBombard(2)
Carrier 170 9 5 16 0 2 0 8 8 — / 4 air naval, draft 3, airbase, repairAir 2

5. Why these numbers and not other numbers

5.1 The two laws the table obeys

Law 1 — build times stay constant across the whole ladder. This is where Output 4 / 7 / 11 / 16 comes from; it is not a taste judgement. The design requirement was that the rhythm of the game should not change as the pieces get bigger — a unit should take between three and eleven turns to build, at every tier, forever.

Tier Output Cheapest → dearest, in turns
1 4 Scout 3 · Infantry 5 · Field Gun 7 · Transport 8 · Corvette 9
2 7 Fighter 7 · Armour 8 · Destroyer 10
3 11 ADB 4 · Engineer 4 · Landing Ship 7 · Heavy Artillery 7 · Submarine 8 · Bomber 8
4 16 Missile 4 · Air Transport 6 · Heavy Armour 8 · Heavy Bomber 9 · Cruiser 10 · Carrier 11

The band holds. A tier-4 empire is not waiting longer for its toys; it is getting better toys at the same cadence. That is what makes the ladder feel like growth rather than like a tax.

Law 2 — combat power grows as the square root of cost, with a deliberate, small tier premium.

Define a crude power index P = sqrt(primary attack × hits). Then:

Unit Cost P P / √cost Tier target
Infantry 20 4.90 1.10 1.10
Corvette 34 6.48 1.11 1.10
Armour 52 8.49 1.18 1.18
Destroyer 64 9.49 1.19 1.18
Submarine 86 10.58 1.14 1.26
Heavy Artillery 72 9.17 1.08 1.26
Heavy Armour 124 14.97 1.34 1.34
Cruiser 160 16.97 1.34 1.34

Two things follow, and both matter more than the numbers themselves.

Higher tiers are better per point, but only slightly — about 22% from Infantry to Cruiser. That premium is the return on the industry investment; without it nobody would ever climb. But it is small enough that five Infantry (100 BP, 30 hits, five tiles of frontage) still beat one Heavy Armour (124 BP, 14 hits, one tile) on a broad front, and lose to it at a single point. Mass versus concentration stays a live strategic question at every tier instead of collapsing into "tech wins."

Units that sit below the curve are buying something other than power. Submarine (1.14) and Heavy Artillery (1.08) are paying for concealment and for no-return-fire. Transport, Landing Ship, Carrier, Air Transport and Engineer are off the chart entirely because their atk is 0 or nominal — they are priced against what they enable. Scout at 12 BP is nearly triple its power-curve price of 5 BP; you are paying for five movement and four vision, and those are worth it.

5.2 Worked example — combined arms, the whole point of the combat model

An Infantry attacks an entrenched Infantry sitting in a city on plains.

Defender: def 5 → 5000. City ×1500 → 7500. Entrenched ×1250 → D = 9375. 6 hits. Attacker: atkLand 4 → A = 4000. 6 hits.

share = 4000 × 1000 / (4000 + 9375) = 299 — a 29.9% chance per round.

Racing 6 hits against 6 hits at p = 0.299, the attacker wins 7.7% of the time. A lone infantry assault on a defended city is suicide, and the interface will say so before you commit.

Now bring two Field Guns and fire them first. Bombard ignores entrenchment, so it resolves against def 5000 × 1500 = 7500:

share = 7000 × 1000 / (7000 + 7500) = 482. Four shots (2 guns × shots 2) → 1.93 expected hits, and any hit applies Suppressed.

The defender is now on ~4 hits, un-entrenched, with its city bonus halved: D = 5000 × 1250 = 6250.

share = 4000 × 1000 / (4000 + 6250) = 390. Racing 6 attacker hits against 4 defender hits at p = 0.390, the attacker wins 49.2%.

7.7% → 49.2% for 52 BP of artillery. That is the design working: the interesting decision is not "do I roll the dice" but "have I brought the right combination, and did I spend a turn setting up." It also means a well-prepared assault still fails half the time, so the attacker must bring depth — which is precisely the texture the direction brief says flat attrition lacks.

5.3 Worked example — the submarine counter chain

A Submarine attacks a lone Transport. A = 14000 vs D = 3000 → share = 823, plus a free ambush round. The transport dies, with its cargo, almost every time. Convoys without escort are dead.

Escort it with a Corvette (tier 1, def 5000). share = 736 — the submarine is still heavily favoured. A tier-1 navy cannot beat a tier-3 submarine, and it should not be able to.

Now a Destroyer with sonar finds it. The submarine loses concealment and ambush. But attacking a submerged contact is hard: sonar attacks apply ×700 to the attacker. A = 9000 × 700 / 1000 = 6300 vs D = 5000 → share = 557. Racing the Destroyer's 10 hits against the Submarine's 8 at p = 0.557, the Destroyer wins about 83% — and typically finishes on 4 or 5 hits, needing a port.

That is the shape you want in a counter: the counter works, it is not automatic, and it costs the counter something real. The submarine's answer to being hunted is not to fight; it is to be somewhere else. Detection becomes the game.

5.4 Worked example — why one bomber is not an answer

A Bomber attacks a Destroyer. Flak resolves first: destroyer flak 6 (6000) against bomber def 3 (3000) → share = 666, so a 66.6% chance the bomber takes a hit before it does anything.

Then the run: A = atkSea 10000 vs D = 7000 → share = 588, limited to strikeRun 3 rounds. Expected outcome: 1.76 hits on the destroyer, 1.24 on the bomber, then the bomber breaks off.

So one bomber sortie takes about two hits off a ten-hit destroyer and costs the bomber about two of its six. One bomber cannot sink a destroyer. Four bombers over two turns can, and will lose one doing it. Massed air works; sniping with air does not. And a fleet that brings a Destroyer screen has multiplied its own survivability without buying a single dedicated anti-air unit — because flak is an attribute, not a unit.

5.5 Worked example — is the ladder worth climbing?

One city, Industry 1, 4 BP/turn, no captures yet.

Path A (tempo): Scout (turns 1–3) · Infantry (4–8) · Infantry (9–13) · Infantry (14–18) · Transport (19–26). At turn 26: 1 Scout, 3 Infantry, 1 Transport. 104 BP on the board, three cities holdable, and a boat.

Path B (industry): Scout (1–3) · Workshop upgrade, 30 BP (4–11) · Output becomes 7 from turn 12 · Armour (12–18) · Destroyer in progress (19–26, 42 of 64 paid). At turn 26: 1 Scout, 1 Armour, and most of a Destroyer. 102 BP of value.

The two paths are within 2 BP of each other at turn 26, and Path B's break-even on the upgrade alone lands at turn 22 (30 BP spent, 3 BP/turn recovered from turn 12). After that Path B is strictly ahead on production and has three unit classes Path A cannot build.

But Path A holds three cities at turn 18 and Path B holds one. On a crowded continent, tempo wins outright — the land is taken before the Workshop finishes. On an archipelago, or under a victory condition that runs past turn 60, the ladder wins.

Therefore the right tech pace is a function of the map and of the victory condition. That is a genuinely good property: it means §5 of the direction brief (configurable victory) and this subsystem reinforce each other. A short scored game and a long conquest game will not just end differently, they will be played differently from turn four.


6. The capability flag vocabulary

Units are data. The engine must know a closed, enumerable set of flags, each with integer parameters. Nothing in packages/core may branch on a unit's id or name — that rule is what makes custom unit sets a real feature rather than a promise, and it is mechanically checkable in CI.

Flag Params Meaning
domain land | sea | air Which tiles it may occupy
terrainClass foot | tracked | wheeled Index into the terrain movement-cost table
draft 1–3 Minimum water depth class it may enter. Gates shallows, rivers, coast.
endurance turns Air only: turns aloft before it must be at a base or carrier, or it is lost
zoc 0/1 Exerts a zone of control on adjacent tiles
capacity n, carries:[class] Transport slots provided and what may occupy them
slots n Slots consumed as cargo
cargoLost Destroying this destroys its cargo
assaultLanding Cargo may attack directly from aboard (attacker ×750)
airdrop Cargo may unload onto an unoccupied land tile
airbase Resets endurance for embarked air units
repair / repairAir hits/turn Restores hits to adjacent or embarked friendlies
bombard range, shots Indirect fire: no return damage, cannot kill, applies Suppressed
siege Bombard effect doubled against units in cities and forts
strikeRun rounds Maximum rounds before disengaging
submerged Invisible except to sonar and to adjacent units
sonar Detects submerged units within vision
ambush First round of an attack it initiates is one-sided
intercept May engage air units passing through its vision
interceptZone radius Automatically engages hostile air ending movement within radius
reactiveOnly Never attacks on its own activation
highAltitude Engageable only by intercept units or flak ≥ 6
expendable Destroyed after resolving one attack
capture May take an enemy city
entrench Gains the stationary defence bonus
cityStrike severity 1–2 May damage a city's build progress and Industry
build [road, airfield, fort, bridge] Terrain construction
clearMines Reserved; no shipped unit uses it

That is 27 flags. A custom unit set is then a JSON file of integer stat lines plus flag lists, with no scripting, and the WASM plugin ABI remains the escape hatch for anything genuinely new. The shipped roster uses only this vocabulary, which is the only honest way to prove it is sufficient.


7. Why this beats the classic approach

  1. One game instead of four. One roster, one balance surface, one AI evaluation function, one community, one set of regression tests. The engineering saving is not incidental — it is what buys the budget to tune twenty units properly instead of eighty units badly.
  2. The complexity choice is made by someone qualified to make it — the player, mid-game, with information. Nobody has to guess at the setup screen how complicated they want their next four hours to be.
  3. Complexity arrives attached to a reason to care. You meet the Destroyer's sonar rating the week you first fear a submarine. You learn flak when someone bombs your fleet. Units taught in context stick; units taught in a manual do not.
  4. Rules complexity self-gates at zero cost. No air units in the game means no air rules in the game. This is why "one roster with an in-game curve" dominates "one roster with optional systems": the toggle system would be doing, badly and manually, what unit availability does automatically.
  5. It turns packaging into gameplay. Build now or build up is a real, recurring, per-city strategic decision with a computable payback period (turn 22, §5.5). The classic approach spent that decision on a dropdown menu.
  6. It gives the map an industrial geography. Enemy Arsenals are worth a two-hundred-tile raid. Rear cities are worth garrisoning. Bombers have a strategic purpose that is not "kill units."
  7. It subsumes the thing it replaces. Set start = cap and you have the fixed-tier experience exactly, as a special case, with no extra content.

8. Tradeoffs and what this costs

Stated plainly, because several of these are real.

An interaction worth naming

The turn model (direction §4) orders activation by unit creation sequence, oldest first. Newly built units always act last. A Heavy Armour you finish on turn 90 activates after every enemy unit built in the preceding ninety turns. This is an inherent counterweight to teching that nobody designed on purpose, and it is a real one: high-tier units are structurally initiative-poor. It might be exactly the brake the ladder needs. It might also make a 124 BP investment feel awful. It needs a deliberate probe in playtest, and the turn-model author should know this design leans on it.


9. What could go wrong, and how playtest would show it

Deterministic simulation makes AI self-play cheap. These are metrics, with target bands, that a nightly self-play tournament should emit.

Failure Metric Alarm
Ladder too expensive; tiers 3–4 are dead content Distribution of maximum Industry reached at game end >70% of Standard games end at max Industry ≤ 2
Ladder too cheap; tempo play is non-viable Median turn of first Workshop upgrade Earlier than turn 10
Tech snowball Win rate of a scripted "rush industry" opening vs a "rush units" opening at equal AI skill Outside 45–55%
Dead units Share of total BP spent on each unit within the window where it is available Any unit below 3%
Dominant units Same metric Any unit above 30%
Scout griefing Share of city captures made by units with hits ≤ 3 Above 15%
Submarine window Naval BP loss ratio in the turn band where subs exist but sonar is rare Attacker-favourable beyond 3:1
Combined arms not landing Share of successful city assaults preceded by bombard in the same turn Below 50% — means artillery is not worth the tempo
Bombard too strong Share of city captures where the defender was at 1 hit before the assault Above 60% — bombard has become mandatory rather than valuable
Build-time band broken Turns-to-build for every unit at its unlock Industry Outside 3–11
Seniority penalty on tech Win rate of high-tier armies controlling for total BP Meaningfully below parity

Human playtest should additionally watch for two things a metric will not catch: whether the arrival of a new unit class is noticed and understood, and whether the "unit or works?" question becomes tedious rather than interesting once an empire passes about a dozen cities.


10. Open questions I could not settle

  1. Per-city or empire-wide Industry? I chose per-city and I believe it, but it doubles the management surface and it is the decision most likely to be reversed after the first real playtest. Both versions carry the same roster, so this is reversible late.
  2. Does the Industry cap belong in the victory-condition system? "First to build a Carrier" is a perfectly good objective and it lives at the seam between these two subsystems.
  3. Should the Field Gun be tier 1? Putting the most interesting mechanic in the game at the very bottom of the ladder is either the best decision here or the one that makes turn 10 too complicated for a first-time player. I lean toward keeping it and cutting the Scout to tier 1.5 if turn-1 load is too high.
  4. Veterancy. I have deliberately not designed it, because the turn model's seniority ordering already gives old units a mechanical advantage, and two "experience matters" systems will fight. Someone should decide whether seniority is the veterancy system.
  5. Aircraft endurance in turns versus fuel in movement points. Turns is integer-clean and easy to read; movement points model range more honestly on very large maps. I picked turns for explainability and I am not certain.
  6. Repair rates are asserted (2/turn in a city at Industry ≥ 2, 1/turn from an Engineer, 2/turn from a Carrier) and not derived from anything. They need their own small argument.
  7. Does bombard need a supply cost? Unlimited artillery fire may be too cheap, but ammunition tracking is exactly the kind of fiddliness the direction brief warns against.
  8. What happens to a city's production queue when Industry drops from capture or a city strike — specifically whether a half-built Cruiser in a city knocked to Industry 3 is lost, paused, or refunded. I lean toward paused, because losing it twice (once to the strike, once to the queue) is a compounding punishment.