The last stretch had two headline stories. The first: the game can now play
itself. An automated agent — driven by an LLM — joins a game, reads a compact
digest of the state, and takes real turns, which turns out to be the fastest way
we have to shake out bugs and imbalances. The second: we tore down the trade
system we'd just built. The Ethereal Banker and the roaming Merchant looked good
on paper but played badly, so trade was rebuilt from scratch around abstract,
point-to-point trade routes. Along the way: passable mountains, the first proper
wonders, a mini-map, a map-lens framework, and a clearer read on where a city's
yields actually come from.
Trade, take two: from merchants to routes
We first built trade around a Merchant unit that physically walked a route and an
Ethereal Banker that market-made exchange rates. In play it was fiddly and hard to
read, so the second half of this arc replaces the walking-merchant model with
abstract trade routes: you commit capacity, the route runs itself, and the map just
shows you the flow. The early tickets below are the first version; from 232 on is
the rebuild.
- 223 The Merchant — a civilian unit, gated on owning a Market, costing gold and production. superseded
- 224 First trade-route data model and a "Create Trade Route" establishment flow. reworked
- 225 Patrol-movement and the gold economy for a walking route, run in the resolution engine. reworked
- 226 Map visualization: the route line, its earnings, and in-transit transparency.
- 227 The Trade modal's "Trade with other players" path — a routes list and deal-screen chrome.
- 228 A green/red valid-target highlight when you're in "Create Trade Route" targeting mode.
- 229 Replaced the browser
alert() on route creation with proper in-app success feedback.
- 231 Trade-route gold folded into the HUD gold rate, with a tooltip splitting city income from route income.
- 232 The rebuild begins — a new schema with a capacity counter and an abstract route lifecycle, no unit on the board.
- 233 Building a trade unit now adds to a city's route capacity instead of spawning a merchant to shepherd around.
- 234 A menu-based create/cancel API with a discovery-gated candidate list — you can only route to places you've actually found.
- 235 The resolution engine gains dynamic path recompute, route dormancy, and expiry — routes react when the map between their endpoints changes.
- 236 An interim earnings rebalance that caps the distance gradient, so very long routes stop paying out absurdly.
- 237 The Trade Routes screen rebuilt around the new model: a capacity bucket, a candidate picker, and your active routes.
- 238 Docs reconciled and the superseded trade tickets swept, so the record matches what actually shipped.
- 239 Purged the orphaned board-merchant references left over from the redesign.
- 240 Fix: the route discovery gate now honors fog-off games, where the "places you've found" memory is intentionally empty.
- 241 Fix: dormant (blockaded) routes correctly read 0 in gold-per-turn displays instead of showing phantom income.