Every shot is a roll: why hits and damage work as they do
Published
Every shot in the game is a dice roll set by Marks, the tech levels. Here is why each rule is what it is. The fighter numbers themselves: fighters.
The Mark ladder: one up is worth about five
Why: “Steep and readable at a glance.” The owner’s words: “oh, a Mk3 fighter: it just wasted 30 Mk1s, no worries.” The target: one Mark up is worth about 5 of the one below, two up about 30, three up and they can’t touch it. A gentle ladder or a long one was dropped as unreadable. This is the aim; the tuning to it is not finished.
Decided 2026-10-24 · ship_spec.md, The Mark ladder
Every shot is a roll, 1 % to 99 %
Why: “Every shot is a roll” and “A hit is never certain, nor quite impossible (a very lucky shot).” Hit chance is the shooter’s accuracy, plus its weapon’s bonus against the target’s size, minus the target’s evasion.
| Mark | Accuracy | Evasion | Power |
|---|---|---|---|
| Mk0 | 0.45 | 0.00 | 0.5 |
| Mk1 | 0.60 | 0.05 | 1 |
| Mk2 | 0.75 | 0.30 | 2 |
| Mk3 | 0.90 | 0.70 | 4 |
Only small craft dodge; evading adds 0.2.
Decided 2026-10-23 · scripts/marks.gd hit_chance(), MIN_HIT := 0.01, MAX_HIT := 0.99, EVADE_BONUS := 0.2
A Mk3 against a Mk1 is a jet against a biplane
Why: “it hits nearly every time and is all but never hit (untouchable is fine). Equals trade and both take heavy losses.”
| Shooter ↓ | Mk0 | Mk1 | Mk2 | Mk3 |
|---|---|---|---|---|
| Mk0 | 45 % | 40 % | 15 % | 1 % |
| Mk1 | 60 % | 55 % | 30 % | 1 % |
| Mk2 | 75 % | 70 % | 45 % | 5 % |
| Mk3 | 90 % | 85 % | 60 % | 20 % |
Decided 2026-10-23 · scripts/marks.gd MARKS
Roles counter Marks
Why: “Anti-air gets +25-30 % against small craft and barely scratches a hull; fighter guns do a tenth of their damage to a big ship.” Point defence gets +0.25 against small craft; a turret holds still and doesn’t dodge, so it is +0.1 to hit.
Decided 2026-10-23 · scripts/marks.gd WEAPONS[weapon].vs[size]
A fighter takes about 36 hits from its equal
Why: “an even Mk3 1v1 lasts ~13-18 s of shooting, long enough to see it going wrong and pull out; a Mark above still kills it in a moment.” Damage is the weapon’s damage times the shooter’s power times the share for the target’s size: a Mk3 gun does 10 a hit to a fighter, and a Mk3 fighter has 360 hull.
Decided 2026-10-23 · scripts/marks.gd damage(), HULLS["fighter"] = 90 × power
Range from gun spread: 500 m to 1,250 m
Why: up to n = 2.5 m ÷ the spread angle, “the spread circle is no bigger than the target, so nearly every round that’s aimed right hits”. Past it, hits fall with the square of the distance, and the gun’s range ends at 2n, where a quarter are left. A longer 3n range was tried and judged too long. Spreads by Mark: 10, 8, 6 and 4 milliradians, giving 500, 625, 833 and 1,250 m; the Mk0 to Mk2 spreads are the design’s own guesses. Point defence uses the same spreads.
Decided 2026-10-26 · scripts/marks.gd SPREAD, SPREAD_TARGET := 2.5, weapon_range() = 2 × near band
The 8° gun cone
Why: the reason for 8° itself is not yet recorded. What it does: “the gun cone (8°) is what makes facing pay (the better-placed fires more, the other fires nothing back)”.
Built 2026-10-23 · scripts/space_fighter.gd GUN_CONE := 8.0
No position bonuses on the roll
Why: hits stay rolled and the gun cone makes facing pay, so there are no positional hit modifiers: no bonus for crossing speed or crossfire. The owner: “leave be”.
Decided 2026-10-26 · ship_spec.md, Combat v2: Marks