Biggest in the middle, smallest close in: why formations work as they do
Published
A group of ships forms up round its biggest member and keeps clear of bigger ships by a fixed rank. Here is why each number is what it is. How it plays: Commanding the fleet.
The biggest ship is the guide
Why: “the biggest ship (highest give-way rank) is the guide, in the middle; the rest take slots on rings round it, one ring per class present, like a carrier group’s inner and outer screen”.
Built 2026-10-23 · scripts/formation.gd guide_of()
Rings: 4 lengths close in, 10 lengths further out
Why: the smallest class sits tight round the guide, 4 of its own lengths out and at least 50 m; fighters and scouts share that ring. Each bigger class takes the next ring out, 10 of its lengths beyond and at least 500 m. “Fighters alone make a tight circle”: four Strikers sit about 90 m across.
Built 2026-10-23 · scripts/formation.gd INNER_LENGTHS := 4.0, INNER_MIN := 50.0, OUTER_LENGTHS := 10.0, OUTER_MIN := 500.0, GAP := 50.0
Each ring weighted forward
Why: not yet recorded. One slot dead ahead if the count is odd, then pairs ahead-left and ahead-right from 45°, the flanks, and astern last, up to 135°.
Built 2026-10-23 · scripts/formation.gd FIRST_PAIR := 45.0, LAST_PAIR := 135.0
Mixed groups go at the slowest ship’s speed
Why: “The guide goes at the slowest ship’s speed”, so a mixed group stays together; the others close up on their slots at full speed, then ride along. A group of only fighters and scouts “no longer waits for its slowest”: each flies straight to its slot at its own speed and they arrive in the same formation (the owner, 2026-10-26).
Built 2026-10-23; small-craft exception 2026-10-26 · scripts/formation.gd order()
Give-way ranks: fighter 1 to capital 8
Why: “decided by class, not measured size: the lower give-way rank keeps clear of the higher (a fighter gives way to the scout although both are ~18 m; fighters are the most nimble…)”. Fighter 1, scout 2, frigate 3, destroyer 4, cruiser 5, battleship 6, carrier 7, capital 8.
Built 2026-10-23 · scripts/ship_catalog.gd HULLS[class].give_way
Under or over, alternating
Why: “so a group parts round a big ship in layers like water round a rock, not as one sheet”. Passing a bigger ship, a smaller one dips under or climbs over it, alternating within its class, each going a little further than the last. Over anyway when under would come within 100 m of the ground. The bigger ship never reacts.
Built 2026-10-23 · scripts/ship.gd dodge_over, dodge_spread; avoidance.gd MARGIN := 10.0, GROUND_MARGIN := 100.0
Pushed apart like magnets
Why: ships of the same rank, or a small ship parked inside a bigger one’s footprint, are pushed apart along the plane “like magnets”. Hit boxes are the model’s bounds: “conventional and cheap”. Ships in different height bands pass by.
Built 2026-10-23 · scripts/avoidance.gd PUSH_RATE := 2.0, PUSH_MIN := 5.0 m/s