home *** CD-ROM | disk | FTP | other *** search
/ Doom I/II Collection / DM12.ISO / utils / rdoom / randoom.man < prev    next >
Text File  |  1994-02-05  |  12KB  |  265 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.           NAME
  9.                RanDOOM - A smart object placement randomization utility for
  10.           DOOM. 
  11.  
  12.           SYNOPSIS
  13.                RanDOOM [WAD_file_name][-C<seed>][-M<n>][-W<filename>][-D]
  14.           [-G]
  15.  
  16.           DESCRIPTION
  17.                RanDOOM is a utility which will randomize the placement of
  18.           objects in the DOOM playfield. Additionally, RanDOOM has some
  19.           smarts about the manner in which it will randomize things - it's
  20.           designed to never leave you with a pillar blocking the exit, or a
  21.           keycard on the opposite side of the door from where you start, or
  22.           to erase all the DEATHMATCH warp-in spots with other objects
  23.           (preventing DEATHMATCH network play), or to replace the endgame
  24.           bosses with other objects (thus preventing the completion of an
  25.           episode). In short, RanDOOM will always leave you with a playable
  26.           level. RanDOOM is also user configurable - it allows you to
  27.           specify the proportion of total objects a given object will
  28.           comprise via a customizable object weighting scheme. This allows
  29.           you to tailor RanDOOM's randomizing to your personal taste
  30.           (and/or masochism ;-).
  31.  
  32.  
  33.           OPTIONS
  34.                WAD_file_name - Use this path to the WAD file. If no
  35.           filename is specified, doom.wad in the current directory is used.
  36.  
  37.                -D - Restores the WAD file to its default state. When the -D
  38.           switch is specified, all other switches are ignored. NOTE: The
  39.           restoration function can only restore changes made by RanDOOM. If
  40.           you have made changes with another randomizing or map editing
  41.           utility, RanDOOM will probably be unable to undo those changes.
  42.           Mix and match WAD utilities at your own risk!
  43.  
  44.                -C<seed> - Use a single ASCII character as the seed value
  45.           for the pseudorandom number generator. The character is
  46.           case-sensitive, so 'K' and 'k' yield different seed values.
  47.           Alternatively, -C accepts a positive integer number [0..65535] as
  48.           the seed value. If no -C parameter is specified, a seed value is
  49.           taken based on the current system time.
  50.  
  51.                -G - Produce a graphic display of the item randomization
  52.           process on the screen (VGA required). This switch was added to
  53.           aid in debugging the first fit selection algorithm. It won't mean
  54.           much to you, but you may find it interesting to watch. The color
  55.           coding is as follows:
  56.  
  57.                * Walls and other area boundaries are drawn in blue,
  58.                * Switches, doors, and other special wall segments are
  59.  
  60.                                           1
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.                  yellow,
  74.                * Attempted object placements appear as red circles, with
  75.                  the circle's radius proportional to the size of the object
  76.                * As each wall segment is checked for collisions it is
  77.                  highlighted in white
  78.                * Cyan lines are drawn between the object's center and the
  79.                  closest point on certain nearby line segments
  80.                * Successful monster placements are marked by magenta
  81.                  circles, again proportional to monster size.
  82.  
  83.                -M<n> - Use randomization mode n, where n is a single digit
  84.           [0-9]. Currently only three randomization modes (0, 1 and 2) are
  85.           supported. If no -M parameter is specified, mode 0 is used by
  86.           default. 
  87.  
  88.                All three randomization modes attempt to avoid potential
  89.           problems which would arise if a completely random replacement of
  90.           objects were made. Such problems include immovable objects, such
  91.           as a pillar or tree root, blocking a switch or doorway; monsters
  92.           becoming "stuck in the wall" (or tangled up in each other!) and
  93.           unable to move or fight; the replacement of player warp-in spots
  94.           with other objects, preventing one or both forms of network play;
  95.           the movement of keycards or skulls to new locations which then
  96.           become inaccessible; etc. To achieve this, RanDOOM maintains lots
  97.           of data about the objects and the DOOM level maps, such as the
  98.           locations of objects, their relative sizes in three dimensions,
  99.           their types, whether the player can move them, kill them, or pick
  100.           them up, the locations of walls, the amount of "headroom" in a
  101.           given area, and so forth. From this information, RanDOOM is able,
  102.           in most cases, to calculate whether or not a given object will
  103.           "fit" into a given location in the map without conflicts. 
  104.  
  105.                Randomization mode 0 takes the objects currently placed on
  106.           each level and rearranges them. No objects are added, subtracted,
  107.           or replaced - if a given level contains 2 Barons of Hell, 12
  108.           Imps, 32 blue health vials, and a chainsaw, then the modified
  109.           level will also contain 2 Barons of Hell, 12 Imps, 32 blue health
  110.           vials, and one chainsaw, rearranged in random order. 
  111.  
  112.                Randomization mode 1 replaces "nonessential" objects with
  113.           other randomly selected objects from the entire range of
  114.           available objects. This randomization mode may place objects into
  115.           a level which would not normally appear there, e.g. M1 may place
  116.           Cacodemons in the Hangar level. Those items which are needed to
  117.           complete the level, such as keycards or level bosses, remain in
  118.           their original locations.
  119.  
  120.                Randomization mode 2 does the same things as mode 1 with the
  121.           addition of weight factors for replaceable objects. These weights
  122.           are user adjustable (via the weight file specified using the -W
  123.           switch) to allow a relative increase or decrease in the number of
  124.           a given item inserted in the game. Thus, items with higher
  125.  
  126.                                           2
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.           weights have a higher probability of being selected. NOTE: If the
  140.           -M2 switch is specified, the -W switch must also be specified.
  141.  
  142.                NOTE: With randomization modes 1 and 2 ALL objects will
  143.           appear at ALL FOUR skill levels - e.g. there will be no variation
  144.           between "Hey, Not Too Rough" and "Ultra Violence." This may be
  145.           addressed in future versions of RanDOOM. 
  146.  
  147.                -W<filename> - Use item weight factors from file <filename>
  148.           in place of the default weights in randomization mode 2. The
  149.           weight file is a flat ASCII text file consisting of a series of
  150.           <itemname> <weight> pairs, one pair per line. <itemname> must be
  151.           one of the predefined names listed in the sample weight file
  152.           (randoom.w), while <weight> must be a floating point value
  153.           greater than or equal to 0.0. In general, the larger the weight
  154.           value, the more occurrences of that object RanDOOM will put into
  155.           the game. There are some exceptions, most notably with the larger
  156.           objects. Because RanDOOM will only place an item if it will
  157.           "fit," some hard-to-place items will have a lower effective
  158.           weight than that specified in the weight file. Take the Spider
  159.           Demon, for example. This sucker is so large it gets stuck just
  160.           about anywhere. Out of the hundreds of available item spots,
  161.           there may be only one or two locations where the Spider would be
  162.           able to function. Thus, even though it's number may come up via
  163.           the weighted selection scheme, its placement may still be
  164.           prevented. If an object is chosen which is too large for the
  165.           available space, another item is chosen until one is found which
  166.           can be safely placed into the current location. Future versions
  167.           of RanDOOM may incorporate a "best fit" selection algorithm to
  168.           minimize the effects of individual object size on the overall
  169.           object distribution.
  170.  
  171.                Some comments about speed: Those of you who have used
  172.           earlier versions of RanDOOM will notice that 1.4 takes longer to
  173.           process the WAD file than did its predecessors. This is due to
  174.           the fact that 1.4 does a lot more work than earlier versions,
  175.           most of it 2-D geometric calculations (such as the distances from
  176.           objects to walls for collision detection). After trying several
  177.           different approaches to the "monster stuck in the wall" problem,
  178.           the method currently employed was the best tradeoff in terms of
  179.           speed and accuracy I've found so far. Although RanDOOM 1.4 makes
  180.           extensive use of integer and fixed-point math and '386-specific
  181.           instructions to speed the many calculations, it still takes time
  182.           to run (several minutes on my 20MHz 386SX test-dog system). Of
  183.           course, any system capable of running DOOM adequately will have
  184.           absolutely no problems with RanDOOM - it breezes right along on
  185.           my 486/33. 
  186.  
  187.           EXAMPLES
  188.                RanDOOM
  189.                     Display a brief usage synopsis.
  190.  
  191.  
  192.                                           3
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.                RanDOOM -Ck -M1 
  206.                     Rearrange levels using randomization mode 1 and random
  207.                     seed character 'k'.
  208.  
  209.                RanDOOM -M0
  210.                     Rearrange levels using randomization mode 0 and random
  211.                     seed based on the system time.
  212.  
  213.                RanDOOM -D
  214.                     Restore all objects in the WAD file to their default
  215.                     positions. 
  216.  
  217.                RanDOOM -M2 -Wc:\doom\randoom.w -C23456
  218.                     Rearrange levels using mode 2 with weights given in the
  219.                     file "c:\doom\randoom.w" and using the integer 23456 as
  220.                     the random number seed value.
  221.  
  222.                RanDOOM c:\doom\doom.wad -CT -G
  223.                     Rearrange levels in WAD file c:\doom\doom.wad using
  224.                     randomization mode 0, seed character 'T', and display
  225.                     the object placements graphically.
  226.  
  227.           NOTICES
  228.                This software is copyright 1994 ASRE. You are free to use
  229.           and distribute this software provided that no modifications or
  230.           derivative works are produced from it and that no fees are
  231.           charged for its distribution or use. Although RanDOOM has been
  232.           thoroughly tested, it is not guaranteed to be completely free of
  233.           bugs. Do I even need to mention that you should back up your WAD
  234.           file before running this program?
  235.  
  236.           BUGS
  237.                I welcome your comments, suggestions, and bug reports. Input
  238.           from users like you has made RanDOOM into the fun and useful
  239.           utility you see before you today, so don't please don't hesitate
  240.           to let your virtual voice be heard. Please email any bug reports
  241.           and/or comments to tmkk@uiuc.edu. For bug reports, please include
  242.           the following information in your message: 
  243.  
  244.                  The version of RanDOOM you're running,
  245.                  The version of DOOM you're running,
  246.                  The command line switches you used,
  247.                  The random number seed value you used,
  248.                  And a description of the problem.
  249.  
  250.                The object placement algorithm may still occasionally
  251.           misplace objects, allowing them to become stuck either in a wall
  252.           or in each other. Also, as noted earlier, RanDOOM is currently
  253.           using a "first fit" algorithm to place objects; future versions
  254.           may employ a "best fit" algorithm to insure optimal placements.
  255.  
  256.  
  257.  
  258.                                           4
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.