Two stories this stretch. The first is a new way to matter that has nothing to do
with holding ground: your culture now takes root inside other people's
cities, and there is a unit whose whole job is to go put it there. The
second is less glamorous and was more urgent — the computer players we shipped
last month had started freezing mid-turn, and finding out why took us
through a quadratic loop, a lock nobody could break, and a bug that had quietly
made conquest impossible since the day it was written.
Culture, laid over the political map
Culture used to be just a currency you spent on borders and Government perks. Now
it is a second, softer map of the world — one that ignores your borders entirely.
- 456, 457 The first cultural influence layer: every city radiates culture outward each turn, and the ground remembers who has been shouting loudest. A new Culture lens (hotkey c) draws that second map over the first.
- 465 The pivot, and the interesting part. Influence stopped being about tiles and became about people. A city's population is a set of slots — a city of twelve has twelve — and each slot is held by exactly one State, or by nobody. Every city pushes pressure into every city within ten tiles, including its own, and slots are bought with accumulated pressure rather than assigned. Early on there is room for everyone and most slots sit empty; once a city fills up it becomes a share fight that never returns to a vacuum. Pressure also decays a little each turn, so a razed empire fades from its neighbours over roughly fifteen turns instead of haunting them forever.
- 458 The Orator. A unit built to be spent: walk them into any city's borders — a rival's, or your own — and deliver a speech. They are consumed, and the city takes a lump of pressure worth several slots at once. It is the only way to move influence faster than the passive tick, and the only way to pick a target. Stand them in open country and there is nobody to talk to; the action is refused.
- 459 Culture and Science joined the Score categories — Culture measured as the high-water mark of slots you hold anywhere in the world, Science as the perks you've unlocked. This is the point of the whole redesign: you no longer raise your Culture score by owning more dirt. A cramped, loud State can out-score a sprawling quiet one.
- 459 A consequence worth stating out loud, since it changed the game without a line of code being written to do it: the number of categories you need to win moved from three to four. The victory threshold has always been derived from however many categories exist, so adding two moved the bar on its own.
The version that didn't survive
Worth recording honestly, because the second design is better for reasons the first
one taught us.
- 464 abandoned The per-tile influence model was hitting a hard database limit on large maps — the writes grew with the area of the world. The fix was drafted, then thrown away in favour of 465, because the tile model had two deeper problems that no amount of batching addressed: every developed city saturated its reach almost immediately, so they all painted the same featureless disk; and scoring by tile count just re-measured Territory under a different name. Counting people instead of ground fixed all three at once — and the new writes are bounded by cities, not acreage.
Making it legible
A hidden second map is worth nothing. Four passes went into making this one
readable at a glance and precise on inspection.
- 460 The Culture lens hides political borders while it's open. Two competing sets of boundary lines on one screen read as noise; the lens is a culture screen, so it commits to that.
- 466 Territory tinted by whoever holds the majority of a city's slots — the at-a-glance read — with per-city badges carrying the exact split.
- 487 Those badges became pie charts drawn straight onto the city itself. A pie beats a bar for part-of-a-whole at that size, and putting the mark on the city puts it where your eye already is. It covers the city sprite, which we decided we were fine with.
- 488, 489 The hover tooltip broke into a block per State, and then learned to show pressure per turn rather than total accumulated pressure. The running total is a big number that tells you where things have been; the rate tells you where they're going — which is the question you're actually asking when you hover a contested city.
The bots stopped playing
In one long-running game, two of the three computer players went silent mid-turn
and never came back. Their logs simply stop, immediately after the line announcing
the turn — no error, no timeout, no traceback. Working out what that silence ruled
out was most of the diagnosis.
- 461 Silence was the only evidence, so the first job was making the harness say more: phase markers through each turn, a heartbeat, and a clean shutdown line. It couldn't be a network timeout or a caught error — both log. That left one unlit stretch of the turn, and now it has lights.
- 472 Found it. The routine that builds a bot's menu of legal moves was quadratic in the size of the board, and one inner check was being re-evaluated seventeen million times per turn — every candidate tile against every visible enemy unit, for every unit the bot owned. On a mature board with hundreds of units it went from a few seconds to tens of minutes. The work moved out of the innermost loop and stopped being repeated.
- 474 The failure was contagious, which is what made it urgent. Every computer player ran as a thread inside one process, so two stuck workers in an old game starved a brand new one — turns that should take seconds were taking minutes for players who had two units each. Workers now get their own process and a hard time budget, so one bad turn can't hold the rest hostage.
- 473 And a watchdog that dumps what every thread was doing when a turn overruns — so the next mystery of this shape is an afternoon, not a week.
Under the floorboards
Nothing here changes the game. All of it changes how fast the game can change.
- 468–471 The automated player's three largest files split along seams they had already grown: reading the world apart from listing what's possible, and the deterministic brain apart from the language-model one. Plus a documentation pass so the map matches the territory.
- 476–486 The same treatment across the game server and client: world generation out of the terrain module, lobby management out of game lifecycle, build-completion out of production, city drawing out of the general renderer. One shared permission check replaced a pattern copy-pasted across a dozen endpoints, and the five hand-written places that handled the Escape key became one list that knows what's open.