home *** CD-ROM | disk | FTP | other *** search
/ Deathday Collection / dday.bin / mixed / lmpvol2 / randoom.man < prev    next >
Text File  |  1994-02-20  |  15KB  |  331 lines

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