T h e U n o f f i c i a l ______________________________________________________________ | | | W A D D E S I G N E R S ' T I P S H A N D B O O K | |____________________________________________________________| Release 1.0 -- February 7, 1995 written and compiled by >> Bill J. McClendon << ---------------------------------------------------------------------------- Introduction ~~~~~~~~~~~~ Hello, future WAD designer, and welcome to the release 1.0 of the WAD Designers' Handbook! This publication is designed to assist aspiring WAD authors with the basics of what they need to know about building and creating levels for DOOM. It's aimed at the complete novice -- those who have played DOOM and maybe some PWADs, and said, "Hey, _I_ can do that!", but aren't familiar with the terminology and procedures. You know what you _want_ to do, right? You just aren't sure _how_ to do it, or _where_ to begin. This is for you. Copyright Information ~~~~~~~~~~~~~~~~~~~~~ This document is copyright (c) 1995 by Bill J. McClendon. All rights reserved. You may distribute this document freely under the following conditions: (a) the copies are exact and complete, including this copyright notice; (b) the copies are in electronic form only; (c) you do NOT charge any fee whatsoever for copying and/or for distribution of this document, in ANY form. (Subscription BBSs and pay BBSs are exempt from this restriction.) You may, however, print a copy of this document for your own use. Actually, I highly recommend that you do so, as you may find yourself taking quite a few notes during the learning process. (It worked for me.) For best results, I recommend printing it at 12 cpi (10-point, for you laser printer people), with a left margin of 1" and top, bottom, and right margins of .5". Acknowledgements ~~~~~~~~~~~~~~~~ My education on the design and structure of WADs wouldn't be complete without the various amounts of assistance I received from the following people: Roy Ford (LaserJock): For explaining what the ceiling and floor heights were for when making doors, for emphasizing the need to make visible linedef lengths multiples of 8, and for answering my million-and-one questions about how to operate WADED, since it didn't come with docs. Author of DREAD3, WOODY, HELLPORT, and XENO_PEN, and future, as-yet-unnamed levels... Stephen Long (Dr. Death): For being so helpful on the FidoNet DOOM echo, and for his tips on sticking to a consistent theme, using DOORSTOP instead of "that hideous DOORTRAK", using appropriate lighting (and special lighting effects), keeping room size down whenever possible, being careful about mixing and matching differing textures at the same elevation, and for non-linear level-design methods. Author of DRDEATH1 - DRDEATH9. Doug Bora: Primarily for his explanation of pegging and unpegging textures, what it looks like, and why to use it. Author of at least one deathmatch level that I know of (REVILE.WAD). Rick Thoma: For providing an in-depth analysis of the "busy vertex" problem (known as the Tesseract), and for discovering that it results from a node construction error as opposed to a level-design error. Also "for directing [me] to some sources, and maybe for starting some interesting threads [on the FIDO DOOM echo]." There you go, Rick. Just like you wanted. :) Sean Duggan, Paul Hackathorn, Matthew Mauger, Mackey McCandlish (Avatar), Jon McGuire, Martin Regimbald, Eric Schreiber, and Damon Thompson (Nomad): For their invaluable assistance on my FidoNet "WAD Designers Tips" survey, by telling me what they like (and DON'T like) to see in a level. There may be WAD authors in this group (I'm pretty sure Avatar has made at least one level), but I don't know the names of their levels... This Handbook would also not be complete without the generous assistance of the following "Unofficial" publication authors: Hank Leukart : Author of the DOOM FAQ, and distributor of The Unofficial DOOM Specs, from whom permission was obtained to use the various monster sizes and some of the definitions of terms. Thanks, Hank! Matt Fell : Author of The Unofficial DOOM Specs, which I recommend to every serious WAD author. Tom Neff : Author of the DESIGN11.FAQ, an invaluable guide to questions and answers for most common WAD problems and mistakes, from whom came The 10 Most Common Design Errors (used with permission). (Yeah, the Acknowledgements section is kinda large, but without the help and advice of the people listed above, you wouldn't be reading this!) Files Included In This Archive ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In case this is the first thing you're reading, the files that should have been in the archive you downloaded are: FILE_ID .DIZ The i.d. file that a lot of BBSs use. HANDBOOK.TXT You're reading it. WAD_AUTH.TXT The template for WAD authors. WALKTHRU.WAD The "example" level. WALKTHRU.TXT The guide for the example level. Comments from the author: ~~~~~~~~~~~~~~~~~~~~~~~~~ Well, folks, here it is -- the first version of the WDTH. If you have any comments, complaints, suggestions, or additions, I can be reached at the following locations: * The FidoNet DOOM echo (posting as BILL MCCLENDON) * Caxius BBS (1-510-895-6961 -- leave e-mail to BILL MCCLENDON) * The Cat's Meow BBS (1-510-471-0603; again, as BILL MCCLENDON) * Internet address: bill.mcclendon@creature.com I welcome any additions to this document, and I know there should be quite a few... Let me know what you think of it! Thanks. I was very impressed with Hank Leukart's DOOM FAQs and Matt Fell's The Unofficial DOOM Specs, and I'd like to acknowledge their influence in this document's format, structure, and content. Most of the information I've got about the structure of the DOOM IWAD and it's use came from release 1.3 of the Specs, and, though that article is more technical than a level author needs, I highly recommend it. Have fun, and good DOOMing! -- Bill -------- Contents -------- [0-0] Introduction Copyright notice Acknowledgements Files Included In This Archive Comments from the Author [1-0] Definitions And Terminology (Glossary) [1-1] Vertex [1-2] Linedef [1-3] Sidedef [1-4] Sector [1-5] Texture [1-5-1] X and Y Offset [1-5-2] Unpegging Textures [1-6] Things [1-7] Nodes [1-8] Tags [1-9] Sprites [1-10] Blockmap, Ssectors, Segs [1-11] Reject [1-12] HOM [2-0] Designing The Level [2-1] Overall Tips, Reminders, And Procedures [2-1-1] The First WAD You Make Is Gonna Suck. [2-1-2] Also, When Designing A Level... [2-1-3] If You Can Change The Default Textures... [2-1-4] Take The Time And Read The Docs. [2-1-5] When Actually Building The WAD... [2-1-6] Having A Procedure... [2-2] Theme [2-2-1] Textures [2-2-2] Dimensions [2-2-3] Lighting [2-2-4] Monsters [2-2-5] Items [2-3] Style [2-3-1] The Planner [2-3-2] The Modifier [2-3-3] The Discoverer [3-0] Building The Level -- Basic [3-1] Rooms [3-2] Hallways [3-3] Windows [3-4] Doors [3-4-1] Recessing Doors [3-4-2] Secret Doors [3-5] Lifts [3-6] Stairs [3-7] Linedef Remote Events [4-0] Building The Level -- Intermediate -- Tips And Effects [5-0] Checklist [6-0] Finishing Up [APPENDIX A] Sizes Of The Various Things [APPENDIX B] The 10 Most Common Design Errors [APPENDIX C] The Walk-Through [APPENDIX D] End Notes --------------------------------------------- [1-0] Definitions And Terminology (Glossary) --------------------------------------------- VERTEX A vertex is simply the point at which a linedef (see below) begins or ends. Each linedef must have two vertexes. The "points" between which the linedefs are drawn. LINEDEF The line between the two vertexes. These are usually defined as walls, but can be the sides (viewed from above) of doors, windows, stairs, boxes, switches, ledges, overhangs, cliffs, rivers, or whatever else you can think of. There are two types of linedef: -> One-sided: means that the player will only be able to see (and play by) one side of this linedef. The most common example of a one-sided linedef is an outside wall. -> Two-sided: means the player will be able to see (and play by) BOTH sides of this linedef. Common examples are an interior window and a river/pit. IMPORTANT: Each linedef has a "right" side and a "left" side. The "right" side is the side that should face the player, if the linedef is one-sided. This is _very_ important! Most, if not all, level-building programs give you a visual aid to determine which side of the linedef is the "right" side -- they have a small perpendicular line, at the midpoint of the linedef, pointing towards the "right" side of the linedef. For example: This linedef's "right" | side points to the right |_ side of the page -----> | (See the little stick?) | A 2-sided linedef will also have a "right" side, but since the player will be able to see and/or play on both sides of the linedef, it's not as critical to have it pointing in any given direction. It is easier on you, though, if you make a habit of having all the "right" sides of adjacent linedefs pointing in towards the same sector. ALSO IMPORTANT: The "right" side is often referred to as the "front", and the "left" side is often referred to as the "back" of the linedef, in case the level-building program you decide upon does not make the "right" and "left" distinction. SIDEDEF From The Unofficial DOOM Specs: "A sidedef is a definition of what wall texture to draw along a linedef, and a group of sidedefs defines a sector." Most people I know (including myself) use the terms SIDEDEF and LINEDEF interchangeably, even though they're technically not the same thing. SECTOR One of the most difficult concepts to explain, yet one of the most important ones for a WAD author to know. The DOOM Specs define a sector as "a horizontal (east-west and north-south) area of the map where a floor height and ceiling height is defined. It can have any shape. Any change in floor or ceiling height or texture requires a new sector (and therefore separating linedefs and sidedefs)." Sectors are defined by the linedefs that compose them; a sector is simply a group of linedefs that enclose a given area, and you have to tell DOOM which linedefs are part of which sector. It only sounds complicated because it's difficult to explain; once you define a sector, you'll understand it. What this means is every time you draw an enclosed space, no matter how many sides it has, it must be defined as a sector. Also, if you put an enclosed space _inside_ another closed space, they both must be defined as sectors separately, as well as together. For instance: * Every step in a stairway must be defined as a separate sector. * Each doorway must be defined as a sector. * A square support must be defined as a sector, if you draw it. An example of the "sector inside a sector", and how to define them: ________________________ Let's say that sector 1 is a pallet | sector 1 | and sector 2 is a box on that pallet. | ____*___ | Sector 1 is going to be defined as | | | | all of the outside lines that form | |sector 2| | the square, PLUS all the lines that | * * | form the outside of sector 2. (These | |____*___| | are the lines with the * in them.) |________________________| Sector 2, however, is only the lines in the box itself. In order to see an example of this, load the WAD editor you've decided to use, and view E1M1 from the original DOOM.WAD. Don't worry -- if you don't actually tell the program to save, it won't change your original DOOM.WAD (though it's a good idea to have it backed up in any case). Look at the outside courtyard -- with the poison pit in the center and the blue armor in it -- and highlight the courtyard's sector. Note how the outside walls of the courtyard AND the outside walls of the pit are both highlighted when you choose the COURTYARD's sector. The pit is INSIDE the courtyard's sector, but it is important to note that the pit is not PART OF the courtyard's sector. * INSIDE a sector = enclosed by that sector, but not subject to the ceiling height, floor height, lighting level, or special effects for that sector. * PART OF a sector = enclosed by that sector and subject to the ceiling height, floor height, lighting level, or special effects for that sector. Since the level of the poison pit is below the "floor" of the courtyard, we know that the pit and the courtyard are different sectors. Since they share common linedefs, though (the walls of the pit), the pit sector must be defined as INSIDE the courtyard sector. One more last important note: every linedef you draw on the map MUST BE DEFINED IN AT LEAST ONE SECTOR! If there are "stray" linedefs on the map, and you try to load DOOM, it will crash every single time. TEXTURE A texture is the graphic that DOOM applies to visible (to the player) surfaces, both horizontal and vertical. Vertical textures (walls, doors, etc.) are selected on and applied to the linedefs, while horizontal textures (floors, ceilings) are selected when you define a sector. ** Horizontal textures: These are selected from where you define your sectors when you define or edit a sector. When they are applied, they appear on the floor or ceiling as a continuous, north-south oriented texture. What this means is no matter what direction the linedefs in your sector face, the floors and ceiling textures will always be oriented in the same direction. This is good, in a way, because you never have to worry about your floor and ceiling textures being aligned between sectors; they always mesh perfectly. This is bad, however, because there are certain floor and ceiling textures (FLAT20, for instance) that have a distinctive pattern that looks great when the rooms are aligned with it, but not so good when the room doesn't line up with the pattern. NOTE: Teleport pads are the same way. There is currently no way that I know of that you can move the floor texture to get the teleport pad texture to line up with your intended teleport pad -- you must move your teleport pad to line up with the texture. Most (if not all) level editors will provide a grid (usually 64x64 in size) to help you align these textures. ** Vertical textures: These are selected where you define linedefs when you have drawn a linedef on the map. I recommend that you wait until you have the sector defined, and then put your chosen texture on each linedef in that sector, rather than making sure you have the correct texture every time you draw a line. Vertical textures differ from horizontal textures in a number of ways: 1. They have sizes, measured in pixels. 2. They can be "shifted" for different effects. 3. There can be more than one type of linedef texture per sector; with horizontal textures, you can only have one texture for the floor and one texture for the ceiling for each sector. The sizes of the vertical textures vary, but they all have one thing in common -- their sizes are always multiples of 8. Some of the vertical textures are contiguous (they will draw continuously and smoothly, no matter the height and length of the linedef they're pasted on), while others are a set size, and will put "confetti" in between textures when pasted on a linedef that is not the correct height and/or length. Unfortunately, the only way to discover which ones are which is through experimentation. * A recommendation: whenever possible, note the height and width of the textures you wish to use before you start drawing your level, and try to adhere to their dimensions as much as possible. This will make the textures draw more clearly and accurately and make your level look as good as possible. Yes, I know it restricts you to multiples of 8 when you're designing your rooms, but it's not that hard to be creative with this slight constraint. X- AND Y-OFFSET These two items are related to the vertical textures, and are used for `advanced' level-designers (whatever _that_ means) to be more creative with their texture placement. First, a little primer of how DOOM draws textures, from what little experience I have as a WAD author. When DOOM pastes a texture on a regular wall, it starts from the top left-hand corner, and goes from top to bottom and left to right when drawing a texture, like this: ______________________ | * --------> | This is a regular, floor-to-ceiling | | | unbroken wall -- note that it has no | | | doors, no windows, and no changes of | | | elevation whatsoever. DOOM starts | V | drawing the texture at the "*" and | | goes like the arrows indicate. |______________________| Every time a new linedef starts, DOOM starts drawing the texture over again, from top to bottom and left to right. With wall textures that have no distinctive pattern (like BROWNHUG), this isn't a problem; the whole texture looks the same no matter how many times you draw the first 16 columns of pixels. But what if you have a texture that has a distinctive, non- repeating pattern, like a computer wall? If you draw 5 linedefs that are 16 pixels long, and apply this texture to it, it'll draw the first 16 columns of pixels over and over and over, and it'll look dumb. An example of what the difference is between these two examples (one that has been offset, and one that hasn't) is in the WALKTHRU.WAD and .TXT. There IS a solution, though -- x-offset. What x-offset does is tell DOOM, "Instead of placing this texture on this linedef like normal, start drawing it x number of pixels over". This will have the effect of creating a seamless, unbroken texture, no matter how many linedefs it's pasted on. ** NOTE: The x-offset feature is vital if you want to create a secret door that you really cannot see!! So, let's say you have 5 16-pixel long linedefs that you want to put COMP2 on, but you want it to look smooth: 1 3 4 6 8 0________6_________2_________8_________4_________0 | | | | | | | wall 1 | wall 2 | wall 3 | wall 4 | wall 5 | | | | | | | | | | | | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Use the x-offset on each linedef EXCEPT the one on the far left; since DOOM starts on the left, the first one from the left is always "normal". So the x-offset for the linedef/textures would look like this: wall 1: x-offset = 0 (Note: x-offset can be a negative wall 2: x-offset = +16 number, too, if the texture you're wall 3: x-offset = +32 offsetting is narrow enough. The wall 4: x-offset = +48 limit to a negative offset is 96; wall 5: x-offset = +64 there doesn't appear to be a limit on the amount of positive offset.) * A recommendation: to get the amount of the x-offset for any given wall texture, just add the amount of the lengths of the linedefs from the place where you think the texture should be drawn from; for example, wall 4 begins 48 pixels away (to the right) from where wall 1 began, so the x-offset would be +48. This will work with negative offsets as well, but since I don't have much experience with negative offsets, I'll leave that up to the reader for experimentation. Y-offsetting works the same way, except instead of horizontally, it goes vertically. The way the + and - in the offset affect the texture goes like this: _________________________ | /|\ | A "+" y-offset will move the texture | | (-) | DOWN towards the bottom of the line- | | | def you're applying it to. | | | | | | | (+) | A "-" y-offset moves the texture | | | UP towards the top of the linedef |__________\|/__________| you're applying it to. One of the textures I find myself y-offsetting is the BIGDOOR1 texture (the UAC door). By making a 64-high doorway, and y-offsetting the texture +8, the UAC symbol on the door doesn't look "cut off" by the top of the doorframe. Alternately, if you y-offset this texture by more than -8, you get "confetti" at the bottom of the door. UNPEGGING TEXTURES This is the process of telling DOOM to draw textures backwards from how it usually draws them in a given situation; i.e., bottom to top instead of top to bottom. This attribute is only handy in a few situations (like windows and secret doors); therefore, this attribute will be explained in detail in those sections. THINGS This is a general term for any item in the game, animate or inanimate. Things are loosely grouped into 8 categories: Player : player 1-4, co-op, and deathmatch starting positions. Weapon : chainsaw, shotgun, chaingun, rocket launcher, etc. Ammo : single loads and boxes; all ammunition Enemy : imps, demons, spectres, etc. All the baddies. Bodies : pools of blood, exploded bodies, dead creatures, etc. Obstacles: pillars, torches, lamps, barrels, etc. Power-ups: medikits, soul spheres, armor, invisibility, etc. Misc. : keys, teleport destinations, etc. All of the Things are placed on the map by the WAD author. Note: each Thing is 10 bytes, so 100 of them is 1k; monster-fests take up quite a bit of memory! Place Things with discretion... When each Thing is placed, there are a number of criteria that each one has that you need to be aware of: * They can be tagged so they only appear on certain difficulty levels, or only in deathmatch games, both, or neither. This applies to ALL Things, not just monsters. This is helpful if you don't want to change the monster mix when increasing the difficulty levels; simply remove health and ammo by changing the "levels available" flag... * They can be tagged to face in one of 8 directions. Obviously, this only really matters with monsters and teleport destinations. The 8 directions are northwest, north, northeast, east, southeast, south, southwest, and west. (This is in relation to the orientation of the map, where the top of the screen is north.) From experience, I've found that monsters generally have a 180-degree field of vision, for activation purposes. * They can be tagged to be "deaf". This applies to monsters only. Monsters will become "active" (meaning they'll actively search for and try to kill the player) under one of three conditions: 1. They see him/her. 2. They hear a shot (including a punch!). 3. They are shot by him/her. If a monster's "deaf" flag is set, option #2 will not activate the monster. In most cases, in my opinion, it is best to set the "deaf" flag to ON, making the monster deaf. Otherwise, the first time the player shoots anything, half to three-quarters of the level "wakes up" and starts hunting, spoiling all those wonderful ambushes... This is why knowing the monsters have a 180-degree field of vision is important; they have to be able to see the player to become "active", and knowing which direction they have to face to see him/her becomes critical. It will take some practice for you to determine the right balance of Things in your levels. Don't be afraid to experiment! NODES This is another vital concept for the level author, but, luckily, the technical parts of their construction may be omitted. If you would like a detailed explanation of how nodes are built, and the way they are generated, the Unofficial DOOM Specs has a lengthy description. For the level author, though, you need to know this: Nodes are DOOM's way of determining what the player is able to see from any given location. Every WAD _MUST_ have a node-tree built for the level to be able to run; otherwise, DOOM will crash when you try to play your level, with a variety of fatal errors. Most level-building programs have a node-builder built into the program itself. Some are better than others, but I personally have not found a better node-builder than BSP 12x, by Colin Reed. In general, the more nodes the node-builder is able to locate and "build", the more "solid" the level will be. For reference, a symptom of an inferior node-builder is the ability of the player to "walk through" a solid wall; if you experience this problem with the node-builder you're using, get a better one. WADED, DEU, DOOMEd, and DOOM-CAD all come with their own node-builders. I have no experience with any other level-builders, so I cannot verify the existence of more than these. In addition, there are "independent" node-building programs, which means that building the nodes for levels is their entire function. There are only two of these that I know of: BSP 12x and IDBSP, which is the node- builder Id uses, ported to DOS. TAGS This is how DOOM links linedef activation to various sector events. A tag is simply a number that a linedef and it's linked sector share, for purposes like lifts, doors, crushing ceilings, etc. More on this in later sections. SPRITES The way I understand it, Sprites are the textures for various items in the game. Most often, it refers to the creatures and actual items (Things), but can be used to refer to walls, floors, ceilings, and even the weapons the character carries. Sprites may be modified by various programs, but that is beyond the scope of this Handbook. It is enough to say that most, if not all, of the textures, creatures, and items in the game may be changed by the enterprising, creative, and persistent WAD author. BLOCKMAP, SSECTORS, SEGS These are various attributes used (and referenced) by node- building programs to build the nodes that will enable your level to be played. Again, a more detailed explanation is available in The Unofficial DOOM Specs. REJECT (This next section is mostly opinion.) A reject table is part of the node-building process. It is designed to "speed up" your DOOM level by reducing the number of calculations DOOM has to perform. Each second, DOOM must figure out where each monster is, if each monster has been activated, where the player is, which monsters the player has activated, etc. It does this for EACH monster on the map EVERY second. What the reject table does is tell DOOM which monsters it has to check, based on where the player is at any given time. (This is why I feel it's related to the nodes function.) A reject table tells DOOM ONLY which monsters it has to check, instead of checking ALL of them, and not having to check every monster every second speeds DOOM up. This is the function of a reject table. This may or may not be correct; if anyone knows differently, or can explain it better and more easily, please feel free to send me some mail, and correct me! HOM An abbreviation for [H]all [O]f [M]irrors effect. This will occur primarily when a linedef does not have a texture applied to it in the correct place. Also happens when textures are applied where they shouldn't be (i.e., on both visible sides of a window), and when a linedef is defined improperly in a sector. Lastly, if there are too many 2-sided linedefs visible (for DOOM 1, this number is 16; DOOM 1.666 and higher can handle 32) you'll get "texture bleed", which, for all intents and purposes, looks like a HOM. Careful building and checking will eliminate this problem. Note that this is a common error for the novice level-maker. -------------------------- [2-0] Designing The Level -------------------------- Okay. This is the part you've been (patiently, I hope) waiting for. This section is going to consist of overall, general things you might want to know about designing a level, like theme and lighting and texture selection and procedures and such. The nuts-and-bolts part of level creation, the actual _building_ and stuff like that, is in the next section, "Building The Level". This is more of an overview and recommendation section. Generally speaking, a level that is "built" without first being "designed" has less continuity and has a more haphazard appearance. (Note that this feature may actually be an advantage if you're designing a deathmatch level!) Most of the information in this section is unnecessary, really, but instead of learning it by trial and error (like a lot of WAD authors have, including me), you can just read this section and learn from _our_ mistakes. Not a bad deal, eh? (Note: this next section is very nearly entirely opinion, based on the experiences I've had playing PWADS (over 250 of them), the experiences others have had playing PWADs (from a survey taken on the FIDO DOOM echo), and the experience I've had making my very own level. If you don't agree with some of this, all of this, or any of this, that's more than fine. If you've got opinions of your own that you'd like to have added to this file, e-mail them to me and I'll include them in the next version of this thing. Sound good?) OVERALL TIPS, REMINDERS, AND PROCEDURES ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This section will give you a few general tips, recommendations, and procedures to follow to design and build your first WAD. This is only because you've probably never designed and/or built a WAD before, and it's good to have some sort of framework to use at first. When you become more experienced, and feel more confident about building WADS, you'll probably end up with your _own_ way to do it, that _you_ feel most comfortable with, but for now, take a look at this stuff, so you have somewhere to start. THE FIRST WAD YOU MAKE IS GONNA SUCK. There's just no way around it. You've never built a WAD before, and you don't really know what looks good and what doesn't, so it's gonna bite big-time. Accept this, and then build the first one anyway. Try out every single function of your WAD maker somewhere on this "test" level. Learn how to make a door, a window, a damage sector, different lighting, stairways, ledges. Learn how to link a linedef to a sector event, learn how to hide secret doors from the player, learn how to set up monsters for maximum ambush effect. Learn how to unpeg textures (and what that looks like), learn how to use differing textures, learn how the X and Y offset work and what they look like when you use them, learn how to do just about everything... WITHOUT WORRYING ABOUT IF IT LOOKS COOL OR PLAYS WELL. This first one is your experimentation level, and you're SUPPOSED to mess up on it. It's not like you'll be releasing this thing for people to play; it's like your chalkboard, where you figure out the answers to the problems. Plus, the time you spend on this first one is time you'll save later, because nothing is more aggravating than trying to add an effect you haven't done before and destroying a large portion of the level you want other people to see. Trust me. I've done it MORE than once... Practice, practice, practice. ALSO, WHEN DESIGNING a level (the test one or any other), make it a habit to save as many different versions of your WAD as you can under different filenames. That way, if you mess something up, you've always got a recent version or two to fall back on, and you won't have to spend a ton of time redoing a bunch of stuff that you've already perfected. A good way to do this is to change the last digit of the filename sequentially every time you save a new version; i.e. TEST0.WAD, TEST1.WAD, TEST2.WAD, TEST3.WAD, etc. When you run out of numbers, go to letters. When you reach the end of the alphabet, start over -- heck, by that time you'll have 36 versions of your level on the hard drive, and it's safe to say that the oldest one is probably obsolete. Or, you could just set up the Undelete Sentry program that DOS has (versions 6.0 and later, I believe), which will store all your deleted files for a period of time. This is nice, but it soaks up a lot of hard drive space. IF YOU CAN CHANGE the default textures in your level-builder, I strongly suggest that you do so. WADED (the one I use) uses the STARTAN3 texture as a default when drawing new linedefs, and since I hate that texture (and will probably never use it), it becomes tedious to change it every time I want to draw something. I don't know how other editors work, but if you can set your own defaults for certain things (like lighting level, floor, wall, and ceiling textures, sensitivity and roundoff of the mouse pointer, etc.), it will save you quite a bit of time in the long run. TAKE THE TIME TO read the docs to your preferred levelmaker! You absolutely have to understand how it works to make the best level possible. DEU has a nice on-line tutorial that runs you through its basic functions, and while it might seem like kind of a pain, it's worth the time you invest in it. Other editors just come with the .TXT files, and the Windows version ones usually have a help file. Read everything! The time you spend on this now is the time you'll save later when you can't figure out exactly how something is supposed to work... WHEN ACTUALLY BUILDING THE WAD, another recommendation: make wall lengths, door depths, and ceiling heights multiples of 8. While this may seem limiting to your creativity at first, the time you'll save lining up textures will be more than worth it. Besides, the player can't tell how many pixels high or wide the wall is, and usually doesn't care, as long as it looks good. Using multiples of 8 will make it look good. HAVING A PROCEDURE TO actually construct the WAD is helpful to the novice, but once you get going on making WADs, you'll almost certainly have your own personal way of construction that works best for you. For now, though, here's a method that you can either write down or copy so you don't inadvertently forget anything the first time you build a level: 1. Draw the room the way you want it to look -- put up the walls and vertexes and stuff like that. Make sure the linedef lengths are multiples of 8, for easier and more consistent texture mapping. 2. Define the sector. Use the automatic "Make Sector" function if your level-builder has one; when you become more experienced, you can define your sectors manually for greater accuracy. 3. Check the sector. Make sure all your linedefs are pointing in towards the sector you've just defined, and make sure all the linedefs that are supposed to be defined in that sector ARE defined in that sector. (This is the most common cause of errors the novice experiences when designing his/her first WAD, by the way.) 4. Modify the sector. Define the ceiling and floor heights you want, the lighting level, the floor and ceiling textures, and any special lighting or damage effects you want this sector to have. 5. Check the linedefs. Make sure every linedef in that sector has the proper texture applied to it, and in the proper place. (Not performing this task is the biggest cause of HOMs -- having linedefs without textures applied to them.) 6. (Optional) Place the Things you want in this sector. I recommend that you do this when the entire level has been built, but I understand the desire to have monsters running around when you first build your level. The time of placing monsters is a personal thing. 7. Save the WAD. Every single time you add a new sector, SAVE! This is something that should become habit. If you have an "auto-save" feature, enable it. This one thing will save you more time than any other thing I could recommend; if you mess something up, you'll at least have what you've done correctly already saved, and you won't have to waste the time re-creating a sector you had already created perfectly. NOTE: Don't forget to increment the last digit on the saved filename! 8. Build the nodes. Use the node-builder built-in to your level builder, or (recommended) get a copy of BSP 12x, exit to DOS, and build your nodes with this program. 9. Test it. Fire up DOOM, enter your WAD on the command line, and check your new sector. Have a pencil and piece of paper ready, and make notes to yourself to fix things that you haven't done quite right. Writing down things to fix is the best way to remember everything when you get back into your level-editor. NOTE: DOOM, for some reason, can sometimes have problems when running a WAD that is a single sector. Make sure you have at least two sectors defined the first time you run your WAD, to prevent any possible crashing. Also, make sure that you always include a Player 1 Start position, or DOOM will crash. I recommend that you make a batch file for the testing of your WAD, as well; with as many times as you're going to have to test it, it'll save you a bunch of keystrokes. Mine looks like this: ---[TEST.BAT]------------------------------------ cd\doom doom -file c:\levlmakr\%1.wad cd\levlmakr waded --------------------------------------[endfile]-- (WADED, my level-builder, is in a directory called C:\LEVLMAKR. What I enter on the command line is "test ". The batch file changes to my DOOM directory, enters the filename w/o .WAD in the command line in the proper place, and, when I exit DOOM, goes right back into my level-builder. If you decide to use this batch file, modified for your own directory structure, copy it as is -- besides the dashed lines that have the name of the file and the "endfile" flag, and change the "cd\" entries to reflect your directories. Of course, if you know what you're doing with batch files, ignore this.) THEME ~~~~~ Every good level has to have a theme. As a WAD author, you probably have some idea of what kind of theme you want already, but if you don't, I highly recommend that you find a theme before you start building. Nothing is more annoying to a player than finding hell textures placed without reason in the middle of a computer room! A plus to having a theme is that your level will have a logical reason for "existing"; rooms will have functions, and the way the level is laid out will make sense from an architectural and functional standpoint. If the level has a theme, and the placement of the rooms makes sense, the player will understand this and the level will play better. Another advantage to having a theme is that the level will practically build itself, in terms of room layout, size, and function. If you know what kind of level you're building, you won't even have to _think_ about what to do next; you'll already have a mental image of what this type of structure is supposed to look like. For example: my first WAD is titled "Sub-Station Alpha". What it's supposed to be is a "sub-station" for trans-dimensional research that was under construction by UAC at the time of the breakdown, and it's mostly underground. Right there, you can tell that there are going to be a couple of "unfinished" areas, where the construction crews haven't been yet, and the textures will be solid rock. The layout of the walls will not be smooth and even, either. Since UAC had Marines guarding the station, there will be a couple of guard posts. There will be a cargo bay, for the unloading of construction materials. There will be a "checkpoint" right outside the entrance lift, to check in visitors and new arrivals. And there will be a "testing room", where the UAC scientists conducted their experiments before the fateful day. Also, there won't be many (if any) windows. Do you see now how easy it is to build levels when you've got a theme? You don't even really have to think about _what_ type of room to make, only how big it's going to be and where it's going to go. And, of course, how many monsters you can stuff into it... TEXTURES are another major factor to consider when making levels. They've got to "blend" logically and consistently in order to make the best, most "realistic" level possible. In other words, keep the hell textures out of the computer room, and don't make lifts with nukage floors! You'll have to experiment with the textures to see which ones work best together. I suggest making a list of the ones you think you'll be using, based on the type of level you'll be building, so you don't have to preview all the textures every time you want to use a different one. I also suggest putting them in groups by category, such as "hell textures", "computer textures", "stone", "cement", etc. That way, you'll be able to pick a texture based on the type of room you're building quickly and easily. DIMENSIONS are also important. Lots of big rooms are kind of fun, but very large rooms virtually require a lot of monsters to adequately "defend" them, and lots of monsters slow the game down. Of course, making rooms too small may irritate the player, as there will be no room to dodge. You've got to strike a balance between size and playability, here. Also, don't forget the elevation changes! Stairways, while complex, are really necessary for a fun level, and lifts add to the possibilities for height changes. You could also go to the extreme and use nothing but "cliff-like" drop-offs with teleporters for the player to get back into the action, but those remove the players' options, so aren't really recommended. The relative sizes of the various monsters and the player will be discussed later, so you know how low and wide to make corridors and rooms and still enable everyone to be able to move around. Again, theme plays an important part in deciding the dimensions of rooms and corridors. LIGHTING is the one thing that will give your level it's "feel". Striking the right brightness level is also one of the more difficult things to do as a level-maker, as players have access to the Gamma Correction key (F11), the contrast and brightness controls on their monitors, and, of course, the IDBEHOLD-L cheat code. The idea is to make the lighting fit the situation. If the situation calls for darkness, so be it, but remember: everybody wants a fighting chance, and nobody likes stuff jumping them out of the dark. Flickering, oscillating, and glowing lights are great "theme" lighting, too. I recommend using these as much as possible, especially down stairs and in places where you want to lend a feeling of "instability". MONSTERS are the name of the game. One of the major gripes I got in the survey I conducted for players' likes and dislikes was that too many WAD authors felt the need to throw in a Cyberdemon or three at every available opportunity. Surprisingly, very few people enjoy battling a big boss in every level they play. The idea is to balance the monster mix, make it consistent, and make it tough to beat. My rule of thumb is that the level should be barely survivable when you begin with just a pistol on Hurt Me Plenty. More than a few levels have found this magic difficulty level, and they're levels that I enjoy playing again and again, simply because I truly don't know if I'll be able to survive any given attempt! You'll have to adjust the difficulty levels as well to make sure that "Too Young To Die" is not just "Hurt Me Plenty" minus one imp. Remember: you're in control. You decide how many monsters there are, what types there are, and, most importantly, WHERE THEY START. An incredible amount of damage can be inflicted on a player with just 6 (yes, six) strategically-placed imps. Make the monsters accessible, too -- the player has to be able to see them and kill them. Nothing is more irritating than being bombarded by shotgun-wielding sergeants from a ledge that is too high for the player to see. Also, there are certain textures that "camouflage" some of the monsters perfectly. The "vine" textures make the Imps nearly disappear, and the Spectres, being nearly invisible to begin with, are really difficult to see when the light level gets below 128, and the textures are complicated (lots of different colors and shapes; SP_ROCK1 is one example). Be creative when placing monsters, too. That way you won't have to place as many of them, and the players will be in for a hell of a ride. And that's why we all play DOOM in the first place, isn't it? The placement and use of ITEMS is the most determining factor in how easy or difficult your level is. Sure, you've got Barons roaming all over the place, but when there's a cumulative total of 4000% worth of health on the level, how tough is it going to be? One of the most difficult, challenging, and entertaining levels I've ever played had a soul sphere and the blue armor available right where you started, but had no more health or armor throughout the level. Great idea -- it was a race against attrition to get to the exit. Wonderful. Resist the temptation to put down too many stimpaks and medikits, and I don't advise putting more than 2 soul spheres on any one level, unless you discover that you really need to. Same thing with armor. Of course, individual tastes may vary. The same thing with ammo -- too much is not a good thing. Lack of ammo makes the player become more skillful, rather than just holding the button down while walking through the level. Personal choice dictates the placement and types of weapons available. Personally, I don't like to give the player anything bigger than a rocket launcher, and I severely restrict the availability of the ammunition for _that_. Using the bigger weapons just removes the challenge of killing monsters, and by using the smaller weapons, you can use fewer monsters for greater effect. Avoid, at all costs, making it too easy for the player to get weaponry and armor! Too many levels that I've played have had a backpack, enough ammo to fill it completely, and all the weapons (including the chainsaw) right next to the Player 1 start position. Where's the challenge? STYLE ~~~~~ After you've been working on your level for a while, you'll begin to develop a style of your own. Everyone does. It's part of the creative process, after all. But since you haven't built a level yet, you really don't have a "style" per se. Here are the three main "types" of style I've encountered so far when designing levels: THE PLANNER: This individual, before even firing up the level builder for the first time, will get all his notes together, grab a pad of graph paper and a pencil, and draw the whole level out. He will indicate all the ceiling and floor heights, linedef lengths, items, monsters, and EVERYTHING, and then simply transfer the notes from the paper to the monitor. While this can be time-consuming, the desired results are most often obtained, as there is no "creative process" once the builder actually begins construction. THE MODIFIER: This one sketches ideas for his level as they come to him, in rough terms, on any scrap of paper that's handy at the time. He usually has a theme to stick to, so will rough-draw a room and label it, knowing that he'll remember what he meant later. This one works on the level constantly, modifying existing rooms as he gets new ideas, and creating new rooms based on the numerous sketches lying about. More often than not, he will change the structure of an entire quarter of the level as inspiration strikes. The level, though, does somewhat resemble the notes, and these levels, while not quite as structured (and usually, as linear) as The Planner's levels, do have a certain logic to them that can be found. THE DISCOVERER: This one sits down at the keyboard with a vague idea of what he wants to do, turns on some music as "white noise", and just starts building. The level that comes out is often very non-linear. (Very rarely do Discoverers build linear levels; at least, on purpose.) Ideas come and go, and are as readily drawn and discarded. This type of building style is not recommended for the beginner, as a working knowledge of the level builder you prefer is necessary to this free-style approach; however, if this is the way you work, go to it. The level, when completed, is often as much a surprise to its creator as it is to the people who play it; nonetheless, the level of craftsmanship is quite high. If you're none of these, or all of these, it doesn't matter. As long as you feel comfortable with the way you're working, that's what works for you. ---------------------------------- [3-0] Building The Level -- Basic ---------------------------------- Now, on with the show. This is the section that will actually demonstrate the technical part of building a level. I will attempt to show you how the basic features of DOOM are built -- doors, windows, lifts, secret doors, linedef special functions, and all that good stuff. Whenever possible, I will present a crude ASCII diagram to demonstrate a point, and to show you (as closely as possible) what it means. In addition, each structure described and detailed in this section, as well as visuals of the most common errors (that won't cause DOOM to crash), will be described and demonstrated in the included level, WALKTHRU.WAD. Note that the .TXT file that goes with this WAD will lay out what effect or feature is where on this test level. I will also give you a list of the monsters and their various sizes (gleaned from The Unofficial DOOM Specs), so you know how high and wide to build corridors so the various monsters (and the player) can move through them -- see Appendix A for these dimensions. Each sub-section of this Part will teach you a different structure in the DOOM universe. Again, if I leave anything out, or you have discovered an easier, faster, or just plain better way to build a certain feature, please leave me e-mail so I can improve this manual. Thanks! ROOMS ~~~~~ These are the easiest things to design in any WAD. All you have to do is make a bunch of linedefs that surround an area, define it as a sector, make the floor and ceiling heights, choose your lighting, and make sure the textures are correct. That's it. An empty square room is the best kind of room to make when you're building your first WAD. Once you become more familiar with the WAD-building process, your rooms will have any number of sides, will be strangely-shaped, and will have lighting and sector effects. You may want to build a little while you're going through this Handbook, to get a feel for how it works, and so you can get that horrible "first test WAD" out of the way. In any case, it's easier for you, as the prospective WAD author, to actually _make_ the things I'm discussing while you're reading this, as it's easier for you to see what I'm talking about when you're actually _doing_ it. And don't worry if it's not perfect; remember, your first WAD is going to be your rough draft. It's _supposed_ to be ugly. HALLWAYS ~~~~~~~~ A hallway is simply a narrow room. That's it. If you've built a room so far, go ahead and add another room onto it. Start drawing from one of the "walls" of the room, and build a narrow (but at least 64 wide) rectangular room attached to it. (Note that this will leave a linedef "across" the connection of the hallway to the room. Don't worry -- you won't be able to see it when you're playing. This "invisible linedef" is the basis for the trigger linedefs we'll be talking about later.) Define it as a sector; most level editors will assign the same characteristics to this sector as they did to the one it's attached to, except for the textures on the walls. If you want to change the wall textures, do it now. Save it. And that's it! Now, if you really want to, build the nodes and run it, and there you have it -- your first creation! Hallways are good for making "junction rooms", which are hallways with multiple exits into different rooms. Making every room connected by only one hallway is kind of boring, and doesn't allow the player many options. If you make 5 rooms off of one hallway, then the player gets to choose, and it's more fun to play that way. A NOTE ABOUT DIMENSIONS: the player cannot go down a hallway that's less than 34 wide. Monsters and such have variable dimensions, and I'll discuss those later, but for now, if you want to go down the corridor you've just made, make it at least 34 wide. (48 is good, as it's divisible by 8, and more than big enough for most monsters.) WINDOWS ~~~~~~~ This will be the first tough thing you've got to learn. It's not that difficult, really, but there's more to remember. To make a window, say between two rooms: First, make the two rooms, and separate them with a sector that's 16 wide. See diagram below, which is a top view -- what you'll see on the screen as you draw it: __________________________ _________________________ | sector 1 | | sector 2 | | | | | | adjacent linedef-> | | <-adjacent linedef | | |_| | | | | | | window linedef-> |3| <-window linedef | | | | | | |_| | | | | | | adjacent linedef-> | | <-adjacent linedef | | | | | |__________________________| |_________________________| Okay, time for a little assistance. The numbers (1-3) above refer to the sectors involved that you have to define. Note that the window sector itself (number 3) is drawn and defined, along with the others. Note also that sectors 1 and 2 are connected _only_ by sector 3 -- there is no continuous line on the top and the bottom. Define sectors 1 and 2 with a floor height of 0 and a ceiling of 128, do your lighting, fix the textures for all visible surfaces, and save it. Define sector 3, but define it with a floor of 32 and a ceiling of 96. What that means in regards to the window is that the bottom sill of the window is 32 pixels above the floor, and the top of the window is 96 pixels above the floor (or, conversely, 32 lower than the ceiling.) Define the lighting as the same as the two adjacent sectors (1 and 2). Define the floor and ceiling textures (which will be the top and bottom sills of the window) as FLAT20 for now. That's a light-grey grid, and it's not too bad for window trim. Define the north and south linedefs (the vertical ones on the sides of the window) as, oh, COMPSPAN. We're just trying to get a working window built. Now comes the tricky part. Since the floor of the window sector is above the floor of the adjacent sectors, and the ceiling of the window is below the adjacent sectors, the way the textures are applied is a bit different. When you apply textures, the level maker you're using might have given you a box (or boxes) that kind of looks like this (without the letters and numbers inside it, of course): ______________ | | | (A) |<- This texture is applied "above the ceiling" |______1_______| (Also known as the "Upper" texture.) | | | (B) |<- This texture is applied between the floor and ceiling |______2_______| (Also known as the "Normal" texture.) | | | (C) |<- This texture is applied "below the floor" |______________| (Also known as the "Lower" texture.) Some editors will let you apply textures using a template like the above; others will use the Upper, Normal, and Lower labels. What's important is that you understand where each texture goes, and what your level editor calls the positions, so you are able to apply them correctly. To remember how this works, line 1 above is the ceiling level, and line 2 is the floor level, so the texture you define in the (B) box is the texture that your normal walls are. After all, the walls begin at the floor and end at the ceiling, so you want a texture applied between the floor and the ceiling, right? But on a window, the texture between the floor (the bottom sill) and the ceiling (the top sill) has to be clear, and on both sides of the linedef on both sides of the window. *** YOU CANNOT HAVE A TEXTURE IN BOX (B) IN A WINDOW SECTOR! *** (There are exceptions, but more on that later.) So, what do you do about the textures above and below the window? Simple. Just make sure that the same texture for the rest of the linedefs in the room matches the textures you will now put in boxes (A) and (C) for the linedef over the window. Don't forget about the adjacent linedefs; they'll have the same texture as the rest of the room, too. But it's not over yet... Now, since the window linedef's top and bottom textures are not "normal", you have to do something extra to them as well. DOOM normally draws textures from the top down and from left to right. BUT, when it's dealing with textures above and below the floor and ceiling of sectors (that are visible from adjacent sectors), it draws the Box-A/Upper texture from the bottom up and it draws the Box-C/Lower texture from the top down. What this means is that the bottom of the window will have the top-of-the-wall texture, and the top of the window will have the bottom-of-the-wall texture by default. They will not "line up" with the adjacent textures (if the texture you choose has a pattern, and most of them do), and it will look retarded. To correct this, simply UNPEG the textures above and below the window by selecting "Upper Unpegged" and "Lower Unpegged" from whatever Linedef Special Selection Menu your level editor has. This will tell DOOM to draw the textures the "right" way, making the window look like it's supposed to. As an experiment, just so you can see what it looks like, don't unpeg the textures at first, save the level, build the nodes, and run your level. Examine the adjacent textures, and examine the textures above and below the window. Go back to your level editor, unpeg both, save it, build the nodes, and run it again. Examine them now, and note the difference. A tip you may want to write down is ALWAYS REMEMBER TO UNPEG TEXTURES WHEN YOU MAKE WINDOWS. It separates the novice from the expert level builder. A NOTE ABOUT DIMENSIONS: the player is 56 high, and can climb 24-pixel (maximum) height differences. If you wanted the player to be able to climb through this window, the highest you could make the "floor" would be 24 (because the adjacent floors are 0). If you did make the "floor" of the window 24, the minimum height of the "ceiling" of the window would be 80. Try making the floor of the window 16 instead of 32. Save it, build the nodes, run it, and climb through the window. Neat, huh? DOORS ~~~~~ Basically, a door is a sector with a floor and ceiling height that are equal to the adjacent floor heights. Most level builders allow you to define a sector, like normal, and then select a "Make Door" switch. For those who don't have this feature, the procedure is: 1. Make a sector that's between 8 and 16 deep -- most doors in the WADs you've seen are this deep. The width can be anything you like, but the door textures in DOOM 1 are either 72 wide (for the narrow ones) or 128 wide (for the big ones). Make your first door 128, because it's easiest to work with. 2. Make sure the linedefs are pointed in the right directions. See the following diagram; it shows what a basic door's linedefs are supposed to look like. I know this may stifle your creativity, but if the door isn't created _exactly_ like this, DOOM won't recognize it as a door: _____________|______________ |__ __| |__________________________| | The "long" lines are the front and back of the door (the part the player "uses" to open it), and the linedefs MUST be defined as 2-sided. The "short" lines are the door jambs, and MUST be 1- sided. The linedefs MUST point this way for the door to work! 3. Define the thing as a sector. Make sure the linedefs are still pointing the right way, and that the two long ones are still double-sided. IMPORTANT REQUIREMENT: When defining the floor and the ceiling heights for the door sector, the number MUST BE THE SAME as the adjacent sectors' floors; i.e., if the floor height on the adjacent sectors is set to 0, both the floor AND the ceiling of the door sector must be 0. Sounds weird, but it'll make sense in a minute. 4. Check your textures. For this door, any of the BIGDOOR series should be sufficient. For the doorjambs, DOOM 1 offers two options: DOORTRAK (which is the "standard"; looks like a chain- drive or something) and DOORSTOP (more of a smooth, techno look). Personally, I and others prefer DOORSTOP for "normal" doors and DOORTRAK for huge doors, but it's up to you. IMPORTANT NOTE: Since you've defined both the floor AND the ceiling at the same height, and since that height is the same as the floor height in the adjacent sectors, that means the ENTIRE door texture that you'll be applying will be "above the ceiling", or an Upper texture. Remember which box this is supposed to go in on the Texture Definition boxes? If you don't, refer to the "Window" notes above. 5. Now for the fun part. Go to where your level editor defines Linedef Specials, in whatever menu you have. Highlight either of the long lines, and choose Special Number 1 -- this should be defined as a switch-activated (i.e., player "uses" it for it to be activated) opening door, which closes after 5 seconds. Remember to define EACH long linedef with this Special; otherwise, the door won't be openable from one side or the other. (Note that a one- way door might be desirable later on, and now you know how to make a door that only opens from one side...) What you're doing is assigning an "event" to the activation of the linedef that makes up the outside of the door, and the player activating the special opens the door. Your level editor may have a different method of defining the linedef event than I've just outlined, but hopefully, from the descriptions, you'll have a general idea of what you're looking for in your editor, and can perform the assigning of a linedef to an event. IMPORTANT NOTE: Write this procedure down for later reference! Most of the interesting things that the player can do (and that you can have happen while the player is wandering around your brilliantly- created level) are linedef specials, and you're going to need to know how to assign linedefs to events later on. And that's all there is to designing a door. Later, when you become more proficient, you can experiment with different door sizes and shapes, since you now know how DOOM needs a door to look. TEXTURE HINT: X and Y offsetting works on the door textures, too, so with a little practice, and with a review of the different textures you have available, you can generate some very interesting effects with a piece of scenery that most people take for granted. ALSO NOTE: Most experienced WAD designers rarely assign the "door stays open" special to a door; they want the player to have to turn his back on the monsters if he decides to go back the way he came. Again, only practice will determine which style you prefer. RECESSED DOORS ~~~~~~~~~~~~~~ One of the more common problems when an inexperienced level creator makes a door is they'll have a wall 512 or so high, and the door flush with the wall. What DOOM will do is put the door textures stacked up to the ceiling, which looks...well, retarded. This is how to avoid that problem: Recess the door. Make three sectors instead of one for the door, like so: ____________ ___ ___ ___ __________________ hall | | | | more hall | | D | | | + | O | + | | + | O | + | | | R | | ____________|___|___|___|__________________ Now, let's say the hallway is 192 high, but you only want the door to be 72 high, and you don't want the texture to climb to the ceiling. Just make the ceilings of the two ++ sectors 72 high. Paste a texture on the Upper/"above the ceiling" space, Unpeg Upper on it, and the wall will match the surrounding walls. Plus, now your door is in a little "niche", and the textures won't look weird. (Examples of recessed doors can be found in WALKTHRU.WAD.) SECRET DOORS ~~~~~~~~~~~~ Now we come down to it: "I know how to make a door now. I want to make a SECRET door! How do I do it?" It's a three-step procedure: 1. Make the door itself, and make it flush with the wall. (Remember, in order to be a secret door, it's gotta look like the wall, not a door.) 2. Make the texture the same as the surrounding walls, and unpeg it. This way, when the player finds the door, it'll "roll up" into the ceiling instead of "lifting" like a normal door. NOTE: It's considered sporting to offset the texture of the secret door at least a little, so an attentive player has a shot at finding it! (Thanks to Tom Neff for this tip!) 3. Now, how to hide the line? You'll have noticed that doors have their own color (yellow) line on the map screen, and since DOOM is treating this secret door like any other door, how do you make it look like a wall on the map? On the Linedef Stats menu (wherever it is on your editor), you'll have a couple of choices you can use to disguise walls. What they are, and what they look like and do, are: 1. Not On Map -- this linedef will not show up on the map unless the player uses the IDDT cheat. The Computer Map will not show this line at all, even if the player "sees" it. 2. Secret -- this linedef will show up on the map if the player either sees it or uses a Computer Map, or, of course, the IDDT. The beauty of the Secret stat is that all Secret lines, when viewed by the player and looked at on the map, look like regular old walls (a red line). So, if you want to make your secret door look like a wall to the player, select "Secret" on the Linedef menu. Easy as that! LIFTS ~~~~~ A lift, basically, is simply a sector that is able to descend to the next adjacent lower floor level when a linedef is activated. That's the whole thing. Now, since you've come this far, you should already know how to make a door, and you should know how to correctly apply textures to linedefs. If you haven't, go back and review the "Windows" section and the "Doors" section, because, to reference what you already know, a lift is a reverse door. But not exactly. To make a lift: 1. As an example, we're going to create a lift that'll drop from one area to the adjacent area by simply pressing on the lift itself. Later, you can get fancy by setting up switches and walkover linedefs to drop the lift. 2. First, create three sectors in a row. (The floor and ceiling heights of each sector are labeled F## and C##, where the ## is the number to set the floor and ceiling at.) It'll look something like this (it's easiest if you make this in a "blank" hallway): TOP VIEW: ____________________________________________ | sector 1 | sector 2 | sector 3 | | hallway | lift | more hallway | | C 128 | C 128 | C 128 | |_F___0_________|_F___0____|____F -128_____| SIDE VIEW: 128____________________________________________ 128 | | | | 0 |_______________.__________. | 0 | remember | |<--this line | -128 . . . . . . . . . . . . . |_______________| -128 3. Okay. Now that you've got the sectors built and looking like this, we're gonna make the lift. Tag the line that's marked with the <--, and link it to the lift sector. Go to your "specials" menu and pick the lift type you like; for this exercise, choose the linedef special that is Switch Activated and Repeatable, however your editor does this. And that's it! Now remember, since the "floor" of the lift sector is at 0, and the floor of sector 3 is at -128, you're going to be able to see the texture "below the floor" of the lift; specifically, the "remember this line" line. DON'T FORGET TO APPLY A TEXTURE TO THIS LINE! Otherwise, the first time you see it, it'll be a major HOM, and if you "activate" it, the ceiling of the entire level will probably lower itself to the floor. A neat effect, but you won't be able to move... 4. A NOTE ABOUT DIMENSIONS: The lift in this example is kind of tall, (elevation-wise), but it's just a demo for you to get used to how a lift is built. Usually, "quick" lifts are between 64 and 96 in height; slow, "descending to the depths of the earth" lifts can be any height; 512 is good, because if you're on the lift for too long, it gets borrrring. Also, if you've got a deep lift at the end of a hallway, a nice effect is to have differing levels of tunnels "branching off" the main lift. All you have to do is define the heights of the floors and ceilings of these branching tunnels to anything BETWEEN the original ceiling height and the floor height of the adjacent sector. If done right, it's a neat effect -- it makes getting into these sections of your level a timed event. A crude example follows: ____________ | C -64 | Hall -->| F -128 | __________________________|__________|__________ | | Lift | C -128 | | Hallway C 128 F 0 |C128 F0 | F -256 | <-- Hall |_________________________|__________|_________| | C -256 | Hall -->| F -320 | |__________| Now, all of those hallways that branch off the lift are 64 high, and the lift will go all the way to the "bottom" at -320. During its descent, though, it'll pass the top-most hallway first, then the hallway on the right, ending up at the hallway on the bottom. You can make even more branchings if you were to make the lift hexagonal (6 sides) or octagonal (8 sides). Or you could just go completely berserk and make the lift huge and dodecahedronal (12- sided), with 11 branches... A bit excessive, but possible. 5. A NOTE ABOUT TEXTURES: SUPPORT2 and SUPPORT3 are the standard for side-of-the-lift textures, but, hey -- it's YOUR level. Experiment. Some of the "side of the door" textures look pretty cool, as does COMPBLUE. STAIRS ~~~~~~ Stairs are the other most common way to have the player change elevation, and they're so simple to make; time-consuming, though, unless your editor has an automatic-stair feature. Since not all of them do, here's the laborious way: 1. Define a series of sectors all in a row, and make them door-sized. We'll start off with a straight staircase. See below: ______ _____ _____ _____ _____ _____ _____ _________ hall || | | | | | |more hall 0 | 16 | 32 | 48 | 64 | 80 | 96 | 112 ______|_____|_____|_____|_____|_____|_____|_________ The numbers in the sectors are the floor heights; for the ceiling, use 192. Note how the floor "rises" as you go up the stairs, and also note how rapidly the elevation changes. 2. Now that you've got your rising sectors, DON'T FORGET to apply the proper textures to the risers of the stairs! Since the risers are "below the floor" of the higher sector, the texture will go in the Lower section (Box-C). (If you have the ceilings rise with the stairway, you'll also have to put a texture on the Upper/"above the ceiling" slot.) 3. And finally, remember that the player is 56 high. What this means is that the ceiling of the lower sector must be 56 higher than the floor of the higher sector, or you won't be able to get up the stairs! Once you get better at designing stairs, you can have them spiral, go around corners, or have the stairs themselves be odd shapes. 4. An example of a basic stairway is in WALKTHRU.WAD. ------------------------------------------------------------- [4-0] Building The Level -- Intermediate -- Tips And Effects ------------------------------------------------------------- Since this Handbook was intended as a "primer", and since I myself have only built one level, the "Intermediate" section will, in future, be ideas or demonstrations that you can try out to experiment with different effects. Possibly, in future releases, this section may contain some useful tips. Sometimes it's helpful to know what kinds of things _can_ be done with this system, so you'll get the "feel" for dinking around with your level editor's commands. There are many, many effects you can use, especially if you combine one or more of the effects outlined and described in this Handbook. Again, this section is for future expansion, so send in those tips with ASCII drawings, or send in an actual level with your new technique demonstrated, so I can describe it and put it in the next release. Good luck on designing your level, and good DOOMing! ---------------- [5-0] Checklist ---------------- This is included for the absolute novice who has no idea where to start, and may be a handy reference guide. Or maybe not; only you can decide what works best for you. [ ] I have gotten a level editor that I am comfortable with. [ ] I have read this Handbook and understand the basic concepts. [ ] I have played around with building the basic things. [ ] I have built and played my first level, and it sucks. [ ] I have a theme for my first releasable level. [ ] Build an enclosed area of connected linedefs. [ ] Check the linedefs of the area to make sure they all point in. [ ] Define the area (stair, room, door, etc.) as a sector. [ ] Apply the textures to the walls, floor, ceiling, and all other visible surfaces. [ ] Adjust the lighting. [ ] Define any special linedefs, and tag them to the appropriate sector, if necessary. [ ] Define any special sector events in this sector, if necessary. [ ] Add any Things you would like in this sector, if you prefer. [ ] Save the level as E1M1 (makes for easier testing). [ ] Exit the level-editor (if it's necessary to do this to build the nodes). [ ] Build the nodes with the node-builder. [ ] Exit the level-editor (if you haven't already). [ ] Get your notepad ready. [ ] Run DOOM with this command line: doom -file mywad.wad -warp 1 1 -nomonsters (The -nomonsters switch is nice if you've added Things before you got done with the level and don't want to fight your way through every monster on the level every time you test it.) [ ] Go through the ENTIRE level, even if you've done so before. (Yes, you _will_ grow sick of doing this, but you'll find errors much easier if you look at the whole thing every time.) [ ] Take notes on all the things that need fixing or could be improved. [ ] Exit DOOM. [ ] Go back to your level-builder. [ ] Fix everything (and I mean EVERYTHING) on your list before you build anything new. [ ] Go up to "build an enclosed area" and begin the cycle again. After a while, when your proficiency increases, you'll be able to get away with building multiple sectors before testing... BUT YOU SHOULD SAVE THE WAD EVERY SINGLE TIME YOU MAKE A CHANGE! This will save you much trouble later on... ------------------- [6-0] Finishing Up ------------------- Now your masterpiece is complete. You've had some really good friends beta-test it for you (and test it and test it and test it... There is NO SUCH THING as "too much beta-testing"), and they like what they see (after they've made a bunch of suggestions, of course...), and none of you can find any flaws in the final production. Now it's time to finish up. If your WAD has a theme, and some kind of story behind it, write a little piece explaining the introduction, if any. This is kind of fun (though most players don't read it, it's entertaining), and will provide anyone interested with a little background on your level. I usually save any stories I include with the level as BACKGRND.TXT, just so players will know what it is. Hank Leukart has established a WAD Authors' Template, for level authors to include with the level, and it's pretty much become a standard. It's included here (with permission from the author; thanks, Hank!): WAD Authoring Template V1.4 (Clip this line) ================================================================ Title : The title of your WAD. Filename : .WAD Author : Your name here Email Address : Misc. Author Info : Description : Set the mood here, or refer to a .TXT file. Additional Credits to : Your beta-testers and anyone who's helped. ================================================================ * Play Information * Episode and Level # : ExMx (,ExMx,...) Single Player : Yes/No Cooperative 2-4 Player : Yes/No Deathmatch 2-4 Player : Yes/No Difficulty Settings : Yes/Not implemented New Sounds : Yes/No New Graphics : Yes/No New Music : Yes/No Demos Replaced : None/1/2/3/All * Construction * Base : New level from scratch/Modified ExMx/xxx.WAD Build time : So people will know how much of your life you spent on this thing. :) Editor(s) used : Everything you used. Known Bugs : Any glitches or weird stuff. * Copyright / Permissions * Authors (MAY/may NOT) use this level as a base to build additional levels. (One of the following) You MAY distribute this WAD, provided you include this file, with no modifications. You may distribute this file in any electronic format (BBS, Diskette, CD, etc) as long as you include this file intact. You MAY not distribute this WAD file in any format. You may do whatever you want with this file. * Where to get this WAD * FTP sites: BBS numbers: Other: Notes, thanks, acknowledgements, whatever. ===================================================================== (Cut this line) A blank template for you to use is included in this archive, and the file name is WAD_AUTH.TXT. After you get done with all that, just .ZIP or .ARJ the thing, and start uploading it to your favorite BBSs! ---------------------------------------- APPENDIX A: Sizes Of The Various Things ---------------------------------------- This section is included so you will know how big a hallway, door, or room has to be for the various monsters to be able to move around in them. It also has the radius of the monster, so you will know how far apart they'll have to be to be able to move. NOTE: You can get a real interesting effect by placing one monster on top of another -- neither will be able to move or fire until one of them is dead. This also happens if they're too close together, so be careful where you place them! (Credit for this section goes entirely to Matt Fell, author of The Unofficial DOOM Specs, release 1.3.) Radius*2 = width of monster. (Note: the radius of the player + the radius of a "gettable" object is how far the player can be from that object to pick it up. This is irrespective of intervening walls; i.e., if an object is too close to a wall, the player may be able to pick it up THROUGH an adjacent wall...) Height = how much ceiling space they'll need to move. (Note the height of monsters is infinite, if you're trying to move over them.) Minimum width = how wide a corridor or room will have to be for the Thing to be able to move through it. Thing Radius Height Minimum width ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Player 16 56 34 *This is why the player Former human 20 56 42 can fit through doorways Former sergeant 20 56 42 the other humans can't. Imp 20 56 42 Demon/Spectre 30 56 62 Cacodemon 31 56 64 Lost soul 16 56 34 Baron of Hell 24 64 50 Cyberdemon 40 110 (!) 82 Spiderdemon 128 (!) 100 258 Barrel 10 42 n/a *They can't move... All gettable Things 20 16 42 *So they don't overlap Most obstacles 16 16 n/a Large brown tree 32 16 n/a ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Also, when placing monsters next to one another, if they are too close together, they will not be able to move. The minimum distance a monster must be from an adjacent monster is one-half of the first monster's radius plus one PLUS one-half of the second monster's radius PLUS ONE. For instance, if you've got two imps side by side, they must be, at a minimum, 22 apart, which translates into: ((.5*10)+1) + ((.5*10)+1). If an imp is next to a demon or spectre, the distance increases to 27: ((.5*10)+1) + ((.5*30)+1). If you had a Baron of Hell next to a Cyberdemon (which is really overkill, but it's an example), the minimum distance would be 34 ((.5*24)+1) + ((.5*40)+1). It's really easy to figure once you actually start doing it. --------------------------------------------- APPENDIX B: The 10 Most Common Design Errors --------------------------------------------- (Note: This next section is borrowed from DESIGN11.FAQ, and is used with permission from the author. The FAQ itself is recommended as well, as it explains how to identify and correct the more frequent design errors.) Some of these are show-stoppers (DOOM will crash if you try to run the level), others will let you run DOOM but game play is screwed up, others are just ugly, and a few are common stylistic complaints. All are encountered often in user-written levels, or asked about in discussion forums, or both. There is no particular order. [B-1] Bad Wall Effects. These include: HOMs -- Caused by missing wall textures. See Glossary for a definition of this, and the body of this Handbook for solutions. The Medusa Effect -- The look of this effect varies, depending on which texture you used, but the result is always the same: When this part of the wall is in view, the DOOM engine slows WAAAAYYY down. This happens because you used a multi-patch texture on the Normal area (the middle box) of a wall that you are able to walk through. A fuller explanation of patches and textures can be found in the Unofficial Specs, but briefly: Each texture (like STARTAN3) is built from one or more graphic "patches" and, for some reason, DOOM's engine can only draw SINGLE-patch textures on passable walls; examples of single-patch textures are BROWNGRN, SKINTEK2, and ASHWALL. Examples of multi-patch textures that wouldn't work are STARTAN3, COMPBLUE, and WOODSKUL. A complete list (TEXPATCH) of textures and the patches that make them up is available on major DOOM archive sites. The Tutti-Frutti Effect (also known as "Confetti") -- This effect looks like strangely-colored dots and lines on some of your walls, usually between sections of textures. (CRATINY is a texture that will produce this effect, if you want to see what it looks like.) This can happen for one of two reasons: 1. You used a short texture (less than 128 high) on a wall that's over 128 high. This happens because textures are only _vertically_ tiled on 128-pixel boundaries. If your wall is taller than your texture, and the texture is less than 128 high, DOOM fills in the extra pixels with quasi- random garbage, hence the colored Tutti-Frutti or Confetti. You often see this effect when designers put "STEPx" on 20- 24 high steps. 2. You used a "transparent" texture (like MIDGRATE) on an Upper or Lower surface (top and/or bottom box) instead of on the Normal (middle box) surface. The upper/lower holes Tutti-Frutti effect happens because Upper and Lower surfaces actually have _nothing_ behind them. DOOM has nothing to show through these holes; hence, random garbage. The Long-Wall Error -- This effect causes bullets to hit an invisible wall somewhere in a room (but the line doesn't show on any map), or the walls sort of "jump" or slide around. This is caused by having a HUGE (thousands of units long) wall somewhere in your level. DOOM's engine has fits trying to compute and display the wall's position relative to the player, creating the Long-Wall error. The blocked shots are from the "real" wall right in front of you. The solution is simple: break up long lines. As a general rule, keep them under 1,024. Also, if you choose wall segment lengths of 768 or 512 (remember those multiples of 8?), you will never have a problem with X or Y offsets in the texture tiling. The Moire Error -- Also known as the "Flash of Black" error. This effect causes the whole screen (or just parts of it) to flash, either in random hash or sometimes in a pattern. This is another DOOM bug/limit, triggered by getting close to a wall in a very tall room. The effect first kicks in at about 559 units high, and gets worse (you see it farther from the wall, and stay in it longer) as the room gets taller. (The "pattern" you see is actually your old room's ceiling texture, repeated forever at a great distance above and below you, as though you were floating in some vast star-gate.) If you don't really NEED the tall room, get it below 559 high. Note: this error is supposedly fixed in versions 1.4 and later. [B-2] Wall Pegging. Wall faces exposed by rising or lowering ceilings or floors (including door side tracks) usually have the Unpeg Lower/Unpeg Upper bits set in their linedef. This keeps the side textures from "following" the adjacent rising/lowering sector. Many, many user level designers forget to unpeg their door tracks. Just cosmetic, but contributes to the sense of realism -- or lack thereof. [B-3] Lines Or Vertexes That Cross Or Coincide. A show-stopper. If two or more vertexes occupy the same position, or if two or more lines cross or lie "on top of" one another, DOOM's engine will crash trying to work out the sector math. Several editors are capable of checking for this; if you get crashes often, use one. [B-4] Slowdown From Monster/2-Sided Linedef Glut. Not a crash, but a playability issue. Designers should try their levels on less powerful PCs and/or at full-screen resolution to see whether some rooms are unacceptably slow. (A reject-table builder will tend to alleviate some of this problem, but if you've got more than, say, 64 monsters active at once, this will become an issue on slower PCs.) [B-5] Unaligned Textures, Both X And Y. Just cosmetic, but important for realism. If your X textures are properly aligned and you split a line or drag vertexes around, you will probably need to re-align them. A tedious job, to be sure, but some editors help automate it for you. NOTE: It's considered polite to offset secret door textures a little bit -- say, 2 pixels -- just enough so that an attentive player might notice it. [B-6] Missing Player Starts, Insufficient Sectors. Another show-stopper. Every level MUST HAVE a minimum of two (2) sectors. It must also have a Player 1 Start (if you are going to play non-deathmatch), Players 2-4 Start (if you will be playing Co-Op), and four (4) Deathmatch starts if you will be playing deathmatch. Otherwise (surprise!) DOOM will crash. [B-7] Floor/Ceiling Mismatch. Usually caused by raising or lowering a floor but forgetting the associated ceiling, or vice versa. Sometimes caused by accidentally "including" an unintended sector in a floor/ceiling change, under editors that support multi-sector "gang" operations. Unless the ceiling is AT LEAST 56 higher than the floor, you either can't enter or (if you're already there, via teleport, floor/ceiling movement, or start of play) you will be stuck. This is sometimes an issue on stairways; the LOWER ceiling must be at least 56 higher than the HIGHER floor, or you won't be able to go up or down the stairs. [B-8] Missing/Wrong Tag Numbers. When tagged operations like Lights Out or Raise Floor get the tag number wrong (in the activating linedef), the results are usually awful. The whole level rises or crushes or something else you don't want. This can be tough to spot at first in gameplay. Ideally, editors should check for this. Some editors don't assign Tag numbers, as well; they simply link the linedef(s) to the sector(s) indicated. [B-9] Monsters Too Close To Each Other Or Walls. See Appendix A for the sizes of the various monsters, and the distances they have to be from each other and walls to be able to move and shoot. [B-10] Dead Ends. Designers sometimes leave out an EXIT switch, which makes it hard to play a level in Deathmatch or as part of a larger, multi-level episode. Also, perhaps this is a stylistic argument, but at least be AWARE of which places (if any) have "no escape" for the unwary user who enters. Id's original levels do have a couple of these, but most users (actually, nearly ALL users) don't like them. ----------------------------- APPENDIX C: The Walk-Through ----------------------------- Included in this archive are two files you may find useful: WALKTHRU.WAD and WALKTHRU.TXT. WALKTHRU.TXT is simply a description and labeling of the various effects and errors, and where you'll find them, in WALKTHRU.WAD. Print out WALKTHRU.TXT and go through WALKTHRU.WAD while playing DOOM. That way, you'll be able to actually SEE what we've been talking about in this Handbook, and you'll be able to mess around with the various effects without worrying about whether you're screwing up YOUR level... You might even want to experiment with adding Things (monsters, weapons, etc.) to this level to get the "feel" of it. You can do whatever you want with this level, too -- if you want to build on it and improve it, go ahead. Heck, you can even take all the credit for it if you want! It's a play level for you, the novice WAD author, and it's yours with my compliments. Of course, I _do_ expect you to upload any levels you build... :) ---------------------- APPENDIX D: End notes ---------------------- Well, folks, that's it for release 1.0 of The Unofficial WAD Authors Handbook! If like what you've seen, drop me a line at: bill.mcclendon@creature.com Of course, if you hate what you've seen, I can still be reached there. :) If you have ANY comments, suggestions, additions, modifications, deletions, or whatever, let me know -- if I use it, YOUR name will be in the credits for the next release. Things I'd have liked to add, but didn't have the knowledge or expertise or experience (something I hope some of our readers will help me with): * More detailed intermediate tips, and more things to try. * Common errors, and how to fix them. * Questions and answers (like "How do I make this...?"). * A section of tips on making deathmatch levels. If you have any of these types of things that I could add to the next release, I'd be more than grateful to have them! Until next time -- good DOOMing!! -- Bill