=============================================================================
                         D.O.A. : The Conspiracy
=============================================================================

What makes a great Doom level?
------------------------------

   Duh, beats me. All I know is what I like (or don't like). I prefer an
architectural style that looks believable. I like properly aligned and
realistic (not "hell" type) textures. I like lighting that isn't dark for the
sake of being dark. I hate crushers. I hate levels with numerous small traps.
I prefer big traps with a lot of monsters and mayhem (but there has to be a
way to beat them). I really wonder about wad authors who make their levels so
insanely difficult that they can't even record their own demos.

   All that said, I've tried to make "D.O.A. - The Conspiracy" the type of
game that everyone can enjoy. Doom god or average player, you'll find these
levels to be a tough challenge that will make you think. I've avoided the
usual style of a tough wad (you know, wall-to-wall barons with no place to
hide). Not that these levels are really that tough but they might seem to be
until you learn to think first and shoot later.

   And I spent a ridiculous amount of time niggling with tiny details. I've
tried to make these levels look believable but the results may be somewhat
inconsistent. Ah well, I think they look pretty darn good anyway.

   Note that cooperative mode has exactly the same monsters and everything
else as single-player. There is an extra suit of armor on both E2M5 and E2M6.
I doubt that the levels are big enough for more than two players but the
starts are there (untested). I've also eliminated the possibility of dead-end
traps. Good advice: plan ahead or you're toast.
   

Details of changes to the original levels
-----------------------------------------

DD1.WAD - by Aldo Galimberti

  The only architectural changes are the addition of the parapet around
the level and the teleport destinations at the sides of the building. All of
the original monsters were removed except for the ones in the dungeon. Lots
of changes to lighting and textures.


DMANMLY.WAD  - by Lee Dixon

  The only architectural change is the addition of the dead-end stairwell.
Some monsters were added. This level had a lot more texture work done on it
than the others. Note the texture work done in the upper control room. A
leaky pipe was added to the acid pool area.


BLAHBLAH.WAD - by Doug Ryerson

  A room overlooking the courtyard was added and the red key room was
originally a dark pit. Lighting was added throughout. A number of other
architectural adjustments were made. A lot of adjustments to linedefs and
sector heights were needed to get the STARG3 texture to fit properly. The
entire area around the yellow key room was moved in order to align the
TLITE6_6 ceiling flat. A great many monsters were added.


Think these levels could be harder?
-----------------------------------

   First of all, when you play the game for the first time, I recommend that
you use skill setting two (Hey, Not Too Rough). Trust me, it isn't that easy.
Although there are about 1/3 as many monsters as skill four (UV), I've cut
back on the available health by a LOT. Skill setting three (Hurt Me Plenty)
has about 2/3 as many monsters as UV but the same amount of health and just
a little less ammo. The game play is about the same as UV.

   There's another reason why I'd like you to play skill two. I want you to
get an idea of what the D.O.A. challenge is like. Yup, I have a challenge
prepared for you if you ever manage to finish these levels in skill four.
That's to finish the levels in skill four with only the amount of health that
you find in skill two. That's right. You have to voluntarily avoid picking up
health for this challenge. And, oh, if that's too tough for you, then try
the challenge in skill three (it's only a little easier).

   Notice that in skill two, the medical kits (25% health) are replaced with
health bonuses since otherwise some secrets would look a little empty. The
berserk pack was replaced with three health bonuses. This is the amount of
health allowed for the challenge:

   E2M4 : 20% (20 health bonuses)
   E2M5 : 40% (one stimpack, 30 bonuses)
   E2M6 : 60% (one stimpack, one med kit, 25 bonuses)

   You don't need to memorize the locations of all the health items. There
are three simple rules:

   1) you can have the bonuses and the armor
   2) you can take any stimpack or med kit which can't be avoided
   3) you can't have the berserk pack
   
   There is a med kit in front of a switch on E2M6. Although it is possible
to press the switch without touching the kit, it is meant to be taken.

   The amount of health allowed increases with each level. You can count on
getting badly hurt on the first level and then spending the rest of the game
running in fear of sergeants. You want realism? Well, that's as real as it
gets. Oh, by the way, you have to get 100% kills so watch your ammo!


Some notes about Doom editing
-----------------------------

   There are a number of things that I've learned about Doom that I would
like to pass on. These are just short notes without a great deal of
explanation. I hope you'll find them useful.

   I use a 486/33 to play Doom and to build my Doom levels. This is probably
