Difference between revisions of "Monster Generation"

From DoomRL Wiki

Jump to: navigation, search
(Updated/corrected values and reordered based on minimum depth)
 
Line 15: Line 15:
 
|style="text-align: left; padding-left: 1ex"|'''Danger'''
 
|style="text-align: left; padding-left: 1ex"|'''Danger'''
 
|- style="background: #333;"
 
|- style="background: #333;"
|style="text-align: left"|[[Former human|Former Human]]
+
|style="text-align: left"|[[Former human]]
 
|0
 
|0
 
|12
 
|12
Line 21: Line 21:
 
|1
 
|1
 
|-
 
|-
|style="text-align: left"|[[Former sergeant|Former Sergeant]]
+
|style="text-align: left"|[[Former sergeant]]
 
|2
 
|2
 
|15
 
|15
Line 27: Line 27:
 
|2
 
|2
 
|- style="background: #333;"
 
|- style="background: #333;"
|style="text-align: left"|[[Former captain|Former Captain]]
+
|style="text-align: left"|[[Former captain]]
 
|5
 
|5
 
|15
 
|15
Line 45: Line 45:
 
|4
 
|4
 
|-
 
|-
|style="text-align: left"|[[Lost soul|Lost Soul]]
+
|style="text-align: left"|[[Lost soul]]
 
|6
 
|6
 
|16
 
|16
Line 51: Line 51:
 
|3
 
|3
 
|- style="background: #333;"
 
|- style="background: #333;"
|style="text-align: left"|[[Hell knight|Hell Knight]]
+
|style="text-align: left"|[[Hell knight]]
 
|9
 
|9
 
|15
 
|15
Line 63: Line 63:
 
|6
 
|6
 
|- style="background: #333;"
 
|- style="background: #333;"
|style="text-align: left"|[[Former commando|Former Commando]]
+
|style="text-align: left"|[[Pain elemental]]
|12
+
|17
+
|6
+
|7
+
|-
+
|style="text-align: left"|[[Pain elemental|Pain Elemental]]
+
 
|10
 
|10
|20
+
|40
 
|4
 
|4
 
|6
 
|6
 +
|-
 +
|style="text-align: left"|[[Former commando]]
 +
|12
 +
|21
 +
|6
 +
|7
 
|- style="background: #333;"
 
|- style="background: #333;"
|style="text-align: left"|[[Baron of hell|Baron of Hell]]
+
|style="text-align: left"|[[Baron of hell]]
 
|12
 
|12
 
|N/A
 
|N/A
Line 105: Line 105:
 
|14
 
|14
 
|-
 
|-
|style="text-align: left"|[[Nightmare imp|Nightmare Imp]]
+
|style="text-align: left"|[[Nightmare imp]]
 
|30
 
|30
 
|60
 
|60
Line 111: Line 111:
 
|6
 
|6
 
|- style="background: #333;"
 
|- style="background: #333;"
|style="text-align: left"|[[Nightmare demon|Nightmare Demon]]
+
|style="text-align: left"|[[Elite former human]]
 
|40
 
|40
|N/A
+
|80
 +
|4
 
|6
 
|6
|7
 
 
|-
 
|-
|style="text-align: left"|[[Nightmare cacodemon|Nightmare Cacodemon]]
+
|style="text-align: left"|[[Nightmare demon]]
 +
|40
 +
|N/A
 +
|6
 +
|8
 +
|- style="background: #333;"
 +
|style="text-align: left"|[[Nightmare cacodemon]]
 
|51
 
|51
 
|N/A
 
|N/A
 
|6
 
|6
 
|10
 
|10
|- style="background: #333;"
+
|-
|style="text-align: left"|[[Nightmare arachnotron|Nightmare Arachnotron]]
+
|style="text-align: left"|[[Nightmare arachnotron]]
 
|50
 
|50
 
|N/A
 
|N/A
 
|4
 
|4
 
|12
 
|12
|-
 
|style="text-align: left"|[[Nightmare arch-vile|Nightmare Arch-vile]]
 
|90
 
|N/A
 
|3
 
