The Early Jets era: the same war, fifteen years later
Warbirds has always had one axis of variation: the theater —
air, naval, land, and the combined-arms Brick Gulf. As of today it has
a second one: the time period. A combined-arms server flying
-era jets keeps the same gulf, the same fleets, the same
tanks — and hands the sky to the early jet age: the Starfang
as a starter instead of a trophy, a delta-winged Balalaika, a
four-railed Rhino, an Arclight with a city block of
bombs — and the era's signature pair: boresight heat-seekers
that miss like it's 1965, and the flares that lie to them.
An era is not a theater
The theaters live as separate server instances that branch at exactly
three seams — config, init, step — and the working air game is pinned
byte-for-byte by a golden test. A time period had to respect all of
that while being orthogonal: any theater, any era. So an era
is a config rewrite (swap aircraftTypes for the era
roster, stamp world.era) plus exactly one gated system:
stepJetsEra, one line in each theater's ordnance block,
whose first act is to return if the era is off. With the flag unset,
every WW2 wire is byte-identical — the golden test proves the whole
era costs the classic game nothing. All of it lives in one file,
jets.go, the same one-file discipline the naval and land
theaters keep.
Missiles that miss, on purpose
The AIM-9B generation was rear-aspect only, narrow-eyed, weak-armed and unreliable — and that's the whole game design, because every failure is a counter someone can fly. The seeker only locks looking up a tailpipe. In flight it pulls a modest 14 G, which at missile speed is about 0.17 rad/s of turn — a jet in a hard low break turns three times faster and simply exits the seeker's window. Eight percent of launches never guide at all. And a flare punched while the round is in your mirrors gets one honest dice roll to steal the seeker for good.
The numbers came from the era's new balance probe
(JETS_PROBE=1), which steps a bot-only jets world for
twenty simulated minutes and audits every missile's fate. The shipped
tuning reads: 23 launches — 8 bursts, 10 seduced by flares, the
rest lost to the gimbal or the clock. Kills per launch landed
near 0.1, which is honestly a little generous to 1965.
What the probe caught (mostly: me)
The first probe run was a massacre with no shooting: 41 of 65 deaths were jets flying into the ground. The WW2 bot brain's terrain margins were tuned for 100 m/s props; at 250 m/s the pull-up bit a ridge too late, every time. The era now layers jet reflexes under the classic brain — longer lookahead, a stall floor, an earlier bounds turn.
The second run had jets flying beautifully and zero kills of any kind between planes — for ten straight minutes. Two bugs of mine, stacked. My missile-hunting override flew pure pursuit (the only geometry that winds a boresight lock) but held a timid throttle and hogged the trigger, so chases never closed into gun range and nobody ever fired. And my first flare model re-rolled seduction every quarter second at 75% — which is not a countermeasure, it's an immunity spell. Now a flare gets one roll per pop, the chase runs full burner, and inside gun range the classic lead-computing brain takes the trigger back. Guns stay the finisher; the missile is the reach.
The third catch was arithmetic: the original motor (720 m/s, a 2.2 s burn) could not physically catch a full-throttle Rhino launched from 1400 m astern — work the closure integral and it falls short. The motor now burns three seconds to 800 m/s, and the bots launch from inside eleven hundred where the math actually closes.
The rest of the war, aged fifteen years
The land theater already fights a missile-age war (that's what ATGMs
and stabilizers are), and the gun line at sea reads as timeless in
this fiction, so v1 leaves both rosters alone and lets the
consequences do the era's work: jets cross the flak envelope in a
third of the time but arrive fast and straight — exactly what fire
control loves, and the probe still scores surface AA as the sky's top
killer, same as the prop war. The design doc
(docs/early-jets-era.md) carries the menu for the next
passes: SA-2-style SAM rings that teach altitude bands, radar picket
ships with an RWR chirp, missile boats with chaff, and — since the
seam is just a roster plus a mechanics block — other periods
entirely.
Fly it: a combined-arms server with -era jets, then
R to launch a wound-up lock and L when the wingman
screams. The lock ring is server-truth, the growl is the seeker's,
and the break still beats the missile — exactly like 1965.