|
Continued from
previous
page.
All level editors
(that I'm aware of) create
empty REJECT maps, because the LOS
algorithm is fairly complex and may take a
couple minutes to complete even on a fast
machine. And most nodes builders trash
the REJECT map unless you set the
parameter for them to ignore it. The
only way to generate a REJECT map is
to use a tool designed specifically
for that purpose.
What Do REJECT Tools Do?
At their
most basic, REJECT utilities can examine
your level, perform the LOS calculations
for every Sector pair, and then populate
the REJECT table with 1s and 0s where
appropriate. All utilities use certain
shortcuts in their LOS calculations (only RMB - Reject Map
Builder - has an option to
create a perfect REJECT table), and these
methods are explained in their
documentation. Of the four REJECT
builders I'm aware of -
RMB v3.0,
Reject v1.1,
WARM v1.6,
and ZenNode
v1.1.0 - I've chosen RMB and ZenNode for
in-depth discussion not only because
they're the most popular, but also
because I believe they produce the most
efficient REJECT tables.
ZenNode v1.1.0,
written by Marc Rousseau, is best known
as possibly the fastest DOOM BSP builder
yet. Besides its extremely fast BSP
functions, it has built-in REJECT
capabilities, BLOCKMAP compression, plus
PWAD merge and extraction functions,
which make it a very versatile tool
indeed.
ZenNode will
create the BLOCKMAP, build the nodes,
then create the REJECT table and report
the efficiency of your level. If you
don't want to rebuild the nodes (or BLOCKMAP) and only want the REJECT table,
these can be turned off with the -n-
and -b- parameters. Likewise, the REJECT function can be
turned off for quicker node builds with
the -r- or -rz- options. There
are several other options for doing
faster (but less accurate) REJECT builds.
(Click
here to see all of ZenNode's
options.)
ZenNode's REJECT build is more efficient
than any other REJECT tool, even RMB's default build;
in fact, it is nearly on par with RMB's
PERFECT build. The only thing it lacks is RMB's
various options which change individual
bits in the REJECT map to achieve certain
special effects. (In
emails with Marc Rousseau this week I
learned that he plans a major update
soon, plus implementation of many of RMB's special effect options. This is
great news, since RMB is no longer
supported by its author.)
ZenNode
works with multi-level PWADs, can process
only specific levels if desired, extract
specific levels to another PWAD, or even
merge two separate PWADs to a single one. ZenNode
has good documentation which explains all of
its options. You can find it (and other
fine BSP and REJECT utilities) in
my
Downloads
section, or get it
now.
(Also visit ZenNode's
homepage.)
The one
thing you need to remember is that most
editors and nodes builders will trash
your REJECT map, creating an empty one
when saving or writing your level. So
optimizing the REJECT map is not
something you really have to do until
your level is finished and ready for
release. Of course, you'll want to know
how your level is running as you add
monsters to it. So I recommend running
REJECT on a level every once in a while
as you go along just to get a feel for
the difference it makes in your level's
speed and frame rate.
The most
full-featured REJECT tool is Reject Map Builder
v3.0 by Jens Hykkelbjerg. RMB can
build a very efficient REJECT map fairly
quickly by default; or one can use the
PERFECT parameter which takes longer, but
forces processing of all Sectors. (An
in-depth review of how RMB makes
its calculation choices is discussed at
the end of this article.) It can also
display a graphical map of your level and
show each Sector and LineDef in coded colors as they're being
processed. |