home *** CD-ROM | disk | FTP | other *** search
/ Crazy Collection 12 / CC-12_1.iso / update / doompack / data.a00 / TCOUNT31.ZIP / TCOUNT31.MAN < prev    next >
Encoding:
Text File  |  1995-07-31  |  20.3 KB  |  475 lines

  1. COPYRIGHT NOTICE
  2. ~~~~~~~~~~~~~~~~
  3. Copyright 1995 M. Scott Jordan.
  4. All rights reserved. This program and corresponding documentation is to 
  5. be freely distributed with no fees beyond a reasonable copying cost.
  6.  
  7. If you feel that this is a really swell program and you want to give 
  8. money, send a couple of extra bucks to your local United Way campaign.
  9.  
  10.  
  11. SPECIAL THANKS
  12. ~~~~~~~~~~~~~~
  13. Thanks to Bill McClendon (bill.mcclendon@creature.com) for ideas, testing, 
  14. and proofreading.  Bill is the author of an invaluable document, The 
  15. Unofficial WAD Designers' Handbook (HANDBK12.ZIP), available on 
  16. ftp.cdrom.com.  It contains a lot of useful information for beginning 
  17. level designers. Bill's efforts transformed this document to its current
  18. readable state! Thanks Bill!
  19.  
  20.  
  21. INTRODUCTION
  22. ~~~~~~~~~~~~
  23. TCOUNT is a DOS program intended to provide level authors with a starting 
  24. point for determining how much health, armor, and ammo to place in a WAD, 
  25. based on the total number of damage points of the monsters in the WAD.
  26. Basically, it's designed to give you a rough guideline of how much stuff
  27. to put in to give your players a "balanced" level.
  28.  
  29. Only items in single player mode are analyzed.  Multiplayer-only items 
  30. are listed in the raw data file (THINGDAT.TXT) but do not show up in the 
  31. analyses.
  32.  
  33. Items in "secret" locations are counted in the analysis. TCOUNT assumes 
  34. that the player is going to find the secrets.  If they're probably not
  35. going to find the secrets, you can always take the items off the map
  36. before you run this program.
  37.  
  38. In addition, TCOUNT can be used to examine existing WADS to list the 
  39. THINGS, find where they are, when they show up, etc.
  40.  
  41.  
  42. DISCLAIMER
  43. ~~~~~~~~~~
  44. Let me emphasize that cut-and-dried numbers are not intended to replace 
  45. careful and deliberate play-testing.  This program is no substitute for 
  46. beta-testing.  Fun is fun, and numbers don't insure that you are going 
  47. to have fun.  TCOUNT will give you a quick read on a level to tell you 
  48. how much stuff you've given the player compared to the quantity and 
  49. types of monsters.  This should speed WAD development and reduce play- 
  50. testing (but not eliminate it!).  If you wish, you can use TCOUNT to 
  51. look at other people's WADs to tell if they are overloaded with stuff, 
  52. have the right number of Deathmatch locations, and have differences in 
  53. their skill levels.  (It can also tell you at a glance how well-thought-
  54. out Thing placement is...)
  55.  
  56. WARNING:  CyberDemons (400 damage points) and SpiderDemons (300 damage 
  57. points) can skew the analysis badly because they carry a tremendous 
  58. number of damage points, and because defeating these monsters is nearly
  59. always a "special-case scenario".  My preferred approach is to leave 
  60. these out of the initial analysis in order for the ratios to be properly 
  61. (and fairly) calculated, then add them later and handle them specially.
  62.  
  63.  
  64. PREMISE
  65. ~~~~~~~
  66. The more monsters you have and the more dangerous they are, the more 
  67. ammo, health, and armor you will need to kill them all.  TCOUNT makes 
  68. the assumption that ammo, health, and armor quantities are a function 
  69. of the total number of damage points of the monsters.  Damage point 
  70. figures were derived from the DOOM FAQ.  Moreover, you can use some 
  71. rules of thumb to assess a WAD to determine if the loading of `stuff' 
  72. is typical for the number and the types of monsters.
  73.  
  74. For instance, if we wanted to have twice as many ammo points as monster
  75. damage points, we could say that 1 demon (14 points) merits 2*14 = 28 
  76. ammo points.  As WAD designers, we then determine how to split up these 
  77. ammo points.  Maybe it will be 28 bullets; perhaps 4 shells, at 7 ammo 
  78. points a shell.  It's up to you, as TCOUNT doesn't make the distinction.
  79.  
  80. Different skill levels use different ratios. Using TCOUNT, you can make 
  81. progressively-more-difficult levels more easily and populate them more 
  82. consistently.
  83.  
  84.  
  85. USE
  86. ~~~
  87. Running TCOUNT with no arguments gives the following help screen,
  88. which is about as user-friendly as it gets:
  89.  
  90. ===============================================================
  91. Syntax:
  92.  
  93. TCOUNT wadfile level     (for info on that level)
  94. TCOUNT wadfile /L        (for names of entries in wadfile)
  95.  
  96. Examples:
  97.  
  98. TCOUNT c:\doom2\doom2.wad map04
  99. TCOUNT c:\doom\doom.wad e3m7
  100. TCOUNT c:\doom\wads\mywad.wad /L
  101. ===============================================================
  102.  
  103. To get information on a level in a WAD the syntax is:
  104.  
  105.     TCOUNT wad_file_name level_name
  106.  
  107. To list the contents of a WAD's directory:
  108.  
  109.     TCOUNT wad_file_name /l
  110.  
  111. There may be a lot of directory entries and you can use the DOS 
  112. redirection to pipe them to a file:
  113.  
  114.     TCOUNT c:\doom2\doom2.wad /l  > d2_list.txt
  115.  
  116. This is helpful when you've forgotten which (or how many) levels are in
  117. a WAD.
  118.  
  119. The basic approach is to build your WAD, put all the monsters in place, 
  120. then run TCOUNT to see how much stuff (health, armor, ammo) you should 
  121. start with.  With this starting point, you can then play-test to tune 
  122. the amount of stuff you want to place.  You can also put stuff in as 
  123. you see fit, run TCOUNT, then examine the numbers before you plow 
  124. ahead with more playtesting.
  125.  
  126.  
  127. DATA FILE
  128. ~~~~~~~~~
  129. The data file TCOUNT3X.DAT tells TCOUNT the names associated with 
  130. different thing numbers and the health, armor, ammo, and damage points 
  131. associated with them.  TCOUNT3X.DAT must reside in the directory that
  132. TCOUNT is run from; this can be any directory.  It's recommended that
  133. you put TCOUNT and it's associated files in whatever directory you use
  134. to store your works-in-progress in, for ease of use.  TCOUNT3X.DAT
  135. contains the relevant information on individual things: values for 
  136. ammo, armor, health, and points.
  137.  
  138. NOTE: Invulnerability, Berserk Packs, Megaspheres, and other "special"
  139. Things have variable effects on the difficulty of your level.  You may 
  140. wish to set values to these to meet your needs. 
  141.  
  142. You may edit TCOUNT3X.DAT to properly represent the monster and ammo mix
  143. in your level.  (Actually, this is encouraged, because every level is a
  144. little bit different, and as TCOUNT doesn't figure for architectural 
  145. quirks, your TCOUNT results, as compared to your playtest results, might
  146. come up a bit skewed.)  
  147.  
  148.     ***  ***  JUST DON'T CHANGE THE LAST LINE!!  ***  *** 
  149.         
  150. The last line starts with a "!" and tells TCOUNT when it has read 
  151. in all the data.
  152.  
  153. Comments may be made anywhere except the last line.  A comment begins 
  154. with a "#" like this statement:
  155.  
  156. # comments have '#' as the first character in the line
  157.  
  158. Any thing with a "*" character as the first character on the "name" line 
  159. will not be displayed on the detailed thing listing for that level. 
  160. For example, if you don't want "Floor lamp" listed, call it:
  161.  
  162. *Floor lamp
  163.  
  164. The asterisk will keep it from being listed.  This is helpful for 
  165. removing long lists of decorations from the analysis.  Even if a name 
  166. starts with a "*", the health, armor, ammo, and damage values are still 
  167. figured into the ratio analysis.  If you don't want something figured in 
  168. to the ratio analysis, set the health, armor, ammo, and damage values to 
  169. zero.
  170.  
  171. The detailed Thing listing is sequenced the same as is in TCOUNT3X.DAT. 
  172. If you want to see ammo first, move it up to the top of the file.  If 
  173. you don't like the way things are ordered here, switch them around.
  174. TCOUNT does not need the information in any specific order.
  175.  
  176. There must be no gaps between the thing text and the number, health, 
  177. etc.; that's because TCOUNT expects (and needs) to find the numbers 
  178. on the line immediately after the name.
  179.  
  180. The last valid line in the data file must start with a "!".  The 
  181. exclamation point tells TCOUNT to stop reading data.  You can put stuff 
  182. in the data file after the "!"; however, it will be ignored.  The other 
  183. note is that there must a line starting with "!" in the data file or 
  184. TCOUNT will hit EOF prematurely and quit.
  185.  
  186. The data file format of a line entry for a thing is:
  187.  
  188. THING TEXT
  189. NUMBER    HEALTH  ARMOR   AMMO    DAMAGE
  190.  
  191. THING TEXT: Up to 29 descriptive characters.  You can edit the file to 
  192. rename things to your liking.
  193.  
  194. NUMBER: The id thing number from the DOOM Specs.
  195.  
  196. HEALTH, ARMOR, AMMO, DAMAGE: Points as described in the DOOM FAQ.  Edit 
  197. these to meet your needs.  Note that each value must be separated from
  198. the next value by at least one space; you can use more, but not less. 
  199.  
  200. Let's look at an example:
  201.  
  202. FORMER HUMAN SERGEANT
  203. 9       0       0       28      3
  204.  
  205. Here you see that Sarge is thing number 9.  He carries no health or 
  206. armor points.  The 28 ammo points are from the shotgun he drops when
  207. you kill him; the shotgun has 4 shells at 7 ammo points each.  The 
  208. last number, 3, means that it takes 3 damage points to kill Sarge.
  209.  
  210. There must be no gaps between the thing text and the number, health, 
  211. etc.; that's because TCOUNT expects to find the numbers on the line 
  212. immediately after the name.  (Hey, I'm not a code wizard...)
  213.  
  214.  
  215. OUTPUT
  216. ~~~~~~
  217. TCOUNT generates 3 output files:
  218.  
  219. THINGDAT.TXT: A thing by thing listing showing what is in the WAD file.
  220. Note that this file can be rather large; average observed sizes on a
  221. variety of WADs is about 40k.  This file is created for each running
  222. of TCOUNT -- if you need to keep previous copies of this for some
  223. reason, you should rename them, as TCOUNT will overwrite them without
  224. a warning or prompt.
  225.  
  226. *.TXT: Detailed analysis file showing thing counts by level, summation 
  227. data and ratio data.  The "*" corresponds to the mission or map which you 
  228. specified.  Note that TCOUNT will overwrite (without asking) a previous
  229. file with the same name.  Also, the name of the *.TXT file will be the
  230. level designation; i.e., MAP01.TXT for MAP01 levels.  This file is where
  231. most of the useful information will be found.  These run really small
  232. next to THINGDAT.TXT -- about 10k.
  233.  
  234. *.SUM:  A summary file suitable for importing into many spread sheet 
  235. programs.  This is useful for really geeky analyses such as the ones 
  236. shown later in this document.  Another 10k, average.
  237.  
  238. Of note: the "*" in the filenames above corresponds to the level number
  239. of the WAD you're analyzing; i.e., if you were analyzing a level that
  240. was MAP01, you'd get THINGDAT.TXT, MAP01.TXT and MAP01.SUM as your output.
  241. Note again that all three of these files will overwrite any previously-
  242. existing files of the same name without warning.
  243.  
  244. ===============================================================
  245. Sample THINGDAT.TXT
  246. ~~~~~~~~~~~~~~~~~~~
  247.  
  248. Thing analysis of c:\doom\doom.wad  Level: E2M7
  249.  
  250.        XCOORD YCOORD  ANGLE   TYPE ATTRIB   |1+2| 3 | 4 | D | M |
  251.      0   1904   -352     45   3001      7   | X | X | X |   |   |
  252.      1   1168    176    180   3002      7   | X | X | X |   |   |
  253.      2    -32    448     45   3001      7   | X | X | X |   |   |
  254.      3    176    816      0   3001      7   | X | X | X |   |   |
  255.      etc....
  256.  
  257. Number on left:  Just a sequence number
  258. XCOORD, YCOORD:  the X and Y coordinates of the Thing's location.
  259. ANGLE         :  the facing of the Thing; 0 is north, 90 is east, etc.
  260. TYPE          :  the Thing's "type" number, from the DOOM Specs.
  261. ATTRIBute     :  I have no idea, but there it is in case you need it. (ho ho)
  262.  
  263. 1+2: X'd if the Thing is present on skill levels 1+2
  264. 3  : X'd if the Thing is present on skill level   3
  265. 4  : X'd if the Thing is present on skill level   4
  266. D  : X'd if the Thing is flagged "deaf"
  267. M  : X'd if the Thing is flagged "multiplayer-only"
  268. ===============================================================
  269. Sample E2M7.TXT
  270. ~~~~~~~~~~~~~~~
  271.  
  272. Detailed Thing List of c:\doom\doom.wad  Level: E2M7
  273.  
  274.  1+2    3    4 PNTS   DESCRIPTION                    HLTH ARMR AMMO THNG
  275.  
  276.    3    4    4    3   FORMER HUMAN SERGEANT             0    0   28    9
  277.   40   41   46    6   IMP                               0    0    0 3001
  278.   18   26   33   14   DEMON                             0    0    0 3002
  279.    0    1    5   14   SPECTRE                           0    0    0   58
  280.    2    5    5   36   CACODEMON                         0    0    0 3005
  281.    1    1    2  100   BARON OF HELL                     0    0    0 3003
  282.    1    1    1    0   Backpack                          0    0   98    8
  283.    1    1    1    0   Chainsaw                          0    0    0 2005
  284.    1    1    1    0   Chaingun  gatling gun             0    0   20 2002
  285.   16   16   16    0   Ammo clip                         0    0   10 2007
  286.    3    3    3    0   Box of Ammo                       0    0   50 2048
  287.    6    6    6    0   Shotgun shells                    0    0   28 2008
  288.    6    6    6    0   Box of Shells                     0    0  140 2049
  289.    1    1    1    0   Rocket launcher                   0    0   40 2003
  290.    etc...
  291.  
  292. (Here you get a listing of counts of the different things you have, 
  293.  broken down by skill level.  Monster Damage points are shown immediately 
  294.  to the left of the names.  To the right are the number of health, armor, 
  295.  and ammo points associated with a single use of the Thing.  The point 
  296.  values are straight out of TCOUNT3X.DAT.  On the far right is the id 
  297.  thing number, or TYPE from the previous chart.)
  298.  
  299. (NOTE THAT YOU CAN ALSO USE THIS TO COUNT THE NUMBER OF DEATHMATCH SPOTS 
  300.  BEFORE FINDING OUT THE HARD WAY.)
  301.  
  302. Unknowns
  303.  
  304. No Unknowns Found
  305.  
  306. (If there is a thing with no number for it in the data file, you will 
  307.  see an entry here.  Very helpful if you accidentally edit out something 
  308.  important in the data file.)
  309.  
  310. E2M7 Totals by Difficulty:
  311.  
  312.     HEALTH    ARMOR     AMMO   POINTS
  313. 1+2        444      312     2200      673
  314.  3         444      312     2228      916
  315.  4         444      312     2228     1200
  316.  
  317. (Totals by skill level.  You can check to see how much difference there 
  318.  is between skill levels in your WAD.  You can also check other peoples' 
  319.  WADs to see if they even bothered to build in different skill levels.)
  320.  
  321. (Multiplying these numbers and your desired starting ratios gives the 
  322.  total number of health, armor, and ammo points to build into your WAD 
  323.  for starters, should you desire to populate your level in this manner.)
  324.  
  325. Ratios to POINTS by Difficulty:
  326.  
  327.       HEALTH      ARMOR       AMMO
  328. 1+2         0.66       0.46       3.27
  329.  3          0.48       0.34       2.43
  330.  4          0.37       0.26       1.86
  331.  
  332. (Here's where we get down to serious business.  Look at the ratios and 
  333.  see how they stack up against your expectations.  More on expectations 
  334.  in the next section.)
  335.  
  336. (WADs with 0 damage points for a given skill level get no ratio data for 
  337.  that level.  This would require division by 0.)
  338.  
  339. ===============================================================
  340. TYPICAL VALUES
  341.  
  342. Ahh... here's the tricky part.  While Jerry Falwell and Newt Gingrich may 
  343. believe that there is one and only one set of acceptable values, the 
  344. fact is that these are going to vary from person to person and WAD to 
  345. WAD, especially when architectural quirks (such as low lighting and
  346. tight corridors) are figured into the final count.  10 Demons in a 
  347. narrow bright hallway are far less difficult to kill than 10 Demons in 
  348. an open dark room, yet to TCOUNT, both sets of Demons are equally 
  349. easy to kill.  We both know they're not, though, are they?  This is 
  350. why it is so vital to change the TCOUNT3X.DAT file for each level you 
  351. analyze.
  352.  
  353. Listed below are values which I've gotten from analyzing v1.666 of 
  354. DOOM 1 and 2. My basic approach was to look at "typical" levels, then 
  355. throw out levels which produced odd results. In Doom 1, data from the 
  356. first episode was omitted as it seemed significantly different from 
  357. the second two episodes -- the health ratios were particularly odd. 
  358. Levels with CyberDemons and SpiderDemons were omitted, as these monsters 
  359. threw the analysis off.  Look in the D1.PRN and D2.PRN files to 
  360. see which levels were included in this analysis.
  361.  
  362. =======================================================
  363. DOOM 1 SUMMARY VALUES
  364.                  HEALTH/  ARMOR/   AMMO/
  365.        AVERAGES   POINTS  POINTS  POINTS  POINTS
  366.         1+2      426    1.40    0.95    4.99
  367.           3      846    0.73    0.47    2.61
  368.           4     1260    0.47    0.29    1.74
  369.  
  370.      LOW VALUES
  371.         1+2      252    0.82    0.46    3.27
  372.           3      611    0.48    0.31    2.33
  373.           4      871    0.37    0.18    1.43
  374.  
  375.     HIGH VALUES
  376.         1+2      560    1.90    1.57    6.82
  377.           3     1018    0.97    0.62    3.01
  378.           4     1723    0.65    0.38    2.15
  379. =======================================================
  380. DOOM 2 SUMMARY VALUES
  381.                  HEALTH/  ARMOR/   AMMO/
  382.        AVERAGES   POINTS  POINTS  POINTS  POINTS
  383.         1+2      404    1.28    0.70    5.94
  384.           3      964    0.67    0.30    2.82
  385.           4     1435    0.45    0.20    2.25
  386.  
  387.      LOW VALUES
  388.         1+2      153    0.93    0.24    4.14
  389.           3      309    0.40    0.10    2.06
  390.           4      423    0.26    0.06    1.26
  391.  
  392.     HIGH VALUES
  393.         1+2      797    1.86    1.45    7.60
  394.           3     1553    0.96    0.59    3.76
  395.           4     2493    0.73    0.37    3.20
  396. =======================================================
  397.  
  398. The high and low values are the highest and lowest included in my 
  399. analysis.  It gives you a feel for what the original id values were. 
  400. Average values are just typical values. Some WADs will be lower, some 
  401. will be higher.
  402.  
  403. What does this mean, though?  Let's take an example:
  404.  
  405. Suppose that you are doing a DOOM 2 level and you want to check out the 
  406. numbers for skill level 4 (Ultra-Violence).  You would run TCOUNT on your 
  407. WAD.  If your WAD's HEALTH/POINTS number was less than 0.45, your WAD has 
  408. less HEALTH items than a typical DOOM 2 WAD on skill 4.  If it's below 
  409. 0.26, then it has a *whole* lot less than what you typically see in D2. 
  410. You might wish to take out a few monsters, use some less lethal 
  411. monsters, or add some more health; alternately, you may prefer to have 
  412. your level be more difficult, relatively speaking, than the originals.
  413. On the other side, if your WAD's HEALTH/POINTS number is well above 0.73, 
  414. then you should look closely to see if there's too much health.
  415.  
  416. You can run TCOUNT on a WAD with no stuff (other than monsters) in it to 
  417. get the total number of monster points on the different levels.  Once you 
  418. know the number of monster points, you can use the typical numbers above, 
  419. or ones of your own, to estimate how much stuff to put in. 
  420.  
  421. Getting back to the D2 example listed above, let's say that your WAD has 
  422. 1500 POINTS of monsters.  For skill 4 this would suggest that you start 
  423. out with:
  424.  
  425.     HEALTH = 0.45 * 1500 = 675 health points
  426.     ARMOR  = 0.20 * 1500 = 300 armor points
  427.     AMMO   = 2.25 * 1500 = 3375 ammo points
  428.  
  429. After populating your WAD with this much stuff, you start testing and 
  430. tuning.  Note that, in my experience, it's better to add everything
  431. first and play-test it, then run TCOUNT on it to see if the ratios
  432. match up with the play-testing data you've gathered, rather than say,
  433. "Okay, I need to add 63 medikits and 3 suits of green armor because
  434. that's how much TCOUNT says I need."
  435.  
  436. It's interesting to note how the ratios change with skill level.  Here 
  437. you can see how id changed their loadings for the different skills. 
  438. POINTS reflects the monster population; you can see that skills 1+2 have 
  439. about 1/2 the monsters of skill 3.  Skill 4 has about 50% more monsters 
  440. than skill 3.
  441.  
  442. Full listings of the data used in the analysis can be found in D1.PRN 
  443. and D2.PRN.  You can generate full listings for D1 and D2 by using the 
  444. TEST1.BAT and TEST2.BAT routines included in the archive.
  445.  
  446.  
  447. MISCELLANEOUS
  448. ~~~~~~~~~~~~~
  449. TCOUNT will probably work for HERETIC too; someone just needs to make 
  450. up a data file.  Not being a HERETIC person, I'll leave that to others.
  451.  
  452. My current e-mail addresses are:
  453. SJORDAN@MAIL.WIN.ORG
  454. SJORDAN@MEMC.COM
  455.  
  456. I don't pay for either one of these.  If your message bounces, try 
  457. the other one.
  458.  
  459. The analysis of D1 and D2 data was done with Microsoft Excel.  If you 
  460. would like a copy of the spread sheet, drop me mail and I'll try to send 
  461. you a UUEncoded copy.
  462.  
  463. TCOUNT's front end is pretty straightforward, if you like command-line
  464. parameters.  I don't write them to look nice -- I just try to do a job. 
  465. If there's enough interest and need, I could probably be cajoled into 
  466. writing a Windows 3.1 version with a decent user interface.
  467.  
  468.  
  469. ABOUT THE AUTHOR
  470. ~~~~~~~~~~~~~~~~
  471. Scott Jordan is a 37 year old engineering supervisor in the Epi area at 
  472. MEMC's St. Peters plant. He is a chemical engineer by background and 
  473. writes code on an "as needed" basis... which goes a long way to explaining 
  474. the lack of a decent interface on TCOUNT.
  475.