Skip to main content

Overview

The deadly corridor curriculum provides a structured progression from basic survival skills to complex combat scenarios. Training on levels 1-4 builds fundamental movement and targeting policies, while level 5 serves as the ultimate benchmark.
deadly_corridor_5.cfg is a significant jump from level 4. Habits learned in 1-4 (like straight running toward armor) may underperform on level 5. Adjust curriculum pacing accordingly.

Available Scenarios

Deadly Corridor Curriculum

All configs use deadly_corridor.wad:
Progress through 1-4 builds basic policies yet may result in movement habits that underperform on 5 (straight running toward armor). Fine-tune on level 5 with a lower learning rate to adapt movement behavior.

Other Scenarios

Progressive Deathmatch (Default)
  • Similar to survival, but kills don’t reset ammo count
  • Encourages proper ammo management
  • Movement tweaks make training easier
  • Uses progressive_deathmatch.wad
Survival
  • Classic survival mode
  • Uses survival.wad

Curriculum Design Principles

From README.md (lines 22-23):
Files deadly_corridor_1.cfg to deadly_corridor_4.cfg ramp difficulty gradually, but deadly_corridor_5.cfg is a significant jump (and the actual benchmark). Progress through 1-4 builds basic policies yet may result in movement habits that underperform on 5 (straight running toward armor). Adjust curriculum pacing accordingly.

Why Progressive Training Matters

Starting directly on level 5 often results in:
  • Random exploration with minimal reward signal
  • High variance in policy gradients
  • Slow or failed convergence
  • Neurons receiving noisy, uninformative feedback
Curriculum learning provides:
  • Gradual skill acquisition (movement → targeting → tactics)
  • Stronger reward signals early in training
  • More stable policy updates
  • Conditioned neurons with meaningful stimulus-response mappings

Configuration for Deadly Corridor

Architecture & Feedback Tuning

The specific values below are tuned for the deadly corridor scenario (deadly_corridor_1.cfgdeadly_corridor_5.cfg). Treat them as a starting point only — other scenarios (progressive deathmatch, survival) will likely require different values for feedback scaling, reward shaping, ray-cast geometry, and curriculum pacing.
From README.md lines 25-41:

PPO Hyperparameters

From README.md lines 19-20:
Many RL implementations use far lower gamma (0.95) and lambda (0.90) for GAE, but this can severely affect training on lower levels due to long-range dependencies, since you take less damage and therefore live longer.

Training Progression

Stage 1: Basic Movement (Level 1)

Train until:
  • Agent consistently moves forward
  • Picks up armor/health
  • Survival time > 30 seconds

Stage 2: Targeting (Levels 2-3)

Train until:
  • Agent turns toward enemies
  • Kill count increasing
  • Dodges incoming fire
Load checkpoint from Stage 1:

Stage 3: Tactics (Level 4)

Train until:
  • Strategic positioning
  • Ammo conservation
  • Multi-enemy engagement

Stage 4: Fine-Tuning (Level 5)

Level 5 is a significant difficulty spike. Use a lower learning rate to adapt existing policies without catastrophic forgetting.
From README.md line 54:
Consider fine-tuning on deadly_corridor_5.cfg with a lower learning rate to adapt movement behavior.

Monitoring Curriculum Progress

TensorBoard Metrics

Key metrics per curriculum stage:

Transition Criteria

Move to the next level when:
  1. Reward plateau: No improvement for 100 episodes
  2. Consistency: 80% of episodes achieve target metrics
  3. Skill demonstration: Agent exhibits desired behaviors (recorded gameplay)

Checkpoint Management

Saving Checkpoints

Checkpoints are automatically saved every 100 episodes (configurable):
From USAGE.md line 55-61:

Loading Between Stages

Common Curriculum Issues

Symptom: Works well on level 1-3, fails catastrophically on level 5.Causes:
  • Over-optimization on easy levels (e.g., always running straight)
  • Insufficient exploration on harder levels
Solutions:
  • Reduce steps_per_update on level 5 for more frequent updates
  • Increase entropy_coef temporarily to encourage exploration
  • Lower learning rate to prevent catastrophic forgetting
Symptom: Reward stays flat even on easiest level.Causes:
  • Neurons not responding to stimulation
  • Feedback channels misconfigured
  • Ablation mode accidentally enabled
Solutions:
  • Check decoder_ablation_mode='none'
  • Verify spike counts > 0 (TensorBoard: Spikes/total_count)
  • Inspect feedback amplitude/frequency in logs
  • Test with --show_window to observe behavior
Symptom: Large reward variance when loading checkpoint on new level.Causes:
  • Learning rate too high for new scenario
  • Value network hasn’t adapted to new reward distribution
Solutions:
  • Always reduce learning rate 2-3x when changing levels
  • Use normalize_returns=True for value stability
  • Run 50-100 episodes on new level before judging performance

Action Space Considerations

Hybrid vs. Discrete Actions

From README.md line 21:
Hybrid action spaces are used (and greatly preferred) unless use_discrete_action_set=True. Realistically, you only flip this if all else fails to reduce entropy as it greatly reduces the movement fidelity of the agent and just doesn’t look as cool.

Visualizing Training

From USAGE.md lines 35-39:
Run with visualization:
Open visualisation.html in a browser and update the IP to your training server.