Shroud

The squad brain

How they hunt

The squad brain is a plain Rust crate called brain. It has no engine dependency, so the same code drives the game and a 2D trainer. This is what it does inside a round, and what it keeps between matches.

Crate
brain
Language
Rust, no engine dependency
Runs in
the game and a 2D trainer sim
Squad
3 to 6 callsigns, Alpha to Foxtrot
Foundry under fire: a red tracer crosses a sand-coloured crate and the screen edges glow red with damage.
Foundry, crouched in the south yard and taking fire from the squad.
A siteB sitenorth midlong AA shortmidB tunnelslower tunnel

One shared guess

The squad coordinator keeps a belief grid: 16 by 16 cells over the 64 metre arena, so each cell is 4 metres across. It holds how likely you are to be in each cell.

A sighting collapses the grid onto where you were seen. After that, every second you stay hidden spreads the guess outward along walkable ground. Cells are cleared only when a member looks at them and even a crouched player there would have been seen, so hiding behind low cover still counts.

Live on Depot, squad of five. Zone names are the ones they use on the radio.

Play
Search
Hottest cell
H8
Last seen
now

Choosing a play

Once it knows where you are, the squad tries plays, keeps the ones that beat you, and still tests the ones it has not tried enough. Under the hood that is a disjoint LinUCB contextual bandit: each play keeps a small ridge regression, plus an optimism bonus for plays with little data.

The reward for a fight window is damage dealt plus pushing you back, minus members lost without a trade. Between matches each model is pulled 15 percent back toward its prior, so it keeps up when you change how you play.

The four plays it chooses between

  • Crossfire
  • Pin and flank
  • Trade
  • Bait

What it reads before choosing

  • rush
  • zone focus
  • re-peek rate
  • strafe bias
  • his range
  • squad alive
  • squad hp
  • his hp
  • his accuracy

The playbook

Every play the coordinator can run. The four marked ones are the bandit’s arms.

  • FreeNo coordination. Each member uses its own utility AI.
  • Bounding overwatchOne team holds the angle while the other moves.
  • CrossfireChosen by the bandit when it pays off against you.
  • TradeChosen by the bandit when it pays off against you.
  • Pin and flankChosen by the bandit when it pays off against you.
  • CollapseHeard shots somewhere: everyone converges on it.
  • BaitChosen by the bandit when it pays off against you.
  • SweepYou are lost and far away: converge on the hot spot by different routes.
  • SearchYou are unknown: split over the search spots, at most two on the hot one.
  • EncircleYou are known: the spotter keeps shooting, the rest take your exits from distinct sides.

Search picks spots from the belief grid and pushes members apart so they do not stack on one hotspot. At most two investigate the hottest cell; the rest check other likely places, each calling the zone they take.

  • “Lost him - spreading out”
  • “Checking the copy room”
  • “Checking his last position”
Office, nobody in sight: five members, five different spots.

Encircle, report and surround

The member who sees you calls the contact with the zone and the side, then keeps firing. The others are assigned sectors around you and routed through different corridors, so they do not walk in single file. When everyone is a step from their line of fire, or the stage takes too long, one call sends them all at once.

  • “He’s at the center tower, left side”
  • “Flanking north-west”
  • “Cutting him off - south”
  • “All set - go go go”
Foundry: a camper in the south yard, surrounded from three sides.
On Foundry an enemy in red runs across the yard in front of a rust-green wall.
A member crosses the open yard while the squad closes in.
An enemy in red leans out past a concrete wall with something in hand, close to the player.
Leaning out past the wall instead of stepping into the open.

On their own

A member without orders shoots on sight. From a post it peeks, shoots and hides again. Members lean around corners, throw grenades and flashbangs, and their radio calls are staggered so they do not all talk at once.

  • “Reloading”
  • “Taking fire”
  • “He’s reloading - pushing”
  • “Man down - Bravo is down”

Between matches

Each enemy carries a trait genome of ten genes, evolved with a genetic algorithm: aggression, preferred range, flank bias, cover affinity, reaction time, aim error, burst length, retreat health, team cohesion and prediction trust.

NEAT networks evolve combat moves. A player model keeps a decayed profile of you: a 32 by 32 heat grid of where you fight, your ranges and your habits. A 2D trainer runs simulated rounds against a ghost built from that model, in small steps while you are in the menus, and the HUD shows the squad generation going up.

Fairness floors keep it honest. Minimum reaction time starts at 0.45 seconds and never goes below 0.18; minimum aim error starts at 5 degrees and never goes below 1.2. They loosen a little each generation, so the squad gets smarter, not inhuman.

Minimum reaction time

gen 0, 0.45 s0.18 s from gen 18

Minimum aim error

gen 0, 5°1.2° from gen 16

The floors by squad generation, plotted from the formulas in the brain crate.

The numbers

Benchmarks from the squad AI rework, before and after.

Search spread

24.7 to 33.5 m

was 4.6 to 8.3 m

Toughness benchmark

0.601

was 0.682

Ghost survival on Elite

0.06

was 0.17, on Foundry

Depot went from 0.23 to 0.15 and Office from 0.25 to 0.11.