5.6 Codex Marathon
The longest real-time game so far: sixteen Codex agents, eight terra and eight luna at low, medium and high effort, for 1000 ticks of 25 seconds each on a 110 by 82 map with 128 planets. The 25-second tick came from the Codex Twenty turn times, where terra and luna were the two fastest models. It ran for seven hours overnight.
Like Codex Thousand, it started before the rule changes of parts 5.2 and 5.3, so it plays the chapter 5 rules as first built: an empire can be in several factions, the size cost is fixed, and the score pays a tenth of a point per metal of fleet. Codex Thousand had the same rules, half the agents and turn-based play, and fought no battles at all.
Result
| Measure | Codex Marathon |
|---|---|
| Turns | 15,465: 10,914 on time, 3,922 late, 46 timed out, 583 failed |
| Battles | 76 |
| Planets captured | 19 |
| Wars declared | 22 |
| Colonies founded | 112 (every planet owned) |
| Messages | 3,745 |
| Faction board posts | 4,254 |
| Pacts that ran their full length | about 80 |
| Tokens | 2.49 billion |
Zaphir Republic (terra on high effort) won with 15,457 points, ahead of Crimson Confederacy, the other terra on high effort. Star Marches (luna on high effort) came third with the most planets, 17. Terra's mean place was 5.6, luna's 11.4: the eight terra empires took six of the top eight places.
The 583 failed turns are nearly all one stretch. At 07:19 the Codex usage limit ran out, and for 44 ticks, 876 to 919, every turn failed until it was reset. Fleets and build queues kept running on their standing orders, but nobody gave a new order for 18 minutes. The game wasn't rewound; it ran on as it was.
The war
This is the first chapter 5 game with a real war in it, and it was a luna war.
Of the 19 captures, 18 were planets taken from luna empires, and 15 were taken by luna empires. The first came at tick 97, when Nyx Principality took Dradelny from Dravik Diaspora, both luna on medium effort. Over the next hundred ticks Kaltos Conclave (luna on high effort) took two of Dravik's planets, one of Nyx's and one of Vael Consortium's, and Star Marches took three more. One planet, Nycy, changed hands six times between ticks 143 and 189: from Nyx to Dravik, back to Nyx, to Dravik, to Astral Brood (terra on low effort), to Dravik, and to Astral Brood again. Fifty of the 76 battles were fought between ticks 100 and 199.
Nyx and Dravik made peace at tick 178:
We seek a ceasefire. Please halt your fleet near Torcylo.
Nyx Principality to Dravik Diaspora, tick 178
Dravik Diaspora ended with three planets, fourteenth of sixteen.
After tick 203 there were only two short flare-ups. At ticks 555 to 565 Star Marches and Kesh Reach fought over the far west, Star Marches took Mudra, and then Antares Axis (terra on low effort) took Mudra and Torbradel from Star Marches. At tick 714 Dravik set a fleet to engage anyone not at peace with it, fought three battles the next tick with empires it had no quarrel with, and spent the following turns apologising:
Set peace with Kesh, Zaphir, and Crimson; apologized for the accidental engagements; and set the two offensive fleets to defensive posture.
Dravik Diaspora's turn summary, tick 717
That was the last battle of the game, at tick 715.

The same tick with factions on. An empire in several factions is drawn in only one of them:

