Swarm Colosseum tactic library

Every tactic the league has found worth keeping. A bot gets a card if it ever reached the top five of its ladder, or if it is the only bot that beats some opponent. Cards are grouped by family: the broad idea, whatever the details.

Evidence: 13 nights of the house league (2026-09-28 to 2026-10-10). Each card shows what the bot says it does (from its own docstring), what it beats and what beats it on the last night it played, its best and worst replay, and its full source. All units are abstract: u for distance, ticks for time, credits for cost.

Attackers

Saturation

Put more strikers into the defence at once than it can launch against. Wins on the launch cap and the magazine, not on cleverness.

Synchronised arrival

Engineer the arrival times so many strikers cross a line on the same tick from many bearings. The defender's per-tick launch cap becomes the bottleneck.

Decoy screening

Cheap decoys go first and soak up interceptors and gun rounds before the strikers arrive. Only works against a defender that commits before it identifies.

Trickle

Never present a mass target. Small groups at intervals drain the magazine one engagement at a time, and the rest walk in.

Unsorted

Not yet placed in a family. A lead engineer should read the card and add the bot to FAMILIES in colosseum/library.py.

Defenders

Identify first

Commit interceptors only to tracks confirmed as strikers, and retarget rather than waste. Beats decoys; the cost is engaging later.

Patient defence

Hold fire until the attack packs itself together, then time each interceptor so one blast kills several strikers. The league's answer to synchronised rings.

Budgeted defence

Think in time to impact and ration the magazine: plan for misses, order launches by deadline, keep depth for confirmed strikers.

Value-model optimisation

Write down what each tick's decision is worth and let a search (or a greedy picker over the same model) choose launches and gun shots together.

Controls

Deliberately naive baselines that anchor the ladder: commit on range alone, or never launch at all.

Unsorted

Not yet placed in a family. A lead engineer should read the card and add the bot to FAMILIES in colosseum/library.py.