|20
 
 
|- style="background: #333;"
 
|- style="background: #333;"
|style="text-align: left"|[[Elite former human|Elite Former Human]]
+
|style="text-align: left"|[[Bruiser brother]]
|40
+
|50
|80
+
|N/A
|1
+
|6
|7
+
|14
 
|-
 
|-
|style="text-align: left"|[[Elite former sergeant|Elite Former Sergeant]]
+
|style="text-align: left"|[[Elite former sergeant]]
 
|60
 
|60
 
|90
 
|90
|1
+
|3
|10
+
|8
 
|- style="background: #333;"
 
|- style="background: #333;"
|style="text-align: left"|[[Elite former captain|Elite Former Captain]]
+
|style="text-align: left"|[[Elite former captain]]
 
|70
 
|70
 
|N/A
 
|N/A
|1
+
|3
|12
+
|10
|-
+
|style="text-align: left"|[[Elite former commando|Elite Former Commando]]
+
|80
+
|N/A
+
|1
+
|14
+
|- style="background: #333;"
+
|style="text-align: left"|[[Bruiser brother|Bruiser Brother]]
+
|50
+
|N/A
+
|6
+
|14
+
 
|-
 
|-
|style="text-align: left"|[[Lava elemental|Lava Elemental]]
+
|style="text-align: left"|[[Lava elemental]]
 
|70
 
|70
 
|N/A
 
|N/A
Line 177: Line 165:
 
|14
 
|14
 
|-
 
|-
|style="text-align: left"|[[Agony elemental|Agony Elemental]]
+
|style="text-align: left"|[[Elite former commando]]
 +
|80
 +
|N/A
 +
|2
 +
|14
 +
|- style="background: #333;"
 +
|style="text-align: left"|[[Agony elemental]]
 
|80
 
|80
 
|N/A
 
|N/A
 
|1
 
|1
 
|20
 
|20
|- style="background: #333;"
+
|-
 
|style="text-align: left"|[[Cyberdemon]]
 
|style="text-align: left"|[[Cyberdemon]]
 
|80
 
|80
Line 188: Line 182:
 
|1
 
|1
 
|30
 
|30
 +
|- style="background: #333;"
 +
|style="text-align: left"|[[Nightmare arch-vile]]
 +
|90
 +
|N/A
 +
|3
 +
|20
 
|}
 
|}
  
Line 215: Line 215:
 
|10
 
|10
 
|-
 
|-
|style="text-align: left"|1 × baron of hell, 4-9 × imp
+
|style="text-align: left"|4-9 × demon
|13
+
|21
+
 
|10
 
|10
 +
|22
 +
|4
 
|- style="background: #333;"
 
|- style="background: #333;"
|style="text-align: left"|1 × former commando, 2-6 × former sergeant
+
|style="text-align: left"|1 × baron of hell, 4-9 × imp
|15
+
|13
 
|21
 
|21
 
|10
 
|10
Line 227: Line 227:
 
|style="text-align: left"|1 × pain elemental, 3-8 × lost soul
 
|style="text-align: left"|1 × pain elemental, 3-8 × lost soul
 
|13
 
|13
|21
+
|25
 
|8
 
|8
 
|- style="background: #333;"
 
|- style="background: #333;"
|style="text-align: left"|4-9 × demon
+
|style="text-align: left"|1 × former commando, 2-6 × former sergeant
 +
|15
 +
|21
 
|10
 
|10
|22
 
|4
 
 
|-
 
|-
 
|style="text-align: left"|1 × baron of hell, 2-4 × hell knight
 
|style="text-align: left"|1 × baron of hell, 2-4 × hell knight
Line 274: Line 274:
 
|N/A
 
|N/A
 
|2
 
|2
 +
|-
 +
|style="text-align: left"|2 × pain elemental, 2-5 × cacodemon
 +
|30
 +
|N/A
 +
|4
 
|}
 
|}
  

Latest revision as of 19:33, 7 August 2024

Technical
This article discusses technical aspects of DoomRL and will be of limited interest to most players.

