Difference between revisions of "Monster Generation"
From DoomRL Wiki
Rabinowitz (Talk | contribs) (update monster table to 0997) |
Rabinowitz (Talk | contribs) (cross-links) |
||
Line 13: | Line 13: | ||
|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 | + | |style="text-align: left"|[[Former human|Former Human]] |
|0 | |0 | ||
|12 | |12 | ||
Line 19: | Line 19: | ||
|1 | |1 | ||
|- | |- | ||
− | |style="text-align: left"|Former Sergeant | + | |style="text-align: left"|[[Former sergeant|Former Sergeant]] |
|2 | |2 | ||
|15 | |15 | ||
Line 25: | Line 25: | ||
|2 | |2 | ||
|- style="background: #333;" | |- style="background: #333;" | ||
− | |style="text-align: left"|Former Captain | + | |style="text-align: left"|[[Former captain|Former Captain]] |
|5 | |5 | ||
|15 | |15 | ||
Line 31: | Line 31: | ||
|3 | |3 | ||
|- | |- | ||
− | |style="text-align: left"|Imp | + | |style="text-align: left"|[[Imp]] |
|0 | |0 | ||
|17 | |17 | ||
Line 37: | Line 37: | ||
|2 | |2 | ||
|- style="background: #333;" | |- style="background: #333;" | ||
− | |style="text-align: left"|Demon | + | |style="text-align: left"|[[Demon]] |
|4 | |4 | ||
|20 | |20 | ||
Line 43: | Line 43: | ||
|4 | |4 | ||
|- | |- | ||
− | |style="text-align: left"|Lost Soul | + | |style="text-align: left"|[[Lost soul|Lost Soul]] |
|6 | |6 | ||
|16 | |16 | ||
Line 49: | Line 49: | ||
|3 | |3 | ||
|- style="background: #333;" | |- style="background: #333;" | ||
− | |style="text-align: left"|Hell Knight | + | |style="text-align: left"|[[Hell knight|Hell Knight]] |
|9 | |9 | ||
|15 | |15 | ||
Line 55: | Line 55: | ||
|6 | |6 | ||
|- | |- | ||
− | |style="text-align: left"|Cacodemon | + | |style="text-align: left"|[[Cacodemon]] |
|10 | |10 | ||
|50 | |50 | ||
Line 61: | Line 61: | ||
|6 | |6 | ||
|- style="background: #333;" | |- style="background: #333;" | ||
− | |style="text-align: left"|Former Commando | + | |style="text-align: left"|[[Former commando|Former Commando]] |
|12 | |12 | ||
|17 | |17 | ||
Line 67: | Line 67: | ||
|7 | |7 | ||
|- | |- | ||
− | |style="text-align: left"|Pain Elemental | + | |style="text-align: left"|[[Pain elemental|Pain Elemental]] |
|10 | |10 | ||
|20 | |20 | ||
Line 73: | Line 73: | ||
|6 | |6 | ||
|- style="background: #333;" | |- style="background: #333;" | ||
− | |style="text-align: left"|Baron of Hell | + | |style="text-align: left"|[[Baron of hell|Baron of Hell]] |
|12 | |12 | ||
|N/A | |N/A | ||
Line 79: | Line 79: | ||
|10 | |10 | ||
|- | |- | ||
− | |style="text-align: left"|Arachnotron | + | |style="text-align: left"|[[Arachnotron]] |
|13 | |13 | ||
|50 | |50 | ||
Line 85: | Line 85: | ||
|9 | |9 | ||
|- style="background: #333;" | |- style="background: #333;" | ||
− | |style="text-align: left"|Revenant | + | |style="text-align: left"|[[Revenant]] |
|13 | |13 | ||
|N/A | |N/A | ||
Line 91: | Line 91: | ||
|12 | |12 | ||
|- | |- | ||
− | |style="text-align: left"|Mancubus | + | |style="text-align: left"|[[Mancubus]] |
|15 | |15 | ||
|N/A | |N/A | ||
Line 97: | Line 97: | ||
|12 | |12 | ||
|- style="background: #333;" | |- style="background: #333;" | ||
− | |style="text-align: left"|Arch-vile | + | |style="text-align: left"|[[Arch-vile]] |
|16 | |16 | ||
|N/A | |N/A | ||
Line 103: | Line 103: | ||
|14 | |14 | ||
|- | |- | ||
− | |style="text-align: left"|Nightmare Imp | + | |style="text-align: left"|[[Nightmare imp|Nightmare Imp]] |
|30 | |30 | ||
|60 | |60 | ||
Line 109: | Line 109: | ||
|6 | |6 | ||
|- style="background: #333;" | |- style="background: #333;" | ||
− | |style="text-align: left"|Nightmare Demon | + | |style="text-align: left"|[[Nightmare demon|Nightmare Demon]] |
|40 | |40 | ||
|N/A | |N/A | ||
Line 115: | Line 115: | ||
|7 | |7 | ||
|- | |- | ||
− | |style="text-align: left"|Nightmare Cacodemon | + | |style="text-align: left"|[[Nightmare cacodemon|Nightmare Cacodemon]] |
|51 | |51 | ||
|N/A | |N/A | ||
Line 121: | Line 121: | ||
|10 | |10 | ||
|- style="background: #333;" | |- style="background: #333;" | ||
− | |style="text-align: left"|Nightmare Arachnotron | + | |style="text-align: left"|[[Nightmare arachnotron|Nightmare Arachnotron]] |
|50 | |50 | ||
|N/A | |N/A | ||
Line 127: | Line 127: | ||
|12 | |12 | ||
|- | |- | ||
− | |style="text-align: left"|Nightmare Arch-vile | + | |style="text-align: left"|[[Nightmare arch-vile|Nightmare Arch-vile]] |
|90 | |90 | ||
|N/A | |N/A | ||
Line 133: | Line 133: | ||
|20 | |20 | ||
|- style="background: #333;" | |- style="background: #333;" | ||
− | |style="text-align: left"|Elite Former Human | + | |style="text-align: left"|[[Elite former human|Elite Former Human]] |
|40 | |40 | ||
|80 | |80 | ||
Line 139: | Line 139: | ||
|7 | |7 | ||
|- | |- | ||
− | |style="text-align: left"|Elite Former Sergeant | + | |style="text-align: left"|[[Elite former sergeant|Elite Former Sergeant]] |
|60 | |60 | ||
|90 | |90 | ||
Line 145: | Line 145: | ||
|10 | |10 | ||
|- style="background: #333;" | |- style="background: #333;" | ||
− | |style="text-align: left"|Elite Former Captain | + | |style="text-align: left"|[[Elite former captain|Elite Former Captain]] |
|70 | |70 | ||
|N/A | |N/A | ||
Line 151: | Line 151: | ||
|12 | |12 | ||
|- | |- | ||
− | |style="text-align: left"|Elite Former Commando | + | |style="text-align: left"|[[Elite former commando|Elite Former Commando]] |
|80 | |80 | ||
|N/A | |N/A | ||
Line 157: | Line 157: | ||
|14 | |14 | ||
|- style="background: #333;" | |- style="background: #333;" | ||
− | |style="text-align: left"|Bruiser Brother | + | |style="text-align: left"|[[Bruiser brother|Bruiser Brother]] |
|50 | |50 | ||
|N/A | |N/A | ||
Line 163: | Line 163: | ||
|14 | |14 | ||
|- | |- | ||
− | |style="text-align: left"|Lava Elemental | + | |style="text-align: left"|[[Lava elemental|Lava Elemental]] |
|70 | |70 | ||
|N/A | |N/A | ||
Line 169: | Line 169: | ||
|16 | |16 | ||
|- style="background: #333;" | |- style="background: #333;" | ||
− | |style="text-align: left"|Shambler | + | |style="text-align: left"|[[Shambler]] |
|80 | |80 | ||
|N/A | |N/A | ||
Line 175: | Line 175: | ||
|14 | |14 | ||
|- | |- | ||
− | |style="text-align: left"|Agony Elemental | + | |style="text-align: left"|[[Agony elemental|Agony Elemental]] |
|80 | |80 | ||
|N/A | |N/A | ||
Line 181: | Line 181: | ||
|20 | |20 | ||
|- style="background: #333;" | |- style="background: #333;" | ||
− | |style="text-align: left"|Cyberdemon | + | |style="text-align: left"|[[Cyberdemon]] |
|80 | |80 | ||
|N/A | |N/A |
Revision as of 15:49, 1 July 2013
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.
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 |
Former Commando | 12 | 17 | 6 | 7 |
Pain Elemental | 10 | 20 | 4 | 6 |
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 |
Nightmare Demon | 40 | N/A | 6 | 7 |
Nightmare Cacodemon | 51 | N/A | 6 | 10 |
Nightmare Arachnotron | 50 | N/A | 4 | 12 |
Nightmare Arch-vile | 90 | N/A | 3 | 20 |
Elite Former Human | 40 | 80 | 1 | 7 |
Elite Former Sergeant | 60 | 90 | 1 | 10 |
Elite Former Captain | 70 | N/A | 1 | 12 |
Elite Former Commando | 80 | N/A | 1 | 14 |
Bruiser Brother | 50 | N/A | 6 | 14 |
Lava Elemental | 70 | N/A | 1 | 16 |
Shambler | 80 | N/A | 3 | 14 |
Agony Elemental | 80 | N/A | 1 | 20 |
Cyberdemon | 80 | N/A | 1 | 30 |
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 |
1 × baron of hell, 4-9 × imp | 13 | 21 | 10 |
1 × former commando, 2-6 × former sergeant | 15 | 21 | 10 |
1 × pain elemental, 3-8 × lost soul | 13 | 21 | 8 |
4-9 × demon | 10 | 22 | 4 |
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 |
Notice that monster groups are the only way for some enemies to appear on very deep levels.
The minimum level of monsters and monster groups is modified according to difficulty level. (Other numbers are not changed.)
Difficulty | Modifier |
I'm Too Young to Die | -0 |
Hey, Not Too Rough | -0 |
Hurt Me Plenty | -3 |
Ultra-Violence | -6 |
Nightmare! | -6 |
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.