DOOM: learning better adversaries

Parameter controllers followed by two 149-weight neural networks, trained through CPU mutation and selection in the real DOOM engine. Networks choose tactics from structured combat observations; navigation, aim execution, and cover mechanics are provided by the existing controllers.

Both neural policies passed the predeclared primary criterion: higher win rate and score against the same original opponents, with positive lower bounds in paired 97.5% bootstrap intervals.

Fresh encounters: E1M1–E1M3

Player / enemyMatchesPlayer winsEnemy winsDrawsPlayer score
original / original15361339 (87.2%)195 (12.7%)20.877
parameter / original15361493 (97.2%)31 (2.0%)121.154
original / parameter15361331 (86.7%)201 (13.1%)40.866
neural / original15361490 (97.0%)35 (2.3%)111.148
original / neural15361304 (84.9%)231 (15.0%)10.820
parameter / parameter15361500 (97.7%)27 (1.8%)91.160
neural / neural15361492 (97.1%)38 (2.5%)61.143
constant neural / original15361492 (97.1%)32 (2.1%)121.152
original / constant neural15361319 (85.9%)212 (13.8%)50.844

Differences below favor the named side when positive. Brackets give paired 97.5% bootstrap intervals; pp means percentage points.

SideComparisonWin-rate differenceScore difference
Playerparameter vs original+10.026 pp [+8.073, +12.044]+0.277 [+0.233, +0.320]
Playerneural vs original+9.831 pp [+7.812, +11.849]+0.271 [+0.229, +0.316]
Playerneural vs parameter-0.195 pp [-1.367, +0.911]-0.006 [-0.029, +0.017]
Playerneural vs constant-0.130 pp [-1.237, +0.977]-0.004 [-0.028, +0.019]
Enemyparameter vs original+0.391 pp [-1.302, +2.083]+0.011 [-0.024, +0.046]
Enemyneural vs original+2.344 pp [+0.260, +4.492]+0.057 [+0.011, +0.100]
Enemyneural vs parameter+1.953 pp [-0.195, +4.036]+0.046 [-0.001, +0.091]
Enemyneural vs constant+1.237 pp [-0.781, +3.190]+0.025 [-0.020, +0.068]

Unseen geometry: E1M4–E1M5

Player / enemyMatchesPlayer winsEnemy winsDrawsPlayer score
original / original512446 (87.1%)66 (12.9%)00.872
parameter / original512504 (98.4%)8 (1.6%)01.152
original / parameter512458 (89.5%)54 (10.5%)00.925
neural / original512500 (97.7%)12 (2.3%)01.133
original / neural512453 (88.5%)59 (11.5%)00.906
parameter / parameter512504 (98.4%)8 (1.6%)01.154
neural / neural512495 (96.7%)17 (3.3%)01.110
constant neural / original512504 (98.4%)8 (1.6%)01.152
original / constant neural512453 (88.5%)59 (11.5%)00.907

Differences below favor the named side when positive. Brackets give paired 97.5% bootstrap intervals; pp means percentage points.

SideComparisonWin-rate differenceScore difference
Playerparameter vs original+11.328 pp [+8.008, +14.648]+0.280 [+0.206, +0.361]
Playerneural vs original+10.547 pp [+6.836, +14.258]+0.261 [+0.181, +0.350]
Playerneural vs parameter-0.781 pp [-2.148, +0.586]-0.019 [-0.050, +0.010]
Playerneural vs constant-0.781 pp [-2.344, +0.781]-0.019 [-0.053, +0.014]
Enemyparameter vs original-2.344 pp [-5.664, +0.977]-0.053 [-0.124, +0.017]
Enemyneural vs original-1.367 pp [-5.078, +2.539]-0.034 [-0.116, +0.047]
Enemyneural vs parameter+0.977 pp [-2.344, +4.297]+0.019 [-0.055, +0.093]
Enemyneural vs constant+0.000 pp [-2.930, +2.930]+0.001 [-0.062, +0.065]

What this establishes

Gains over the original opponent measure improvement from the full training pipeline. Neural-versus-parameter results isolate the additional training stage, but do not control for its extra compute. The constant-network ablation removes input connections while preserving learned biases and output weights; neural-versus-constant results test whether state-dependent decisions help this frozen model.

Each drill starts with a pistol player and two or three normal monsters around a map start. A player win kills all enemies; an enemy win kills the player; a 20-second timeout is a draw. Scores add a small damage/health term to the +1/−1/0 outcome. Health, damage, movement limits, and minimum attack delay stay unchanged. Final cases never select policies. These results cover short combat drills, not full levels or human opponents.

Browser behavior is unchanged. Checkpoints remain offline artifacts for future watch mode.

Audit files

All metrics · Frozen policies and training history · Model dictionary · Compressed raw matches

18,432 distinct evaluation matches · 41.0 seconds · seed family 9,000,000

Source/IWAD fingerprint: 8e755ef8d102e0bcbfc38190f8b424145afbc4d1f2f684b5015af9bcd788b375