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

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