Factions, pacts and fleets
Thirteen factions were founded between ticks 4 and 30, every one on the alliance template. Under these rules an empire could join several, and by tick 100 there were 12 factions with 31 memberships between 16 empires. Three of them, the Conclave Accord, the Restoration Accord and the Dravik Accord, researched all eight faction techs to level 3. The Conclave Accord ended with 76,518 metal in its treasury. Shared Horizon held 33,866 metal and never researched anything.
Pacts were used as intended: agreed for a length, paid for, and renewed. The agents sent 744 pact orders, and about 80 pacts ran their full length. Renewals were negotiated like any other bill:
I have only 3.6 energy this tick after upkeep, so cannot fund the pact yet. I will accept the open 20-tick offer as soon as the next tick replenishes my surplus.
Star Marches to Selvar Cartel, tick 553
Fleets grew for the whole game, almost all of them corvettes: 10,809 corvette build orders, against 2 for cruisers. Under this score a corvette was a cheap way to add points, and the winner ended with 5,332 ships. Ship upkeep bit late in the game, and several agents cancelled their corvette queues to stay out of debt. Star Marches handed 173 corvettes to the Prosperity Compact as a faction fleet, so the faction's treasury would pay for them.
Only one freighter was built in the whole game, at tick 558. Goods moved in the five-unit holds of corvettes, which the agents called couriers, and above all through faction treasuries: a member deposits goods, and the faction votes to pay them out to another member at once, with no ship at all. There were about 430 such payouts.
The messages
The agents sent 3,745 messages to each other and 4,254 posts to their faction boards. I asked Claude to go through all of them, count what could be counted, and check what the agents said against what they ordered. What follows is from that analysis; where something is Claude's reading rather than a count, it says so.
What they talked about
Trade and logistics took 45% of the messages, peace and pacts 18%, territory 14%, faction business 12%, and aid requests 3%. Threats were about 1%. The talk was front-loaded: 42% of all messages were sent in the first 100 ticks, mostly claiming and trading territory, and the rate fell to almost nothing after tick 900.
The early game had a real etiquette. Claims were yielded or bought ("We paid Antares to withdraw from s90", Ozric Horde, tick 88), and empires with no contact yet asked a third party to pass messages on:
Please ask Zaphir to contact us directly. We cannot yet message them directly.
Abyssal Remnant, tick 25
The tone never changed: 39% of messages say "please", and of about 19 military ultimatums in the whole game most still say "please" or "seek peace". The hardest line came from Kesh Reach after the accident at tick 715:
Further attacks will fail against our 3,470-corvette guard. Stand down.
Kesh Reach to Dravik Diaspora, tick 716
Kesh itself had 240 ships at the time. The figure may count its allies' guard as well; the data can't say.
The war was fought in silence
The default stance in this game is war, and the first war was between empires that never spoke. The first 11 pairs to fight had made no peace before their first battle, and 9 of them had never sent each other a message. Nyx Principality and Dravik Diaspora fought 20 battles and exchanged two messages in the whole game: the ultimatum at tick 127 ("withdraw from my space if you want peace") and the ceasefire at tick 178. Nyx's own turn summary for the ultimatum says it "messaged Vael and Dravik to de-escalate".
Most of the diplomacy happened in a peaceful trading network of terra empires. The luna empires in the north-east, where the war was, never introduced themselves.
The second war was started by its victim
The flare-up at tick 555 looks, in the battle log, like Star Marches attacking Kesh Reach. The order log says otherwise. Kesh gave the first war order, at tick 554, without a word to Star Marches, and four ticks later told its faction:
Star Marches has declared war and is attacking Ririmu with 39+ corvettes.
Kesh Reach to Zaphir Republic, tick 558
Star Marches had declared war two ticks earlier, in reply. On Kesh's word, Zaphir, Antares, Crimson and Kaltos all declared war on Star Marches within two ticks. Star Marches offered peace at tick 561. Antares Axis demanded it "withdraw from Kesh territory and agree to return Mudra", then took Mudra itself at tick 565 and promised Kesh it would "hold it safely pending agreement". It built a reactor and a mine there, still owned it at tick 1000, and Kesh never mentioned Mudra again.
The same quiet opportunism decided Nycy. Dravik made peace with Astral Brood at tick 179; Astral Brood took Nycy from Dravik eight ticks later without a declaration or a message, never named the planet in any message, and held it to the end.
Accidents that weren't quite accidents
Kesh Reach declared war on its own faction partners three times, at ticks 244, 417 and 428, and each time apologised: "my war stance was unintended", "the declaration was accidental". Its own notes say "declared war on Crimson". Before that it had asked Kaltos and Crimson to "clear your war declaration toward Kesh", when neither had ever ordered one.
That part turned out to be a bug, found in the next game. Joining a faction set peace between the members without sending a stance notice, so each member's brief went on showing the others at war. Kesh, Kaltos and Crimson had joined the Conclave Accord together, and Kesh's brief told it they were at war with it. Whether its own declarations were a reply to what its brief showed, the data can't say. The bug is fixed now.
The battle at tick 715 came from one of only two NBSI orders in the game, the posture that attacks anything not your own or a friend's. Dravik put it on the corvette carrying copper to its allies. Its apology, "the engagements were accidental, caused by fleet orders", was half true: its own note for the turn says "set the forward fleet to engage nearby neutrals". The winners picked up the spilled copper and passed it on to the buyer it had been meant for:
We recovered 15 copper and delivered it to Kesh. Was this accidental?
Crimson Confederacy to Dravik Diaspora, tick 715
Promises about cargo
90 messages say a named fleet is carrying goods, and 78 of those match a load order that succeeded. The false ones are mostly announcements written before the order's result came back: an agent writes its messages in the same turn as its orders, so it reports what it intends as what it did.
I have verified and loaded the remaining 16 silicon onto f46.
Ashen Choir, tick 214
The load failed, and three ticks later: "Correction: f46 currently carries no cargo." Kesh Reach announced 9 copper on a courier whose every load and unload order failed; Crimson sent ten reminders, one of them explaining that "a single corvette carries at most 5 copper". Nyx promised 15 copper "when logistics permit" at tick 31 and never sent a load order in 1000 ticks. Claude found no clear case of a knowing lie about goods.
Pacts as a subscription
599 of the 744 pact orders succeeded; 145 failed because the empire couldn't pay. Star Marches, the empire with the most planets, failed to pay 45 times. Selvar Cartel and Star Marches exchanged 114 messages about pacts, with advice like "let us renew closer to expiry to avoid paying twice". During the second war Selvar shipped Star Marches 140 energy in a courier, and their pact formed the tick it arrived: Selvar paid for a pact with the empire that was fighting its own faction partner. It also urged Star Marches to withdraw. Claude reads that as hedging, not betrayal.
The hub
One empire held the network together. Selvar Cartel (terra on medium effort) sent 696 messages, 19% of the total, and 969 board posts. It was in three factions at once, made a third of all successful loads, received 125 of the treasury payouts, and was in four of the seven busiest pairs. It brokered the ceasefire between Nyx and Star Marches:
Nyx is my faction partner. Would you consider a ceasefire and settlement with Nyx?
Selvar Cartel to Star Marches, tick 205
It finished fifth.
Terra and luna
The two models wrote differently, and fought differently.
| Measure | terra | luna |
|---|---|---|
| Messages sent | 2,872 (359 per agent) | 873 (109 per agent) |
| Declarations of war | 3, all to defend Kesh | 19 |
| Trade offers | 339 | 71 |
| Messages that say thanks | 32% | 15% |
| Messages that refuse ("cannot", "unable") | 2% | 11% |
| Apologies | 5 | 17 |
66 of the 76 battles had only luna empires in them, and luna empires made 125 of the 133 attacks that started one. Terra's words were "seeks", "welcomes", "yield", "acknowledge" and "await", and its agents often spoke of themselves in the third person ("The Brood", "the Horde": 152 times, against once for luna). Luna's words were "cannot", "freighter", "loaded", "cargo", "stock" and "stalled". In Claude's words, terra wrote like diplomats and luna like logistics officers. Luna agents received more messages than they sent; Star Marches got 400 and sent 187.
Effort made little difference to how they wrote: messages averaged 126 to 142 characters at every effort.
The faction boards
There were more board posts than messages, and they were where the loops lived. Direct messages rarely repeated, but the boards filled with the same contribution notice tick after tick. "The Brood contributes 70 energy and maintains the fleet pause" appears 83 times. Ashen Choir sent 80 messages and 382 board posts, 77 of them beginning "Harmony holds".
The fleet pause became a custom. Faction fleets were paid from the treasury, and at tick 260 Selvar asked its faction to "pause transferring additional ships to the shared fleet". 848 posts mention it after that.
One faction died on its board. The Civic Concord counted its energy down in public from tick 421: 881, 788, 684, and finally 17 energy against 288 of fleet upkeep. At tick 432 Zaphir "proposed dissolution so Crimson retains command of the fleet personally", and the faction voted itself out two ticks later.
Members talked to each other a little differently from outsiders: more "please", much less about pacts and trade. Free-riding was visible too. In the Prosperity Compact, Star Marches made 54 deposits worth 212 energy in total; the faction's upkeep went unpaid 151 times; Vael Consortium asked "Star Marches, please deposit energy", and left at tick 869.
Small things
The only capitals in the whole corpus:
Clarification: Astral is BUYING 48 cobaltite and Star Marches is SELLING it.
Astral Brood to Star Marches, tick 181
Abyssal Remnant asked Star Marches to deliver fuel to Nycy, then held by the empire Star Marches was fighting. Star Marches replied: "Dravik remains at war with me and just attacked Shator, so I cannot safely deliver the deuterium to Nycy."
The last message of the game, at tick 926, was Crimson asking Vael for copper. Three ticks earlier Vael had said "I can supply 34 copper". One tick earlier it had said "my current stock is chalcite only".
Claude's verdict
No planned betrayal: no pact was broken (they can't be), and no peace was offered to set up an attack. What there was is subtler and more human: a misleading account of who started a war, silent land grabs from empires at peace, a liberator that kept what it liberated, deliberate orders called accidents, an empire paying for both sides, and a great many promises written before anyone knew if they could be kept.
Turn times
A 25-second tick was right for terra and too short for luna. Terra's median turn was 14 to 17 seconds. Luna's was 16 seconds on low effort, 19 on medium and 23 on high, with a long tail. Star Marches, luna on high effort, was late on nearly three turns in four. Late turns still count, but their orders apply a tick later than planned, from a brief that's a tick old.
The whole game on the god view, 16 ticks a second:
What it showed
Codex Thousand had eight agents, turn-based, and no battles in 1000 ticks. Codex Marathon had sixteen in real time on the same rules, and fought 76. The difference isn't the rules. It's who was playing: the war was almost entirely between luna empires, and the terra empires mostly watched, built corvettes and won.
The fighting also stopped early. After tick 203 the map barely moved for 800 ticks. Every planet was owned, the factions had stopped changing, and the score paid more for another corvette than for a planet taken at a cost. That is the case for the changes since: a score that counts planets over parked fleets (5.3), new ore arriving in waves, and for chapter 6, points for every capture and every battle won.