WadWhat

WadWhat, programmed by Randall R. Spangler, or the more recent revision WadSpy, programmed from the source code by Oliver Brakmann is a utility that provides simple, easy-to-read numbers on the contents of any WAD file. It outputs details such as which maps are contained in a .WAD and which levels they replace, which play modes (single player, cooperative, deathmatch) a level supports, lists all the things present in each map at each skill level, calculates an average brightness of the level, prints the number of secrets, tagged linedefs, and sectors with damaging floors and calculates a difficulty rating for each map based on the ratio of monsters to ammo.

An example of WadWhat's output looks like this:

WADWHAT 1.1 by Randall R. Spangler (rspangle@micro.caltech.edu) ==============================================================================   PWAD FILE SLY1.WAD: --   EPISODE 2 MISSION 1             S1    S2    S3   S45 |    M1    M2    M3   M45 --   Play modes: Single player Cooperative (4 player) Deathmatch (8 starts) Bosses: Baron                   3     3     3     3 |     3     3     3     3 Cyberdemon              0     0     1     1 |     0     0     1     1 Monsters: Trooper                 5     5     8     8 |     5     5     8     8 Sergeant               20    20    20    20 |    26    26    26    26 Imp                     7     7     7    13 |    14    14    14    20 Demon                  12    12    12    12 |    14    14    14    14 Spectre                 7     7     7     7 |     9     9     9     9 Lost soul              25    25    26    26 |    29    29    30    30 Cacodemon               6     6     7     8 |     9     9    10    11 Weapons: Shotgun                 3     3     2     2 |     3     3     2     2 Chaingun                3     3     3     3 |     3     3     3     3 Rocket launcher         2     2     2     2 |     2     2     2     2 Plasma gun              4     4     3     3 |     4     4     3     3 BFG-9000                2     2     2     2 |     2     2     2     2 Chainsaw                1     1     1     1 |     1     1     1     1 Equipment: Backpack                5     5     5     5 |     5     5     5     5 Berserk                 2     2     2     2 |     2     2     2     2 Invisibility            3     3     3     3 |     3     3     3     3 Lite amp goggles        1     1     1     1 |     2     2     2     2 Expendibles: Bullets              1870   935   950   950 |  1870   935   950   950 Shells               1016   508   480   480 |  1104   552   524   524 Rockets                88    44    44    44 |    98    49    49    49 Cells                1160   580   520   520 |  1160   580   520   520 Armor points         1600   800   600   600 |  2800  1400  1200  1200 Health points        2118  1059   984   984 |  2738  1369  1344  1344 Barrels                61    61    61    61 |    77    77    77    77 Difficulty: Total monster hp     1187  1187  1643  1719 |  1467  1467  1923  1999 Max ammo damage     13062  6531  6230  6230 | 13878  6939  6638  6638 RATIO               0.091 0.182 0.264 0.276 | 0.106 0.211 0.290 0.301 Other info: Average brightness            165 (0=dark, 255=bright) Secrets                         1 Nukeage / sectors        2 /  112 Triggers / linedefs    134 /  886 Reject resource               YES

Difficulty Ratio
The difficulty ratio is the result of all the monsters' health points divided by the total amount of ammunition (from all sources) available in the map. In other words, the higher the ratio is, the more difficult the map is. A ratio of greater than 1.0 means that you can't kill all the monsters with all the ammo, but that you have to set them to fight among themselves. The difficulty ratio provided by WadWhat is supposed to indicate how challenging a map is. This, of course, can only be an educated guess, because the difficulty of a level is quite a complex thing. For optimal results, one should also take into account the amount of health and armor available, the layout of the level and also which non-monster hazards there are (such as crushing ceilings and damaging floors). As such, here are some examples of calculated difficulty Ratios of IWAD maps.

Average episode 1, "Hurt Me Plenty"              0.177 Average episode 2, "Hurt Me Plenty"              0.399 Average episode 3, "Hurt Me Plenty"              0.374

Average "I'm Too Young to Die"                   0.096 Average "Hey, Not Too Rough"                     0.192 Average "Hurt Me Plenty"                         0.317 Average "Ultra-Violence"                         0.448

Easiest map: E1M1, "I'm Too Young to Die"        0.013 Hardest map in shareware: E1M8, "Ultra-Violence" 0.493 Hardest required    map: E3M6, "Ultra-Violence"  0.738 Hardest secret map: E2M9, "Ultra-Violence"       0.915

Bugs and Limitations
While WadWhat is a helpful utility for both .WAD designers and players, it should not effectively substitute other mediums such as playtesting from human players. The difficulty ratio is not necessarily an entirely realistic or fair way to successfully account for a map's difficulty, as there are many other factors that contribute to the challenge involved with a map that can't be calculated by quantities alone. A level in its entirety can be made significantly harder by putting all the weapons and ammunition in impossible to reach areas, or significantly easier by keeping all the monsters in an isolated room and still carry the same difficulty ratio in both circumstances. Other things to consider are if is used, the effective number of monsters in the map will increase because they keep coming back to life. The difficulty ratio also ignores damage that may be done by exploding rockets, barrels, BFG9000 blasts, and monsters killing each other by infighting. It also doesn't take into account damage done by the chainsaw or fists. A better measure of map difficulty would probably also use the amounts of armor and health available. Another factor to consider are in multiplayer modes, there will be slightly less ammo available because each weapon can only be picked up once per life.