Doom metrics
health and damage values, common sizes and dimensions for Doom maps
Last updated
health and damage values, common sizes and dimensions for Doom maps
Last updated
Below are some core gameplay values and numbers that are useful for level design in Doom / Doom 2.
However, keep in mind this is an action game with aiming and dodging -- so the actual damage and damage per second (DPS) will depend heavily on enemy behavior, available cover, height changes, enemy composition, etc.
For more on what metrics are and why they're useful, see Metrics.
Doom uses a grid with power-of-two numbers (e.g. 8, 16, 32, 64, 128, 256...) and textures are designed to work in increments of 8, 16, or 32.
Doom's graphics were designed for a 16:10 aspect ratio stretched vertically by 20% with non-square pixels for a 4:3 display. Today, this results in a lot of its art assets to appear vertically "squished". It also distorts any attempt at a coherent real world scale for Doom, which we can guess at: 16 horizontal Doom units = 10 vertical Doom units = 1 foot = 0.6 meters.
Hallway (very narrow), crate, teleport pad
64
Hallway (narrow), big door, wall textures
128
Small room
256-512
Medium room
512-1024
Large room
1024-1536
Average map size from Doom 1, Episode 1
~4000
Maximum map size (recommended, minimal glitches)
32767 (+/- 16384)
Maximum map size (technical, buggy and unstable)
65535 (+/- 32768)
Maximum map size: to calculate distances, Doom uses 16-bit signed integers which have a maximum value of +/- 32767. However, if you actually built a map that stretched from -32767 to +32767 (across 65535 units!) and somehow tricked the engine into running it, then it would still break other distance calculations like a monster's line of sight, because a value of 65535 would overflow past +32767 to become 0. For best results, keep all map geometry within 16384 units of the (0, 0, 0) origin.
Doom randomly simulates damage values by rolling virtual dice with each hit. For the shotguns, there's an additional buckshot spread simulation where each pellet must connect with the hitbox for full damage.
The damage per second (DPS) is a rough estimate based on the fire rate multiplied by the average damage per shot.
Fist
Melee
0-32
2 punches
2-20
22
Berserk Fist
Melee
0-32
2 punches
20-200
220
Chainsaw
Melee
0-33
9 revolutions
2-20
90
Pistol
Hitscan
0-512?
2.5 bullets
5-15
25
Shotgun
Near
0-192?
1 shot (7 pellets)
5-15 * 7 =
35-105
70
Super Shotgun
Close
0-128?
1 shot (20 pellets)
5-15 * 20 =
100-300
150
Chaingun
Hitscan
0-512?
9 bullets
5-15
90
Rocket Launcher
Mid / Long
128-512?
1 rocket (+ 128 range splash)
20-160 +
0-128
150
Plasma Gun
Mid
0-384?
12 cells
5-40
270
BFG 9000
Mid
0-384?
1 shot (+ 40 tracers, 1024 range)
100-800 +
49-87
~1200
Most maps begin with players killing low health enemies with the pistol and shotgun. Eventually the player relies more on the chaingun, super shotgun, and rocket launcher, while occasionally switching to the plasma gun for tougher enemies.
The rocket launcher, plasma gun, and BFG are usually less effective at very long range because of the lag built into their projectiles' travel time. At long distances, a monster can move out of the way before getting hit. Doom's autoaiming and randomized monster movement also means it can be tricky to lead shots. You can balance long range encounters toward the player's favor by placing monsters on pillars with no cover, limiting their ability to dodge the player's projectiles.
Monsters can look in cardinal (N, E, S, W) and ordinal (NE, SE, SW, NW) directions, essentially in 45 degree increments. They have a 180 degree sight cone based on their initial facing, and can hear combat sounds based on areas bounded by linedefs set to block sound.
If set to "ambush" mode, monsters have a 360 degree sight cone and ignore sounds.
Minimum hallway size is given as (monster width + 2) x (monster height + 2)
but in practice, your hallways should usually be much wider since monsters might "step" in larger increments, and monsters block other monsters. Narrow off-angle hallways will force monsters into slower zig-zag movements, because remember, they can only turn and move in 45 degree increments.
Stairs are tricky for monsters. In general, steps with long depths and shallow rises are always more dependable. Step height must always be 24 units or less (or else the monster won't cross) and minimum step depth / maximum slope is proportional to the monster width. For example, for a step that is 24u high, a trooper requires a step that is 33u deep (35 degree rise, 2:3 ratio) while a demon is wider so it requires 51u deep (25 degrees, 1:2 ratio). If you want to see the bounding box calculations yourself, see the PCheckPosition()
and PTryMove()
functions in p_map.c
of the Doom source code.
To simplify building for monsters, we generally recommend:
Minimum hallway size: 128 wide x 128 tall, mostly built orthogonally at 90 degree angles to align with the grid with occasional 45 degree angles.
Stairway step size: 16 high x 64 deep (15 degree rise, 1:4 ratio) or 8 high x 32 deep.
Monsters will use melee attacks within 64 units of their target, though the Revenant will attempt to use a melee attack within 196 units even if the target is too far. If further than 64 units, then monsters with ranged attacks are more likely to use attack the closer they are to the player, up to a maximum distance of 2048 units. But the Arch-vile has a particularly dangerous ranged attack, so it will only attack within 896 units.
When hit, monsters have a random chance to be stunned in a pain state -- weapons with fast fire rates (chain gun, plasma gun) or multiple projectiles (shotgun, super shotgun) are particularly good at stunlocking monsters and interrupting their attacks.
For much more on monster behavior and debugging, see "Monster behavior" on The Doom Wiki.
Player
100
--
33 x 58
1
Doom 2 includes all the Doom 1 monsters, and added more mid tier monsters designed to survive longer and interact with other monsters.
An influential Doomworld poster Linguica offers these helpful design thoughts on Doom monster design:
... Doom 2 monsters are great. They nearly all enhance the gameplay along one or more of three axes:
time awareness - what is happening that I need to immediately address?
immediate spatial awareness - what is in my close vicinity right now?
general spatial awareness - what is the architectural layout, like walls, buildings, etc, in my area?
Doom 1 enemies were designed by what we would consider today to be novice FPS players, for whom basic movement and avoidance were challenging enough, without monsters making it much more difficult. However, as a more advanced FPS player, what tactical problems do you end up having while fighting them? Beyond getting boxed into a dead end, there is practically nothing preventing you from kiting Doom monsters indefinitely with little challenge. The only problems you would run into are being progressively plinked by shotgunners (troopers aren't even worth mentioning) or splash damage from a Cyberdemon's rockets (I'm discounting the Spiderdemon as a "normal" enemy here, but it is basically a giant rapid fire shotgunner in practice anyway, so whatever).
Now let's look at the new Doom 2 monsters and what they bring to the table:
The Chaingunner is a "low-level" enemy that even a more advanced player needs to worry about, because especially en masse, they can really wreck you quickly. There is a time awareness factor because if you don't take care of them quickly, your health will be severely eroded. There is also an element of general spatial awareness in case you need to retreat behind cover.
The Mancubus's offset fireballs mean you can't just rely on mindless strafing around projectiles and actually need to pay attention to them, or else you can end up running into one. This implicates your immediate spatial awareness. (Did you end up learning the "Mancubus dance" of strafing left-right-center? Then congratulations, the game taught you a new behavior.)
The Arachnotron's rapid-fire plasma also implicates immediate spatial awareness because if you're doing any strafing back and forth, you have to watch out for "crossing the stream" and being hit in the process. Do you think it's a coincidence the Mancubus and Arachnotron are introduced in quick succession on the same level, which also includes no other enemies? I don't think so. Both enemies make you do more than the Doom 1 hallmark of simple strafing around a single fireball. The game is telling you, in case you haven't gotten the point yet, that this is not going to work anymore.
The Pain Elemental is a annoying enemy, yes, but it is there purely to implicate your time awareness - it can't even hurt you directly! Its danger to you is directly proportional to how long you let it stick around.
The Revenant's homing missiles, again, mean you can't just rely on mindless strafing around projectiles and actually need to pay attention to them, which involves your immediate spatial awareness, and you also need to keep mindful of available cover so you can get rid of the homing fireball, which involves general spatial awareness. You could even argue it involves your time awareness, since if you let a large number of homing fireballs accumulate, they could end up killing you instantly. (Or, perhaps, another enemy??)
The Archvile's fire attack strongly implicates your general spatial awareness and time awareness - you need to know where cover is, and you need to get there immediately. Furthermore, its secondary behavior of resurrecting dead enemies involves yet more time awareness - if you leave it alone too long, it's going to being back all those enemies you already went to the effort to kill.
The Hell Knight is the only new enemy that doesn't make the game tactically deeper along one of these axes. It's just a Baron of Hell without being quite so tedious to fight as a real Baron. This does give mappers a new option for when and how to use the Baron, though, which is a good thing.
-- Linguica on 28 August 2014 in thread "Doom 1 or Doom 2?" on Doomworld
This page uses data from the Doom Wiki, under CC-BY-SA 4.0 International license.
Doom Metrics by Scott Ampoker