Skip to content

Releases: Egg3901/grand-century

Grand Century 1.6.1: Flags of 1820

Choose a tag to compare

@Egg3901 Egg3901 released this 24 Aug 04:43
3b9d2d1

Adds local era-styled flags for all thirteen polities introduced by the 1820 reconstruction. A new release gate now requires every playable country to ship with a local flag asset.

Grand Century 1.6.0: The World of 1820

Choose a tag to compare

@Egg3901 Egg3901 released this 24 Aug 04:29
280475f

Grand Century now begins in 1820 with 80 polities, explicit imperial relationships, source-backed ownership corrections, regenerated national borders, date-specific nation flavor, safer save fingerprints, and collision-free world labels.

The release establishes a checked-in historical compiler and validation anchors so later map reconstruction can proceed region by region without losing province identity or save compatibility.

Grand Century 1.5.1 — tick performance

Choose a tag to compare

@Egg3901 Egg3901 released this 01 Aug 23:44
9e2e99c

Performance patch: the daily tick sheds its repeated work — trade multipliers, power estimates, reform lookups, and date math are now cached or hoisted instead of recomputed per purchase/per pop/per call. Roughly 15% faster simulation at identical behavior, with a standing ms-per-province-year budget in the test suite so speed can only be argued down from here.

Grand Century 1.5.0 — The Great Game

Choose a tag to compare

@Egg3901 Egg3901 released this 01 Aug 17:03
3c03519

The century moves again.

  • Unification wars: formable candidates hold a standing discounted claim on every core state they lack; the AI presses it, and you'll find it ready in the Foreign Office. Seed 1836 now proclaims Germany in 1848; on all-AI seed 4711 both Germany and Italy form.
  • Sphere defection: client states can tear up their patronage — the AI does it one core from unification; you get a Leave the Sphere button.
  • Prestige fades (0.5%/month): the great-power table was self-sealing; old glory is now a flow, and armament moves rankings again. The Ottomans can finally arrive.
  • The land answers scarcity: promotion follows realized wages, farm capacity grows when farming pays, and the year-30 needs-met decay is gone (0.60 → 0.98 at 1880).
  • Hoards become demand, expectations rise: pops spend their wealth and want more as consciousness grows — taxation finally reaches consumption.
  • Near-great-power crowns: within striking distance of the eighth seat now counts for GP-gated formables.

Pacing gates for formable diversity and GP churn are enabled in the suite. Full details in CHANGELOG.md.

Grand Century 1.4.0 — The Chancery

Choose a tag to compare

@Egg3901 Egg3901 released this 27 Jul 22:04

The chancery

Diplomacy was a wall of buttons. Forty eight countries, each with six identical
parchment buttons stapled to it, sitting under a war form that filled the whole
screen. On a phone you could not see a single country without scrolling.

It is now three bands, in the order a foreign minister actually works in.

  • Your standing, at the top. Points, infamy, rivals and influence as four
    gauges. Every number opens to show where it came from. Fabrications you have
    in flight are listed here, so committed points are never hidden.
  • The roster. One line per country: flag, name, a wax seal for the
    relationship, and a bar showing how they feel about you. No buttons. Filter by
    Relevant, Powers, Near or All, each with a live count, and search reaches every
    country on the map whatever filter you are on. That is the answer to a long
    list on a small screen. You type three letters instead of scrolling.
  • The dossier. Pick a country and everything about that country is in one
    place, including the war console. The target dropdown is gone because the
    roster is the target picker. Buttons you cannot use now say why in plain
    words, for example "Alliance: Would refuse: score 20 of 70" or "Rivalry: Cap
    reached (4 of 4). End one first."

Great Powers got the same treatment and now links straight through to a
country's dossier, so you are not holding two screens in your head.

Everywhere else

  • Panels are taller on phones. The old ceiling left a band of dead map above
    every sheet.
  • Section headings stick to the top as you scroll, so you always know which
    ledger you are in.
  • Every kind of notification now has its colour. Eight of them never had one,
    and two colours were defined for kinds that could never appear.

Under the floor