the minimum platform for Doom although a fast enough 386 will work as well.
There are a number of issues to consider if you design levels to run on
slower machines. Here are some tips to speed up your levels.

   1) Always make sure that the floor and ceiling heights are multiples of 8.
      The Doom engine contains some optimizations which rely on this. It's
      okay to break this rule if the upper/lower texture height will be less
      than 8 units.
      
   2) Two-sided textures (that is, transparent textures like grating) should
      be used sparingly. The Doom engine draws such textures after everything
      else has been drawn (in a worst case, this can mean that the entire
      display area gets drawn twice). This applies also to decorative things.
      The large brown tree, in particular, can be a real speed killer.

   3) Minimize the number of sectors in view at one time. When Doom draws a
      floor or ceiling flat, it has to do a lot of work to prepare for the
      actual drawing of the flat. The more flats that need to be drawn, the
      more work the engine has to do. Avoid having too many differences in
      brightness level or sector heights. Put light fixtures in the walls
      instead of on the ceiling.
      
   4) If you have a problem with the sky texture slowing down the game, you
      can speed things up by showing more sky. Try to use large rectangular
      shapes for skylights instead of slots or crisscross patterns.
      
   5) Use a reject map builder. This won't help much on small levels but it
      will improve the frame rate enormously on large levels. However, you
      need to keep these three rules in mind:
      
      a) Use block sound lines and the deafness attribute to prevent monsters
         from waking up prematurely. Typically, the only monsters that should
         be awake are the ones that the player is fighting.
         
      b) Avoid sprawling sectors, that is, large sectors that touch or
         surround a lot of other sectors. When the player is in such a
         sector, the Doom engine has to do a line-of-sight calculation for
         each monster that can see into ANY part of that sector. The reject
         table doesn't help you in this case.

      c) Each two-sided line that exists between the player and a monster
         adds complexity to the line-of-sight calculation. This can be
         noticeable with even as few as 5 or 6 two-sided lines. If this is a
         problem, try changing the monster distribution. Your reject map
         builder may also allow manual optimizations.

   Here are some tips on level design and monster placement:

   6) A good technique to improve texture placement is to put a sector of
      zero height behind the wall. This allows you to place two textures
      (upper and lower) instead of just the main texture. Check the inner
      courtyard doorway on E2M4 for an example of this. I put the METAL
      texture below the GSTONE1 texture. E2M5 uses this trick extensively in
      the upper control room and the stairway leading to the lower control
      room.
      
   7) You can use hidden sectors inside void space to pass attributes to
      another sector in visible space. This is especially useful for
      controlling lifts and brightness levels. Check the lighting in the
      lower control room of E2M5 to see how I used this trick to avoid
      unsightly glitches across sectors. The technique is also useful for
      transmitting sound between distant sectors (to wake up monsters). Draw
      two adjoining polygons in the void and assign the linedefs to the
      sectors that you want to connect.
      
   8) Are transparent textures driving you crazy because Doom renders them
      on top of the floor or the ceiling? The solution is simple. The two
      sides of the linedef must be assigned to different sectors. Now make
      the brightness level of one sector slightly different from the other.
      
   9) If you're having problems controlling monster movement, try using deaf
      monsters to block the movement of other monsters into areas where you
      don't want them to go. This trick was used at the start of E2M5 to
      keep some of the monsters from wandering too far away from the right
      side window. Also used on E2M6 in the area beyond the yellow key door.
      The two spectres wandering ominously in the background can't chase the
      player (at least, not until hell breaks loose at the first gun shot).
      
  10) You might also find it useful to hide a deaf monster just out of view
      of the player but exposed just enough to get nipped by a stray gun
      shot. This can surprise the player who expects to encounter the monster
      at a later time but doesn't (or didn't encounter it before and
      suddenly does!). This was used on E2M5 (guess where).

  11) Cacodemons don't float unless they have to. If you place them on the
      ground, they will likely stay there unless the player is above or
      below them. You need to either put them on a raised surface or teleport
      them there. Walking monsters don't like steps higher than 8 units. They
      will occassionally venture down steps as high as 16 or so units. It
      usually comes as a big surprise to the player when a monster does
      venture down high steps. I haven't deliberately used this as a design
      technique but it's something to keep in mind.
      
  12) Doom monsters are not very smart. As long as they're awake, they'll
      follow the player's movements even if they can't see the player. This
      often leads them to dead ends. You can try block monster or teleport
      lines to keep or draw the monsters away from dead ends. Other than
      that, there isn't much you can do to force monsters to track the
      player sensibly. Just avoid having monsters wake up at the wrong time
      or put them in a different place. 
      
  13) Monsters also tend to fall asleep when they are deaf and can't see the
      player (usually happens when a monster has just killed another). This
      can be a problem if the player is able to run away after being spotted
      by a group of monsters. Remove the deafness attribute and use block
      sound lines instead. This technique was required on E2M6 in the big
      trap with the cacos.


The self-referencing line and other secrets
-------------------------------------------

   Special effects are attracting a lot of attention these days. The
explanations of how these tricks work can be quite confusing unless you
understand how Doom goes about drawing floors, ceilings, and walls. The
so-called self-referencing line is prominent in special effects but why
exactly? Well, wonder no more.

   Doom draws floors and ceilings from back to front. That is, it draws the
floor or ceiling that is furthest away and then draws the next closest after
that. The nodes table (BSP) is used to determine which linedefs should be
visible to the player. Doom looks at the sector to which a linedef belongs
(on the side facing the player) and determines what floor or ceiling flat to
use, at what brightness level to draw the flat, and at what height. The floor
is drawn toward the bottom edge of the display and the ceiling toward the
top.

   Doom stops drawing the floor or ceiling flat if it encounters a linedef
