home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
D!Zone (Collector's Edition)
/
D_ZONE_CD.ISO
/
programs
/
editors
/
rdoom165
/
randoom.man
< prev
next >
Wrap
Text File
|
1994-12-06
|
16KB
|
397 lines
RanDOOM (1) DOOM Operating System RanDOOM (1)
NAME
RanDOOM - A smart object placement randomization utility for
DOOM.
SYNOPSIS
RanDOOM [ReferenceWADfile] [-C<seed>] [-M<n>] [-W<filename>]
[-G] [-LE<j>M<k>] [-I<infile>] [-O<outfile>]
DESCRIPTION
RanDOOM is a utility which will randomize the placement of
objects in the DOOM playfield. Additionally, RanDOOM has
some smarts about the manner in which it will randomize
things - it's designed to never leave you with a pillar
blocking the exit, or a keycard on the opposite side of the
door from where you start, or to erase all the DEATHMATCH
warp-in spots with other objects (preventing DEATHMATCH
network play), or to replace the endgame bosses with other
objects (thus preventing the completion of an episode). In
short, RanDOOM will always leave you with a playable level.
RanDOOM is also user configurable - it allows you to specify
the proportion of total objects a given object will comprise
via a customizable object weighting scheme. This allows you
to tailor RanDOOM's randomizing to your personal taste
(and/or masochism ;-).
RanDOOM does not make any changes to your WAD files;
instead, it creates a separate Patch WAD file containing the
information for the modified levels. To run a RanDOOMized
game, simply invoke DOOM with the -file command line switch,
e.g. DOOM -file randoom.wad.
At the end of each run, RanDOOM will append to a file called
RANDOOM.LOG in the current directory information from that
run. Currently the seed value used for the random number
generator is saved for future reference.
OPTIONS
Reference_WAD_file_name - Use this path to the REFERENCE WAD
file. The reference WAD file is that which accompanies your
registered copy of DOOM, normally DOOM.WAD. If no filename
is specified, DOOM.WAD in the current directory is used.
-I<filename> - Specifies the name of a file where RanDOOM
should look for its input THINGS data. If no input file is
specified, input is taken from the reference WAD file by
default.
1
RanDOOM (1) DOOM Operating System RanDOOM (1)
-O<filename> - Specifies the name of a file where RanDOOM
should place its output. If no output file is specified, the
filename RANDOOM.WAD is used by default.
-C<seed> - Use a single ASCII character as the seed value
for the pseudorandom number generator. The character is
case-sensitive, so 'K' and 'k' yield different seed values.
Alternatively, -C accepts a positive integer number
[0..65535] as the seed value. If no -C parameter is
specified, a seed value is taken based on the current system
time.
-G - Produce a graphic display of the item randomization
process on the screen (VGA required). This switch was added
to aid in debugging the selection algorithms. You may find
it interesting to watch.
-M<n> - Use randomization mode n, where n is a single digit
[0-9]. Currently only three randomization modes (0, 1 and 2)
are supported. If no -M parameter is specified, mode 0 is
used by default.
-LE<j>M<k> - Process Episode j, Map k only, where 1 <= j <=
3, 1 <= k <= 9. Multiple -L switches may be specified on a
single command line. If no level is specified, all levels
are processed by default.
All randomization modes attempt to avoid potential problems
which would arise if a completely random replacement of
objects were made. Such problems include immovable objects,
such as a pillar or tree root, blocking a switch or doorway;
monsters becoming "stuck in the wall" (or tangled up in each
other!) and unable to move or fight; the replacement of
player warp-in spots with other objects, preventing one or
both forms of network play; the movement of keycards or
skulls to new locations which then become inaccessible; etc.
To achieve this, RanDOOM maintains lots of data about the
objects and the DOOM level maps, such as the locations of
objects, their relative sizes in three dimensions, their
types, whether the player can move them, kill them, or pick
them up, the locations of walls, the amount of "headroom" in
a given area, and so forth. From this information, RanDOOM
is able, in most cases, to calculate whether or not a given
object will "fit" into a given location in the map without
conflicts.
Randomization mode 0 takes the objects currently placed on
each level and rearranges them. No objects are added,
subtracted, or replaced - if a given level contains 2 Barons
2
RanDOOM (1) DOOM Operating System RanDOOM (1)
of Hell, 12 Imps, 32 blue health vials, and a chainsaw, then
the modified level will also contain 2 Barons of Hell, 12
Imps, 32 blue health vials, and one chainsaw, rearranged in
random order.
Randomization mode 1 replaces "nonessential" objects with
other randomly selected objects from the entire range of
available objects. This randomization mode may place objects
into a level which would not normally appear there, e.g. M1
may place Cacodemons in the Hangar level. Those items which
are needed to complete the level, such as keycards or level
bosses, remain in their original locations.
Randomization mode 2 does the same things as mode 1 with the
addition of weight factors for replaceable objects. These
weights are user adjustable (via the weight file specified
using the -W switch) to allow a relative increase or
decrease in the number of a given item inserted in the game.
Thus, items with higher weights have a higher probability of
being selected. NOTE: If the -M2 switch is specified, the -W
switch (see below) must also be specified.
Randomization mode 3 improves on mode 2 by using a "best
fit" algortihm to approximate the item distribution
requested by the user (via the weight file) as closely as
possible. The items to be placed are sorted and placed in
order from largest to smallest. This prevents a fairly large
space which could potentially hold a larger object from
having a smaller object placed into it instead and
consequently allows optimal object placements. Because not
all items will fit into all areas without sticking or other
conflicts, the exact distribution requested may not be
possible. For example, a distribution of 100% Spider demons
would be utterly impossible t