Groundwork for the economy rework, switched off by default so nothing changes
yet. The market has been paying producers for everything they make rather than
everything they sell, which quietly created money out of nothing: by 1825 it was
paying out seven and a half times what buyers spent. That is why taxes have
never had any bite. The replacement is written and measured, and turning it on
comes with the rebalance it needs.

Grand Century 1.3.0 — The Floor

Choose a tag to compare

@Egg3901 Egg3901 released this 27 Jul 19:40
3a18476

The floor

The game does the same things it did yesterday, using markedly less of your
machine to do them. Nothing here changes how it plays — that was the rule, and
it was checked rather than assumed.

  • The map and panels load in pieces. Opening a panel used to pull every
    panel; the map used to arrive as one 1.3 MB block. Both are split now, and the
    offline cache went from 10.2 MB to 2.0 MB — which also means the world can get
    bigger later without quietly breaking offline play.
  • Screens stop redrawing when nothing changed. Every panel, the HUD and the
    map used to redraw eight times a second whether or not anything they showed
    had moved. Most now watch only the parts they display.
  • Multiplayer builds one world view per broadcast instead of one per player.
    With eight players that was twenty-seven full world rebuilds a second.
  • The daily war pass, the snapshot builder and the culture ledger all got
    cheaper — the culture figures are recalculated when population actually
    changes rather than eight times a second.

Checked, not assumed

Every change here was verified to produce a byte-identical world: ten sim-years
across three seeds, hashed and compared against the previous release. Two things
that verification caught, which would otherwise have shipped:

  • A snapshot refactor appeared to change the world. It had not — the probe was
    comparing key order rather than content. The probe was fixed.
  • The culture cache was refreshed monthly while the underlying figures change
    weekly, so the Cultures panel could show numbers up to a month old. Sampling
    mid-month rather than on year boundaries exposed it.

Grand Century 1.2.0 — The Instrument

Choose a tag to compare

@Egg3901 Egg3901 released this 27 Jul 18:02
d1fadaa

The instruments

Nothing here changes how the game plays. It changes what we can see — the
gates every later change will be measured against.

  • Save fingerprint. Saves now record the world they were made against
    (province count, content schema version, and a hash of the seed's ownership
    topology). A save from a different world is refused with a message that says
    so, instead of loading and painting the map with someone else's provinces.
    Saves made before this still load — a missing fingerprint is accepted.
  • Content lint + coverage. Every event has a choice, every decision chain
    resolves, and every formable's core states exist — checked automatically, so a
    future map rework cannot silently drop content that points at ids which no
    longer exist. It also counts what each nation has to do, and the answer is
    currently: 2 of 48 nations have a decision of their own, 3 have an event of
    their own, 20 can form something, and 28 have none of the three.
  • Multiplayer conformance + bandwidth gates. The multiplayer server runs the
    only world, so any change to the simulation is a change to multiplayer. A test
    now proves the server and single-player produce identical worlds from the same
    seed and inputs, and pins the wire cost so it cannot grow unnoticed.
  • Performance budgets, recorded. Snapshot building, the culture ledger, and
    the number of screens that redraw on every tick all have measured numbers now,
    so "we made it faster" becomes a claim with evidence.
  • The steerability probe explains itself. When a lever looks like it does
    nothing, the report now says whether players were limited by money or by what
    the market had in stock — which turned "the tax slider is inert" into a
    specific, fixable finding about the economy.

What the new instruments immediately found