whose two sectors have different attributes. This is an important point. It
doesn't matter if the sectors are different from the sector being drawn. It
matters only if the linedef's sectors are different from each other. The
easiest way to ensure that both sides of a linedef have the same sector
attributes is to assign the same sector to each side. This is called a
self-referencing line. It is not a requirement, however, that the same
sector be used, just that the sectors look the same.

   The idea here is to get the Doom engine to draw the linedef textures but
not the floor or ceiling of the sectors to which the linedef belongs. This is
the essence of special effects: to gain control over how Doom draws the floor
and ceiling flats. Another point to remember is that when the Doom engine
encounters a sector whose floor or ceiling is not visible to the player, it
draws the floor or ceiling from the surrounding sector over it before it
draws the upper or lower textures. If you remove the textures, the result is
a seamless floor or ceiling. This technique can be used to create the
illusion of two different brightness levels in the same sector.
   
   Doom doesn't care how you assign linedefs. Proper linedef assignment
matters to level editors, nodes builders, and reject map builders but the
Doom rendering engine only uses linedefs and sectors to determine display
properties. All sorts of weird and useless effects can be created by fiddling
with linedefs and sectors. In the process, however, a nodes builder can get
confused and different nodes builders may yield differing results. Some
special effects (like the invisible door) require special handling by the
nodes builder. Fortunately, the most useful effects can be had with just the
simple self-referencing line which doesn't confuse nodes builders (but you
might need to resort to manual optimization with a reject map builder).

   Most designers already know the technique of using a self-referencing
line to block monsters or to hang a transparent texture. The linedef is
simply assigned to the sector which contains it. Less obviously, you can
assign the linedef to a hidden sector with any desired attributes to create,
for example, a transparent wall which can be lowered or raised and which can
be shot through. Sadly, you can't make a door. The reason is that Doom will
try to draw the hidden sector's floor and ceiling across the linedef if the
floor height equals the ceiling height (which is the case when the door
closes). The result is the HOM effect. Making a transparent door is possible
but I don't consider it worthwhile since the door cannot be shot through.

   The self-referencing line can be used to make a neon sign. This is the
simplest effect. Make a sector in void space. Draw a linedef where you want
the neon sign. Assign both sides of the linedef to the hidden sector. The
floor height should be the same as for the sector which contains the linedef
but the ceiling height may be whatever is convenient (as long as it is above
the player). Adjust the brightness level and hang your texture. There's an
interesting side effect that occurs. Monsters and other objects will be drawn
at the brightness level of the hidden sector if they are positioned near the
line. This effect is not consistent. It depends on the nodes builder. Note
also that a nodes builder such as WARM will try to optimize by eliminating
non-displaying lines from the nodes table. If your line is used merely to
illuminate sprites, you'll still need to attach a transparent texture in
order to thwart the optimization.

   Just as the neon sign affects the brightness of nearby things, it also
affects the perceived floor and ceiling heights. The monsters and the player
will walk about at the floor height of the hidden sector. If the ceiling
height is too low, they will bump their heads. Again, this effect is not
consistent. The main point to keep in mind is that the effect will propagate 
throughout a convex polygon as defined in the nodes table (huh?). Whether
this polygon coincides with the dimensions of the sector containing it
depends on the shape and size of the sector and its relationship to
neighbouring sectors. Different nodes builders may give different results.
If you use this effect, you may need at least three self-referencing lines
connected together to form a closed polygon. The polygon needs to be visible
from any point within the enclosing sector.

   If you are building a transparent lift (or moving wall), you will need to
enclose the self-referencing lines inside another sector in order to prevent
the propagation of the hidden sector heights (else the player may encounter
an invisible barrier some distance away). Think of the enclosing sector as an
elevator shaft. Much as an elevator is constrained by its shaft, your moving
wall or lift is constrained by its enclosing sector. Now simply attach your
textures, set up your triggers, and you've got it. Remember to peg or unpeg
your textures (also, make sure that your textures are usable on a two-sided
line). You can have as many self-referencing lines as you need and they are
allowed to cross each other.

   The transparent lift may cause a problem with the reject table. It is
possible that the reject map builder will set the reject bit for the hidden
sector and make the player invisible to monsters. You'll have to manually
optimize. Keep in mind also that monsters will never walk onto the lift from
its upper level. If you want monsters to be able to pass over a transparent
wall when it is down, make sure that the enclosing sector is no more than 16
units lower than the neighbouring floor.

   In E2M5, I used self-referencing lines in the upper control room to raise
the health bonuses a distance of 4 units. This was needed to fix a problem
with the sprite offset. Normally, the bonuses would appear to hang off the
edge of the table. Other than this, the first three levels of The Conspiracy
do not contain any special effects but the last level (to be released) will
have many. In the meantime, have fun experimenting.

   Thanks to all for making Doom such a great game!
