home *** CD-ROM | disk | FTP | other *** search
/ Doom Explosion / Doom_Explosion.iso / doom / program / rdoom165 / randoom.man < prev    next >
Encoding:
Text File  |  1994-04-10  |  15.6 KB  |  397 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.           RanDOOM (1)           DOOM Operating System           RanDOOM (1)
  9.  
  10.  
  11.  
  12.  
  13.           NAME
  14.                RanDOOM - A smart object placement randomization utility for
  15.                DOOM. 
  16.  
  17.           SYNOPSIS
  18.                RanDOOM [ReferenceWADfile] [-C<seed>] [-M<n>] [-W<filename>]
  19.                [-G] [-LE<j>M<k>] [-I<infile>] [-O<outfile>]
  20.  
  21.           DESCRIPTION
  22.                RanDOOM is a utility which will randomize the placement of
  23.                objects in the DOOM playfield. Additionally, RanDOOM has
  24.                some smarts about the manner in which it will randomize
  25.                things - it's designed to never leave you with a pillar
  26.                blocking the exit, or a keycard on the opposite side of the
  27.                door from where you start, or to erase all the DEATHMATCH
  28.                warp-in spots with other objects (preventing DEATHMATCH
  29.                network play), or to replace the endgame bosses with other
  30.                objects (thus preventing the completion of an episode). In
  31.                short, RanDOOM will always leave you with a playable level.
  32.                RanDOOM is also user configurable - it allows you to specify
  33.                the proportion of total objects a given object will comprise
  34.                via a customizable object weighting scheme. This allows you
  35.                to tailor RanDOOM's randomizing to your personal taste
  36.                (and/or masochism ;-).
  37.  
  38.                RanDOOM does not make any changes to your WAD files;
  39.                instead, it creates a separate Patch WAD file containing the
  40.                information for the modified levels. To run a RanDOOMized
  41.                game, simply invoke DOOM with the -file command line switch,
  42.                e.g. DOOM -file randoom.wad.
  43.  
  44.                At the end of each run, RanDOOM will append to a file called
  45.                RANDOOM.LOG in the current directory information from that
  46.                run. Currently the seed value used for the random number
  47.                generator is saved for future reference.
  48.  
  49.  
  50.           OPTIONS
  51.                Reference_WAD_file_name - Use this path to the REFERENCE WAD
  52.                file. The reference WAD file is that which accompanies your
  53.                registered copy of DOOM, normally DOOM.WAD. If no filename
  54.                is specified, DOOM.WAD in the current directory is used.
  55.  
  56.                -I<filename> - Specifies the name of a file where RanDOOM
  57.                should look for its input THINGS data. If no input file is
  58.                specified, input is taken from the reference WAD file by
  59.                default.
  60.  
  61.                                           1
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.           RanDOOM (1)           DOOM Operating System           RanDOOM (1)
  77.  
  78.  
  79.                -O<filename> - Specifies the name of a file where RanDOOM
  80.                should place its output. If no output file is specified, the
  81.                filename RANDOOM.WAD is used by default.
  82.  
  83.                -C<seed> - Use a single ASCII character as the seed value
  84.                for the pseudorandom number generator. The character is
  85.                case-sensitive, so 'K' and 'k' yield different seed values.
  86.                Alternatively, -C accepts a positive integer number
  87.                [0..65535] as the seed value. If no -C parameter is
  88.                specified, a seed value is taken based on the current system
  89.                time.
  90.  
  91.                -G - Produce a graphic display of the item randomization
  92.                process on the screen (VGA required). This switch was added
  93.                to aid in debugging the selection algorithms. You may find
  94.                it interesting to watch. 
  95.  
  96.                -M<n> - Use randomization mode n, where n is a single digit
  97.                [0-9]. Currently only three randomization modes (0, 1 and 2)
  98.                are supported. If no -M parameter is specified, mode 0 is
  99.                used by default. 
  100.  
  101.                -LE<j>M<k> - Process Episode j, Map k only, where 1 <= j <=
  102.                3, 1 <= k <= 9. Multiple -L switches may be specified on a
  103.                single command line. If no level is specified, all levels
  104.                are processed by default.
  105.  
  106.                All randomization modes attempt to avoid potential problems
  107.                which would arise if a completely random replacement of
  108.                objects were made. Such problems include immovable objects,
  109.                such as a pillar or tree root, blocking a switch or doorway;
  110.                monsters becoming "stuck in the wall" (or tangled up in each
  111.                other!) and unable to move or fight; the replacement of
  112.                player warp-in spots with other objects, preventing one or
  113.                both forms of network play; the movement of keycards or
  114.                skulls to new locations which then become inaccessible; etc.
  115.                To achieve this, RanDOOM maintains lots of data about the
  116.                objects and the DOOM level maps, such as the locations of
  117.                objects, their relative sizes in three dimensions, their
  118.                types, whether the player can move them, kill them, or pick
  119.                them up, the locations of walls, the amount of "headroom" in
  120.                a given area, and so forth. From this information, RanDOOM
  121.                is able, in most cases, to calculate whether or not a given
  122.                object will "fit" into a given location in the map without
  123.                conflicts.  
  124.  
  125.                Randomization mode 0 takes the objects currently placed on
  126.                each level and rearranges them. No objects are added,
  127.                subtracted, or replaced - if a given level contains 2 Barons
  128.  
  129.                                           2
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.           RanDOOM (1)           DOOM Operating System           RanDOOM (1)
  145.  
  146.  
  147.                of Hell, 12 Imps, 32 blue health vials, and a chainsaw, then
  148.                the modified level will also contain 2 Barons of Hell, 12
  149.                Imps, 32 blue health vials, and one chainsaw, rearranged in
  150.                random order.
  151.  
  152.                Randomization mode 1 replaces "nonessential" objects with
  153.                other randomly selected objects from the entire range of
  154.                available objects. This randomization mode may place objects
  155.                into a level which would not normally appear there, e.g. M1
  156.                may place Cacodemons in the Hangar level. Those items which
  157.                are needed to complete the level, such as keycards or level
  158.                bosses, remain in their original locations.
  159.  
  160.                Randomization mode 2 does the same things as mode 1 with the
  161.                addition of weight factors for replaceable objects. These
  162.                weights are user adjustable (via the weight file specified
  163.                using the -W switch) to allow a relative increase or
  164.                decrease in the number of a given item inserted in the game.
  165.                Thus, items with higher weights have a higher probability of
  166.                being selected. NOTE: If the -M2 switch is specified, the -W
  167.                switch (see below) must also be specified. 
  168.  
  169.                Randomization mode 3 improves on mode 2 by using a "best
  170.                fit" algortihm to approximate the item distribution
  171.                requested by the user (via the weight file) as closely as
  172.                possible. The items to be placed are sorted and placed in
  173.                order from largest to smallest. This prevents a fairly large
  174.                space which could potentially hold a larger object from
  175.                having a smaller object placed into it instead and
  176.                consequently allows optimal object placements. Because not
  177.                all items will fit into all areas without sticking or other
  178.                conflicts, the exact distribution requested may not be
  179.                possible. For example, a distribution of 100% Spider demons
  180.                would be utterly impossible to provide. As with mode 2, mode
  181.                3 requires that a valid weight file be specified on the
  182.                command line with the -W switch (described below).
  183.  
  184.                NOTE: With randomization modes 1, 2 and 3 ALL objects will
  185.                appear at ALL FOUR skill levels as well as during network
  186.                play; there will be no variation in the number or types of
  187.                objects between "Hey, Not Too Rough" and "Ultra Violence." 
  188.  
  189.                -W<filename> - Use item weight factors from file <filename>
  190.                in randomization modes 2 and 3. The weight file is a flat
  191.                ASCII text file consisting of a series of <itemname>
  192.                <weight> pairs, one pair per line. <itemname> must be one of
  193.                the predefined names listed in the sample weight file
  194.                (randoom.w), while <weight> must be a floating point value
  195.                greater than or equal to 0.0. In general, the larger the
  196.  
  197.                                           3
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.           RanDOOM (1)           DOOM Operating System           RanDOOM (1)
  213.  
  214.  
  215.                weight value, the more occurrences of that object RanDOOM
  216.                will put into the game. There are some exceptions, most
  217.                notably with the larger objects. Because RanDOOM will only
  218.                place an item if it will "fit," some hard-to-place items
  219.                will have a lower effective weight than that specified in
  220.                the weight file. Take the Spider Demon, for example. This
  221.                sucker is so large it gets stuck just about anywhere. Out of
  222.                the hundreds of available item spots, there may be only one
  223.                or two locations where the Spider would be able to function.
  224.                Thus, even though it's number may come up via the weighted
  225.                selection scheme, its placement may still be prevented. If
  226.                an object is chosen which is too large for the available
  227.                space, another item is chosen until one is found which can
  228.                be safely placed into the current location. 
  229.  
  230.                Some comments about speed: Those of you who have used
  231.                earlier versions of RanDOOM will notice that 1.52 takes
  232.                longer to process the WAD file than did its predecessors.
  233.                This is due to the fact that 1.52 does a lot more work than
  234.                earlier versions, most of it 2-D geometric calculations
  235.                (such as the distances from objects to walls for collision
  236.                detection). After trying several different approaches to the
  237.                "monster stuck in the wall" problem, the method currently
  238.                employed was the best tradeoff in terms of speed and
  239.                accuracy I've found so far. Although RanDOOM makes extensive
  240.                use of integer and fixed-point math and '386-specific
  241.                instructions to speed the many calculations, it still takes
  242.                time to run (several minutes on a 20MHz 386SX test-dog
  243.                system). Of course, any system capable of running DOOM
  244.                adequately will have absolutely no problems with RanDOOM -
  245.                it breezes right along on my 486/33. 
  246.  
  247.           EXAMPLES
  248.                RanDOOM
  249.                     Display a brief usage synopsis.
  250.  
  251.                RanDOOM -Ck -M1 -Omy.wad
  252.                     Rearrange levels using randomization mode 1 and random
  253.                     seed character 'k'. Input comes from DOOM.WAD in the
  254.                     current directory. Output is saved to MY.WAD in the
  255.                     current directory.
  256.  
  257.                RanDOOM -M0 -Inewwad.wad
  258.                     Rearrange items in the PWAD file NEWWAD.WAD using
  259.                     randomization mode 0 and random seed based on the
  260.                     system time. Output goes to RANDOOM.WAD.
  261.  
  262.                RanDOOM -M2 -Wc:\doom\randoom.w -C23456 -Onew.wad
  263.                     Rearrange levels using mode 2 with weights given in the
  264.  
  265.                                           4
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.           RanDOOM (1)           DOOM Operating System           RanDOOM (1)
  281.  
  282.  
  283.                     file "c:\doom\randoom.w" and using the integer 23456 as
  284.                     the random number seed value. Results will be written
  285.                     to file NEW.WAD.
  286.  
  287.                RanDOOM c:\doom\doom.wad -CT -G -LE1M1 -LE2M1
  288.                     Rearrange levels E1M1 and E2M1 in WAD file
  289.                     c:\doom\doom.wad using randomization mode 0, seed
  290.                     character 'T', and display the object placements
  291.                     graphically. Results will be written to file
  292.                     RANDOOM.WAD.
  293.  
  294.           NOTICES
  295.                DOOM is a registered trademark of id software. RanDOOM is
  296.                copyright 1994 ASRE. You are free to use and distribute this
  297.                software provided that no modifications are made to nor
  298.                derivative works produced from it and that no fees are
  299.                charged for its distribution or use. Although RanDOOM has
  300.                been thoroughly tested, it is not guaranteed to be
  301.                completely free of bugs. 
  302.  
  303.           ACKNOWLEDGEMENTS
  304.                The ASRE would like to acknowledge the kind assistance of
  305.                many volunteers who offered their time, effort, and
  306.                suggestions. Your input has allowed RanDOOM to continue to
  307.                improve and become an even greater benefit to DOOM players
  308.                everywhere. Special thanks to: Barry Bloom and Scott Braley
  309.                for their hard work in optimizing the size settings for the
  310.                monsters; Chris Gregg for his kind assistance in coming up
  311.                with additional items to add; and many, many others, whose
  312.                names would easily double the size of this document were I
  313.                to include them all, for suggesting improvements, new
  314.                algorithms, new features, and other enhancements. And, of
  315.                course, id Software for creating the BEST GAME EVER to grace
  316.                the screens of ISA machines.
  317.  
  318.           BUGS
  319.                I welcome your comments, suggestions, and bug reports. id
  320.                software, however, does NOT, so make sure you send your bug
  321.                reports to me, not them! Input from users like you has made
  322.                RanDOOM into the fun and useful utility you see before you
  323.                today, so don't please don't hesitate to let your virtual
  324.                voice be heard. Please email any bug reports and/or comments
  325.                to tmkk@uiuc.edu. For bug reports, please include the
  326.                following information in your message: 
  327.  
  328.                     The version of RanDOOM you're running,
  329.                     The version of DOOM you're running,
  330.                     The command line switches you used,
  331.                     The random number seed value you used,
  332.  
  333.                                           5
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.           RanDOOM (1)           DOOM Operating System           RanDOOM (1)
  349.  
  350.  
  351.                     And a description of the problem.
  352.  
  353.                The object placement algorithm may still occasionally
  354.                misplace objects, allowing them to become stuck either in a
  355.                wall or in each other. Occurrences of such sticking are now
  356.                extremely rare, especially when compared with earlier
  357.                versions of RanDOOM.
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.                                           6
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.