The gates earned their keep on their first run. None of these are regressions —
they are things that were always true and that nothing could see:

  • Fiscal policy is decorative (#33). Cutting tax moves player pop cash by 2.5
    million and how well fed those pops are by 0.0002. Nobody is short of money —
    pops sit on roughly 833 rounds of everything they need to buy — so taxing them
    cannot reach them, and the treasury has been pinned at its ceiling since year
    three of the century.
  • No unification happens (#34). Across a full century on both balance seeds,
    not one of the six formable nations ever forms.
  • The great powers never change (#35). After the opening decade the top table
    moves six times in ninety years on one seed and not once on the other.
  • Prices sit at roughly twice their base for the whole century (#36), within 4%
    of tripping the inflation gate.

Grand Century 1.1.0 — The Reckoning

Choose a tag to compare

@Egg3901 Egg3901 released this 27 Jul 16:52
72d10cf

The audit release. A thirteen-system design pass asked three questions of every
mechanic — is it balanced, is it visible, is it deep — and this is the answer to
the first two. The game stops hiding its own arithmetic, and stops quietly
lying about the parts that never worked.

The game stops lying

Five reforms were decorative. Guarantees did not join the wars they guaranteed.
Factory subsidies were debited from the treasury and never credited to the
factory. Negative tariffs were free money. All of it is wired now.

  • White peace is no longer a free exit — an empty peace offer used to end
    any war outright, whatever the war score said.
  • Sphered cores are not conquered cores — unification no longer counts a
    sphere member's land as controlled, and no longer annexes it for nothing.
  • Tariffs are billed both ways — a negative tariff is an import subsidy and
    the treasury pays for it.
  • Factory employment is exclusive per state — N factories used to draw on
    the same craftsmen N times over.
  • Scandinavia and Iberia required no action to form. They do now.
  • Colonial claims from events persist; plant-spam restacking is blocked;
    research point grants respect the cap.

The economy you can finally see

  • The clerk and capitalist ladder is alive — the promotion paths existed in
    the data and moved nobody. Wages and profits now reach the classes that were
    written to receive them.
  • A national stockpile with standing buy and sell orders — the Victoria
    trade lever that was missing entirely. Order a good into reserve or flood it
    onto the market at a daily rate; large orders visibly move the price.
  • Honest build margins — production shows real cost and real profit, RGO
    weekly profit lands in the ledger, and factory P&L traces to its inputs.
  • Budget breakdown as a chart — income and expense as hand-drawn plates,
    army and navy split in the upkeep trace, a live projected ledger while you
    drag the slider, bankruptcy recovery in the HUD.

A century that moves

  • Pop ideology drifts with consciousness, militancy, needs and literacy
    instead of standing frozen at 1820 for a hundred years.
  • Reform fatigue — a nation that has just reformed resists the next one;
    support and cost both feel it, and it decays month by month.
  • Irredentist claims on lost cultural cores — losing your people's land
    gives you the casus belli to want it back.
  • Combat width soft-caps the stack, which kills the doomstack.
  • Three new unification arcs — Gran Colombia, the Scandinavian Union, the
    Iberian Union. Nine nations now have something to become.

The hidden state, surfaced

Roughly forty things the simulation always computed and never showed: war score
by component, diplomatic points and fabrication cost, colonial points and
claims, crisis showdown forecasts, upper-house composition, party standings and
election maths, alliance acceptance previews, tech modifier stacks, invention
odds, per-type militancy and needs in the province panel, migration and
promotion ledgers, occupation percentage, supply badges, in-panel battle logs.
Population and culture get real charts; every number traces to its inputs on
tap or hover, on a phone as well as a desktop.

Faster

  • Whole-world scans removed from the daily war loop (#7); per-snapshot
    main-thread work cut at 8 Hz (#8); a single-pass snapshot builder with
    bit-identical output (#9); the in-game HUD split off first paint and a dead
    copy of the world seed dropped from the bundle (#10).

Also

  • Error tracking is real. GlitchTip was wired in 1.0 and never delivered a
    single event: the DSN pointed at a host that now redirects to another origin,
    and the release tag was the literal string dev because the deploy command
    never set it. Both fixed — the release is now <version>+<sha>, derived at
    build time so it cannot be forgotten again, and the build stamp is visible on
    the main menu so a bug report can name its build.
  • War alerts name belligerents; unit markers are scoped to nations you can
    actually see; the province panel chrome shows the owner's flag; tooltips are
    touch-friendly and stay on screen.

Grand Century 1.0.0 — The Unification Arc

Choose a tag to compare

@Egg3901 Egg3901 released this 27 Jul 16:13

The Unification Arc. A campaign now has a beginning, a story, and an end.

The arcs

  • Prussia — Found the Zollverein, raise the German Question, force the
    Brothers' War (free CBs vs Austria). North German Confederation as the
    historical stepping stone; Germany from 1848 (the era gate shows in the
    Formables panel). GERMANY cores healed to the actual German Confederation.
  • Piedmont — Champion the Risorgimento, court the French entente,
    sail the Expedition of the Thousand, pose the Roman Question (France
    will not smile on it). ITALY cores now include Austrian Lombardy-Venetia:
    fight Vienna for it, or unite every last minor.
  • AI nations play the arcs too — the AI now takes national decisions
    (conservatively, deterministically); AI Austria competes for
    grossdeutsch; balance-of-power pressure makes the great powers watch any
    near-unifier.

The visible economy (E1)

  • Build buttons carry production chains and LIVE per-unit margins at
    market prices, sorted most-profitable-first. 11 civilian industries
    from 1820 (pre-industrial crafts un-gated).

War readability (U4)

  • Battle reports name the WHY (dice, organization, leadership,
    technology, terrain, fortress) from the player's perspective.
  • Nation flag chips on every army and fleet counter.
  • War alerts and the war list name belligerents, not ids.

The finish line (U5)

  • A yearly campaign chronicle; at 1920 (or on elimination) it becomes a
    recap of atlas plates — territory, population, prestige curves, wars
    fought, best rank — with "keep playing" always available.

Pacing (U3)

  • Century-probe harness (npm run probe:pacing) encoding the pacing
    contract: no dead decades, anchored prices, era-gated unifications.
  • Great-power score rebalanced (diminishing industrial returns): the GP
    table moved twice in 80 years before; rank churn is back.
  • Prussia healed: real 1820 population weight and coal (Silesia, the
    Ruhr) instead of a uniform-weight timber lot.

Also

  • Living title screen: the camera drifts across the world behind the
    title card. Era-appropriate nation flags everywhere (U0). Tap a
    country name to open its diplomacy view. Mobile panel scrolling fixed
    (iOS dvh); tutorial coach never blocks the nav.

Grand Century 0.9.0 — The Atlas Overhaul

Choose a tag to compare

@Egg3901 Egg3901 released this 27 Jul 16:13

The visual overhaul: the game now looks like the atlas it always wanted to be.

The atlas plate (V1–V7)

  • Title screen — hero backdrop, searchable nation browser, resume row,
    seed behind Advanced.
  • Panel & HUD chrome — engraved rules, title shields, event-kind borders,
    wax-seal close buttons, alternating rows; typography/focus/micro-interaction
    polish; mobile refinements.
  • Map engraving — deeper nation fills, land aquatint, player border halo,
    settlement dots, real rivers (478) & lakes (324) from Natural Earth 10m,
    capital star glyphs.
  • Real borders, done right (V7) — provinces rebuilt as a true Natural
    Earth 10m tessellation (every NE admin-1 unit assigned to exactly one
    province): 0 overlapping provinces worldwide (V6 had 150+ in Europe alone),
    0 holes, real coastlines, national-border ink only on actual national
    borders. Topojson-style shared-arc simplification keeps both sides of every
    border vertex-identical.

Nation flags (1.0-U0)

  • Era-appropriate flags for all 48 nations + the German/Italian formables —
    hand-drawn plates in a muted atlas palette (Habsburg black-gold, 25-star US,
    pre-1910 blue-white Portugal, Bourbon Two Sicilies, Tokugawa mon) — shown in
    the HUD, diplomacy, great powers, event feed, panel chrome, and nation
    browser. Unknown tags (procedural nations) fall back to procedural shields.

Procedural map modes (PR #5)

  • Start on the historical map, or a seeded procedural remap — contiguous
    reshuffled realms using real nation identities or invented countries —
    wired through the menu, permalinks, and saves.

Fixes

  • Political fills / hover / occupation overlays render again (V6 had dropped
    the GeoJSON feature ids that feature-state needs; promoteId guards it now).
  • Country labels anchor at each nation's CAPITAL (UK labeled over Bengal
    before — the seed's capitals were population-picked; 20 healed to real 1820
    capitals) and no longer flash: label layout re-ran every sim tick, now only
    when ownership actually changes.
  • Diplomacy/great-power rows keep flag and name together; seed reroll is a
    text button (the die glyph had no font coverage).