DOOM self-play experiment

Two compact tactical policies, trained against a league of earlier opponents in the real DOOM engine. This is parameter search over existing behaviors, not a neural network learning DOOM from pixels.

5596 simulated matches · 32.7 seconds of wall time · seed 20260905

Player improvement

+0.137

Paired score change against the original opponent.
95% bootstrap interval: [-0.017, +0.300]

Inconclusive at 95%

Enemy improvement

-0.088

Paired score change against the original opponent.
95% bootstrap interval: [-0.233, +0.048]

Inconclusive at 95%

Held-out matchups

All cells use the same separate evaluation seeds. Training uses E1M1/E1M2 combat drills; E1M3 is unseen during selection. Wins require killing all opponents; death is a loss; the time limit produces a draw. Health and damage statistics remain original DOOM values.

Player / enemy checkpointPlayer winsEnemy winsDrawsPlayer score
initial / initial821400.838
initial / middle821400.842
initial / final861000.927
middle / initial841200.897
middle / middle861000.952
middle / final821310.861
final / initial87810.975
final / middle89701.014
final / final91411.068

Promotion history

Each candidate must beat its incumbent on separate validation encounters against the same opponents. These changing matchups are not directly comparable across generations.

GenerationSideValidation score gainDecision
1player-0.027Kept incumbent
1enemy+0.028Promoted
2player-0.021Kept incumbent
2enemy-0.044Kept incumbent
3player+0.011Promoted
3enemy+0.000Kept incumbent
4player+0.015Promoted
4enemy+0.007Promoted
5player+0.000Kept incumbent
5enemy-0.003Kept incumbent
6player+0.000Kept incumbent
6enemy-0.019Kept incumbent
7player-0.021Kept incumbent
7enemy+0.017Promoted
8player+0.013Promoted
8enemy+0.371Promoted
9player+0.017Promoted
9enemy+0.416Promoted
10player-0.003Kept incumbent
10enemy+0.253Promoted
11player+0.030Promoted
11enemy-0.262Kept incumbent
12player-0.003Kept incumbent
12enemy-0.166Kept incumbent
13player-0.064Kept incumbent
13enemy-0.009Kept incumbent
14player+0.029Promoted
14enemy+0.014Promoted
15player-0.165Kept incumbent
15enemy+0.344Promoted
16player+0.000Kept incumbent
16enemy-0.002Kept incumbent

Interpretation

The bots receive structured line-of-sight observations and geometry queries. Short combat drills do not establish full-level competence or improvement against humans. Confidence intervals summarize these sampled encounters, not every DOOM map. Trained policies are saved for further experiments and are not automatically enabled in the browser.

Full results and checkpoints · Raw match results

Engine, trainer, and IWAD fingerprint: 5083a1418e445c8bd2ae6d85ade234ab5cdb82927e77420a55d41809274a9b9e