Each monster has a minimum dlevel, a maximum dlevel, a weight, and a danger rating. Minimum level and maximum level determine whether the monster can appear on a floor at all. Weight indicates relative likelihood of appearing. Danger indicates (inversely) how many can be generated.

The displayed minimum level is valid for ITYTD and HNTR, and it is smaller at higher difficulties (-3 for HMP and -6 for UV/N!), which means that tougher monsters start appearing earlier in the game. Other values are unaffected by difficulty.

For the more all enemies that can normally spawn, here are the values.

Monster Generation Parameters
Monster Minimum Maximum Weight Danger
Former human 0 12 10 1
Former sergeant 2 15 10 2
Former captain 5 15 10 3
Imp 0 17 8 2
Demon 4 20 6 4
Lost soul 6 16 10 3
Hell knight 9 15 6 6
Cacodemon 10 50 6 6
Pain elemental 10 40 4 6
Former commando 12 21 6 7
Baron of hell 12 N/A 6 10
Arachnotron 13 50 4 9
Revenant 13 N/A 5 12
Mancubus 15 N/A 7 12
Arch-vile 16 N/A 4 14
Nightmare imp 30 60 8 6
Elite former human 40 80 4 6
Nightmare demon 40 N/A 6 8
Nightmare cacodemon 51 N/A 6 10
Nightmare arachnotron 50 N/A 4 12
Bruiser brother 50 N/A 6 14
Elite former sergeant 60 90 3 8
Elite former captain 70 N/A 3 10
Lava elemental 70 N/A 1 16
Shambler 80 N/A 3 14
Elite former commando 80 N/A 2 14
Agony elemental 80 N/A 1 20
Cyberdemon 80 N/A 1 30
Nightmare arch-vile 90 N/A 3 20

Additionally, the are monster groups. Monsters groups have their own minimum and maximum levels and weights that are used instead of the values for the the individual monsters. The effective danger of a group is the sum of the dangers of its monsters.

Monster Groups
Monsters Minimum Maximum Weight
1 × former sergeant, 2-6 × former human 7 16 10
5-8 × imp 5 8 10
1 × hell knight, 2-6 × imp 9 12 10
4-9 × demon 10 22 4
1 × baron of hell, 4-9 × imp 13 21 10
1 × pain elemental, 3-8 × lost soul 13 25 8
1 × former commando, 2-6 × former sergeant 15 21 10
1 × baron of hell, 2-4 × hell knight 20 N/A 4
3-6 × arachnotron 20 N/A 3
2 × arch-vile, 4 × former captain, 4 × former sergeant, 3-6 × former human 20 N/A 2
2 × baron of hell, 2-3 × former captain, 2-3 × former sergeant 20 N/A 5
2 × arch-vile, 2-5 × mancubus 20 N/A 4
2 × arch-vile, 2-5 × revenant 20 N/A 4
2 × arch-vile, 3-9 × baron of hell 25 N/A 4
2 × arch-vile, 2-8 × former captain, 2-3 × mancubus 25 N/A 2
2 × pain elemental, 2-5 × cacodemon 30 N/A 4

Notice that monster groups are the only way for some enemies to appear on very deep levels.

Each level is given a total danger rating depending on depth and difficulty level. Monster placement usually proceeds as follows: while the total danger of enemies placed so far is less than the danger rating of the level, pick a new monster or monster group and add it (entirely) to the level. Picking a monster or group is done using the weights as relative probabilities for all the monsters and groups with a valid dlevel range. When a monster group is picked, all its ranges are resolved uniformly and independently. Each monster is added to a random empty tile; for monster groups, each monster is added separately.

The total danger level is calculated from dlevel as follows:

Difficulty Danger
I'm Too Young to Die 6 + 2.2 × dlevel
Hey, Not Too Rough 0.6 × sqrt(500 × dlevel) = 13.4 × sqrt(dlevel)
Hurt Me Plenty 20 × sqrt(dlevel)
Ultra-Violence 32 × sqrt(dlevel)
Nightmare! 40 × sqrt(devel)

In addition to these monsters, certain level features (e.g. vaults) may cause additional monsters to spawn on the level without counting against this limit.

Personal tools