Scenarios¶
import comrad
for s in comrad.list_scenarios():
print(f"{s.name:32} {s.num_agents} agents score: {s.score}")
Every scenario is a first-person, partially observed, multi-agent task. Each agent sees only its own 128×72 RGB view and acts through a small tuple of discrete action heads. Scenarios are grouped by the cooperative capability they stress.
| Scenario | Players | Score (true_objective) |
Capability tested |
|---|---|---|---|
| Stag Hunt Arena | 2–4 | Stags killed | Convention formation, equilibrium selection |
| Rhythm Sync | 2 | Stages completed | Temporal coordination |
| Foraging Commons | 2–4 | Survival time | Commons dilemma, public goods |
| Co-op Puzzle | 2 | Completed puzzle pairs | Turn-taking, partner affordances |
| Platform Chain | 2 | Joint checkpoint progress | Long-horizon joint movement |
| Armory Siege | 2–8 | Shaped episodic return | Combat coordination, resource routing |
| Co-op Health Gathering | 2–8 | Survival time | Resource sharing |
| Lava Pit | 2 | Joint bridges cleared | Reciprocal assistance |
| Smart Enemies | 2–4 | Enemies killed | Spacing, target prioritisation |
| Dumb Enemies | 2–4 | Enemies killed | Cooperative pursuit |
| Ammo Carrier | 2 | Survival time | Role-specialised logistics |
| Stealth Labyrinth | 2 | Enemies destroyed / total | Extreme role asymmetry |
| Lava Maze | 2 | Maze levels cleared | Emergent communication |
comrad.list_scenarios() also returns a few easier or alternative variants (platform_chain_easy, lava_maze_simple, rhythm_sync_dense, stag_hunt_arena_continuous*). They are useful for debugging and curricula, but they are not part of the main results table.
Map generation¶
The maps were generated procedurally. The generators live in the separate DoomGen/ folder of the repository and are not part of the comrad-bench package. The package ships ready-made .wad and .cfg files under comrad/scenarios/.