_______________ _____ __ __ ______ __ __ ______ \ \/ ____| | | | / __ \| \ | | __ | | ,-------, | |__ | | | | | |__| | \ | | || | | | | | __|| | | | | ____ | \| | || | | | | | |___| |_| | | | | | |\ | ' /' | | ,| |______|\_____/ |__| |__|__| \__|___/' | | ,/ / | | ,/ /'----.------.---. .---. | | / /| __ | __ | `\ /' | Level Construction | `' /' | || | || | `\ /' | _ _ | /' | `' | `' | |\ `' /| | | `\_/' | | /' '\____/'\____/|___| `\__/' |___| |_|\_/|_| iNi-TuToRiAl | /' /' _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_ Legal Stuff: Any precise names, within this document, referring to a product or company (possibly) protected by copyrights and/or trademarks are hereby acknowledged: id Software DEU DoomEd Any other mentionings of copyrighted or trademarked material not listed above are also hereby acknowledged. Also, if you decide to extract any portion of this file for your own purposes *don't* attach my name to it. In other words, if you alter this text file, *you* are responsible, not me. This includes the deletion of this message! _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_ I. Getting Started A. What Editor to Choose? . . . . . . . . . . . . . 1 B. Understand the Editor . . . . . . . . . . . . . . 2 C. Understanding the Construction Features . . . . . 3 II. Building a New Level A. Inserting Vertices . . . . . . . . . . . . . . . 4 B. Inserting Linedefs . . . . . . . . . . . . . . . 4 C. Inserting a Sector and Automatic Sector Linking . 4 E. Understand the Flags . . . . . . . . . . . . . . 5 F. When to Choose Textures (Upper, Normal, Lower). . 5 III. Step-by-Step Tutorial A. Setting up the Level . . . . . . . . . . . . . . 6 IV. Starting Doom with a custom PWAD . . . . . . . . . . . 9 --,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--, _/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/ _________________ ________ | Getting Started | | Page 1 | |_________________| |________| What Editor to Choose? ---------------------- The choice of editor is primarily based upon the person wanting to create a new level; some prefer DoomEd while others prefer DEU. I will not go into great lengths about the features of all the editors; only DEU, since it seems to be sweeping across the world with great gusto. The following tutorial will instruct the user how to create a level with DEU, but, don't think that the same concepts cannot be applied to other editors. If, for instance, you would rather create a level quickly and be done with it, you may want to use DoomEd. Those people with the "down and dirty" type person- ality may enjoy DEU. For those who are new, DEU can be located at the follow- ing sites, and it may or may not be there! ocf.unt.edu /pub/doom/deu wuarchive.wustl.edu /pub/MSDOS_UPLOADS/games/doomstuff Name: DEU5BET4.ZIP or DEU5.ZIP or DEU50.ZIP If you are still unable to locate the file, you can contact me (the author) and I'll see if I can't locate the file for you. Cleary there are advantages to retrieving the newest release of any program, right? Well, you will have to decide this for yourself. Currently, DEU 5.0 BETA 4 provides a clean executing graphical user interface for con- structing Doom levels. The only catch lies within *how* the user must build his/her level. DEU 5.0 BETA 4 requires that *everything* in regards to vertices, linedefs, and sectors (explained below) be precise and in accor- dance with the reconstruction phase, often known as the compilation phase. Should you, the user, fail to abide by the strictness that BETA 4 requires, you can lose all of you *current* work. Fortunately, DEU, in the newer releases, will create a backup copy of your WAD file using the .BAK extension. Several people have had their masterpieces saved because of this handy feature. The newest version of DEU, version 5.0 non-BETA, will warn the user of possibly open-ended sectors, but, it will still compile the level. Once again there is a catch. DEU 5.0 (non-BETA) tends to add a slight clipping effect and therefore may produce undesirable results. It is up to you, the user, to decide which version or editor to use. The tutorial assumes that you have already obtained an editor capable of constructing a level from scratch. ________ | Page 2 | |________| Understanding the Editor ------------------------ Before you begin entering the world of Doom construction, you should first understand exactly what the editor is dealing with. As mentioned above, Doom uses vertices, linedefs, sectors, and the elusive "nodes" in order to construct an interactive world consisting of walls, ceilings, and floors. Of course, things, like weapons, add to the realism; however, they won't affect the outcome of compilation. So, let's dig deep! VERTICES: points on the map that designate the beginning and the ending of LINEDEFS. LINEDEFS: lines on the map (marked at the beginning and end with vertices) that eventually represent walls, walk-over triggers, windows, and much, much, more. SIDEDEFS: definitions attached to LINEDEFS requiring a reference to a SECTOR. A single SIDEDEF cannot exist without its respective LINEDEF. SIDEDEFS permit the user to define what their wall textures look like. There can only be two SIDEDEFS per LINEDEF and there must be at least one SIDEDEF for every LINEDEF. Furthermore, every SIDEDEF must be linked to an enclose region, called a SECTOR. When creating a new SIDEDEF, whether first or second, DEU automatically links the SIDEDEF to the newest SECTOR. If no SECTORS exist, then SIDEDEF is assigned the number -1. I have never left any SIDEDEFs assigned in this fashion and therefore do not know what will happen if they are left this way. SECTORS: An *enclosed* region that is bounded by a collection (at least, three) LINEDEFS. Say, for instance, you want to build a pillar, the surface of the pillar will be one enclosed SECTOR and so will the region of space surrounding the pillar. A SECTOR doesn't need to be referenced in order for Doom to operate, but, SECTORS referenced by SIDEDEFS must bound a region of space. I realize this definition is seriously lacking, and I apologize for this. NODES: Fortunately the editor takes care of this portion of the the level construction. NODES, if I my information is current, assist Doom in deciding what regions to render and how to render them. The editor, DEU, from a quick glance resembles a CAD program, but, the best part is that you get to interact with the world you create. If you do not have a mouse, you should get one. Also, if you have the newest of DEU, you may or may not want to use resolutions higher than 640x480 since DEU provides a "fake cursor" for editing, however, this cursor does not track when you are using some of the menus. Pressing the F1 key will bring up a list of commands, but, you should really be familiar with the editor before using the tutorial. In other words, print out the documentation file and keep a list of commands handy. ________ | Page 3 | |________| Understand the Construction Features ------------------------------------ DEU, like most editors, permits the user to add just about every single keyword defined above; with the exception of nodes. So, after reading the documentation file, you can obviously switch to the appropriate mode and insert that type of object. The DEU instruction manual explains just how to do this, but, in my step-by-step tutorial, I will instruct which keys to press. The same holds true for deleting these objects, whether you have selected a thing, a linedef, or a sector. These rules do not apply to sidedefs. Sidedefs can be added to linedefs by selecting the lindef, or a group of linedefs, and selecting the edit mode (middle mouse button or ENTER). Fortunately, DEU will not damage any of your work when you "group select" some objects on the screen. For instance, say that you already have two linedefs with sidedefs, but, you switch to vertex mode, insert a new vertex, click on two vertices, and add a new linedef. This new linedef won't have a sidedef defined, until you, the user, define the first sidedef. Like- wise, if a linedef doesn't have a first sidedef, adding a second sidedef will only result in adding a first sidedef. Just remember, first sidedef must always come first. Now, getting back on track. If you "group select" these three lines, which can be done by clicking the mouse on the line and repeating this process for every desired line, it should be obvious that one of the linedefs does not have a sidedef and therefore, any sidedef changes made to the other two linedefs will not affect this single linedef. Also, the reverse is true; if you group select some linedefs and accidently highlight a linedef with a sidedef, adding a second or first sidedef will not affect the linedef pending the respective sidedef already exists. Whew! Did I lose you? In summary, try to use the group select method whenever possible so as to save yourself time. DEU also has some neat features, like FLIP LINEDEF and a texture previewer. The flip linedef feature will be described below in the step-by- step tutorial. The texture previewer will activate everytime you decide to change a wall texture, ceiling texture, or floor texture. When you see the graphic appear on screen you might notice that the colors do not match with what you saw in Doom; that's okay, just bear in mind that everything tends to have an orangish hue when operating in VESA mode 0, standard VGA (640x480x16). Also, it only happens when the video mode switches to 320x200 for previewing in 256 colors. In my experiences, the higher VESA resolutions do not have this problem since the texture previewer displays in the current resolution. Since I haven't mention this, floor and ceiling textures require a sector to be defined, and, wall textures (upper, lower, normal) require a sidedef to be defined. The sidedef has the option for X and Y offsets, something which I will let you experiment with, permitting the you, the user, to align textures properly and keep those secret doors secret! --,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--, _/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/ ______________________ ________ | Building a New Level | | Page 4 | |______________________| |________| To begin with, type "DEU -v 0" at your command line prompt to enable VGA only graphics. I have discovered that the "fake cursor" mode available in DEU 5.0 (non-BETA) works nicely for experienced users, however, being able to see all the differently colored lines really assists in accelerating the editing process. So, for starters, start with the command information above and DEU should load and enter a text/prompt mode. From here, type "C 1 1" and ENTER to creative a new PWAD replacing Episode 1, Level 1. Don't panick, creating a new level will not overwrite your origial WAD file unless you decide to "save" over it. After this, you should enter a graphics mode. If you lack a mouse, or, you are using a graphical mode above 640x480 (DEU 5.0 non-BETA only) you should see a cursor looking like a big green "X". If you are stuck with keyboard only, use the arrow keys to navigate and press SPACE to toggle between small and large increments. By the way, if you are using mouse and want to permanently switch to keyboard for the session, press "K". In DEU 5.0 (non-BETA) this option has been removed. If you have a mouse and a mouse driver loaded (appropriately -- duh!) you should see a cute little arrow pointer. If your mouse supports three buttons then the middle button takes the place of ENTER; otherwise, for a two button mouse just press ENTER to enable edit mode. Clicking the left mouse button will select an object for grouping, whereas as just moving over the object will highlight the object (alone) for editing. To edit, just press the middle mouse button or ENTER. Granted, there is nothing to edit, but we'll fix that. You can use the right mouse button to move the object(s) around the screen. First of all, if you like, enable the grid mode by pressing "G" and select the grid that best fits your tastes. Also, use the "=" and "-" keys to zoom in and zoom out, respectively. I tend to use the tightest grid set- ting and zoom in all the way. You might as well do this now, just in case, since DEU 5.0 BETA 4 tends to have problems "snapping to the grid" at the looser grid settings. Also, my step-by-step procedure will use this setting. Inserting Vertices ------------------ For vertex mode, press "V", and if you forget, just press F1 for help. Now, move to an arbitrary point on the screen (not too far left or too far right) and press the "INS" key to insert a vertex. Since it takes to points to construct a segment (in mathematics) it should be obvious that we'll need another vertex. So, move somewhere close to the other vertex (but don't get too close) and poke "INS" again. Now, we are going to insert a LINEDEF. Inserting Linedefs ------------------ If you need to reconstruct a level manually, or, you just like to punish yourself during development, you can press "L" to enter LINEDEF mode. Once again, if you forget, just press F1 for the help screen. In this mode you can press "INS" and type the reference numbers of the vertices in the boxes provided. A linedef is construct from tail-to-head. Therefore, the first vertex you select will be the tail and the second will be the head. To make your life simpler, don't press "L", but, stay in VERTEX mode. Now, select the tail vertex and then select the head vertex by clicking the mouse button both times. Now, press "INS". Voila! You have just used one of DEU's most powerful features; automated mode switching. Next, assuming you had a group of lines selected, (but you don't have to do this to understand the concept) we are going to insert a SECTOR. Inserting a Sector and Automatic Sector Linking ----------------------------------------------- Once again, if you like punishing yourself, you can use the "S" key to enter SECTOR mode. As stated before, a sector must be an enclosed region of space, thus, Doom won't react properly if you goober and leave a sector open. To simulate the idea, we'll do something inappropriate and leave a sector open only to illustrate a particular function. If you have created four vertices and selected the vertices in a clockwise manner (I'll explain in the tutorial) and then created linedefs joining the vertices, you can group select the linedefs and poke "INS" to link the linedefs to an enclosed SECTOR. Currently, if you followed the directions above, you can also poke "INS", but, you will only have a sector linked to a single linedef. This shouldn't compile properly; so don't try it. Now you should understand the idea. When you poke "INS" while in LINEDEF mode, DEU automatically creates the first sidedef(s) if it doesn't exist and then links the sidedef(s) to the sector. You can now understand why you wouldn't want to handle the numbers manually, but, you can if you need to. method for inserting an unlinked sector is to switch to sector mode "S" and press "INS". You have now allocated a blank sector that won't affect anything if left alone, but, this can be useful if you wan't to link a second sidedef to a sector. DEU automatically links every new sidedef to the newest sector. So, it is advisable to use this to your advantage as well. ________ | Page 5 | |________| Understanding the Flags ----------------------- In DEU 5.0 (non-BETA) much of this process has been automated such that any two adjacent sectors sharing a single linedef (remember each linedef can have two sidedefs, one for either adjacent sector) will cause the linedef to automatically have one flag set and one flag cleared. By default, in DEU 5.0 BETA 4, every line had the "impassible" flag set; no others. In the new- est release, the automation will cause the "impassible" flag to be cleared and the "two-sided and shoot through" flag to be set. This is standard if you plan to have a trigger switch that the player needs to walk over. So, learn about the flags and below is a table which should describe what some of the flags will do and possible side effects. -------------------------------------------------------------------------- Impassible | For on sided walls; blocks sound, too? -------------------------------------------------------------------------- Monsters can't cross | Self-explatory --------------------------------------------------------------------------- Two-Sided/Shoot thru | The linedef has two sidedefs and can be shot through --------------------------------------------------------------------------- Upper tex. unpegged | For lowering floors, keeps door jam from animating --------------------------------------------------------------------------- Lower tex. unpegged | For doors & ceilings, keeps door jam from animating --------------------------------------------------------------------------- Secret | If crossed, credits player with secret? --------------------------------------------------------------------------- Blocks Sound | Prevents sound from crossing --------------------------------------------------------------------------- Invisible on Map | Make linedef invisible on map --------------------------------------------------------------------------- Already on Map | Pre-explored area? --------------------------------------------------------------------------- When to Choose Textures (Upper, Lower, Normal) ---------------------------------------------- For most general purposes, excluding doors, pillars, and some other oddities, you will only need to worry about normal textures. You can select the normal, upper, and lower textures after you have added at least the first sidedef to your linedef. WARNING: If you set up a linedef to be two-sided and shoot through, and you leave the impassible flag set, you will get the hall-of-mirrors side effect. Also, if you place a texture on both your first and second sidedef and then run Doom, you will see all kinds of black and colored dots in this particular region. Also, you will know this has happened if when you approach the area, facing the wall, your machine comes to a grindingly slow pace. In short, don't do it. Now, if you have three sectors like so, and the middle sector has _ _ _| | |_|_| | |_| a lower ceiling than the rest, and a higher floor than the other two sectors, you will get this type of perspective: The .'s and :'s represent the farthest distance. The !'s represent the middle sector's distance, and the #'s represent the closest distance. _/'###############################\ _/'~ # norm. ( upper tex. ) norm.# \ /'~ # tex. ################ tex. # \ # # ! : : ! # # \ # # ! :......: ! # # # # !' `! # # # # !,,,,,,,,,,! # # # #!____________!# # #_________Lower tex.__________# / | / | / | / Floor | / | Hopefully this will clarify any confusion regarding when a level requires an upper, lower, or middle texture. --,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--, _/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/ _______________________ ________ | Step-by-Step Tutorial | | Page 6 | |_______________________| |________| As describe in an earlier section, start DEU and type "C 1 1" and ENTER to edit Episode 1, Level 1. Like I mentioned before, no changes will be made to your original WAD file until you save. You will be given the opportunity to enter another filename such that DEU won't write over your original WAD file. For safety purposes, I recommend making your WAD file "read-only" using the following DOS command (do this before running DEU). ATTRIB +R DOOM.WAD If you are editing the ShareWare version you won't need to worry about this command line since DEU won't let you save anyway. After entering the editor, set the grid to the tightest resolution (smallest) and zoom in all the way. Now, choose an arbitrary point on the screen and insert sixteen vertices like below: x x x x 6 7 10 11 x x x x 5 8 9 12 4 1 16 x x x x 13 3 2 15 14 x x x x Next, connect the vertices in a clockwise fashion from vertex 1 to 2 to 3 to 4 to 5 to 6 to 7 to 8 and press "INS" twice. At this point, you have created linedefs linked in the shape of the letter "C". At the same time you have established a sector linked to the first sidedef (inserted and linked automatically by DEU) of each new linedef. Now, we need to seal off the sector. To accomplish this, switch back to vertex mode by pressing "V" and connect the vertices 1 to 8, re- spectively. Press "INS" to create a linedef between the two vertices. Notice that I have intentionally set up this linedef such that the first sidedef (represented by the perpendicular line, also the right hand side of the arrow) is facing on the wrong side for us to simply add a first sidedef and utilize DEU's autolinking capability. To resolve our situation, we need to flip the linedef. If you are using DEU 5.0 BETA 4 you can flip the linedef by entering the edit mode (middle mouse button or ENTER). The flip linedef function will appear at the bottom of the "edit linedef" menu. So, choose option "1" from the edit menu and then select "flip linedef" from the next menu. If you are using DEU 5.0 (non-BETA) press F10 and then select option 5 from the pop-up menu. If the process carries through properly, you should now see the perpendicular line on the inside. From here, select the linedef, if it isn't already, and edit the linedef. At the pop-up menu, select the "edit 1st sidedef" and click on "change sector ref." Enter the number "0" and press ENTER. You screen should now have output resembling the following diagram: x----------x x x / 6 7 \ 10 11 / \ / \ x 5 8 x x 9 12 x | | | | | | | | | 1 | x 4 x x 16 13 x \ / \ / \ 3 2 / 15 14 x----------x x x ________ | Page 7 | |________| With one sector defined, we should move onto another region that will simplify the development process. Arranging the middle region, what soon will become a door, immediately is something that I do not suggest. Instead, change back to vertex mode and, like before, move around in a clockwise direction from vertex 9 to vertex 16. Briefly, 9 to 10 to 11 to 12 to 13 to 14 to 15 to 16 and then poke "INS" twice. Your output should look something like (excluding the numbers): x----------x x-----------x / 6 7 \ / 10 11 \ / \ / \ / \ / \ x 5 8 x x 9 12 x | | | | | | | | | | | | | 1 | | x 4 x x 16 13 x \ / \ / \ / \ / \ 3 2 / \ 15 14 / x----------x x-----------x Next, change back to vertex mode by pressing "V" and create a linedef by selecting vertex 16 and then vertex 9, in that order. Now, poke "INS" only once. Then, edit the linedef, by pressing ENTER or clicking the middle mouse button, and select "add 1st sidedef." You have now used DEU's auto- linking capability to add that linedef to the newest sector. It just so happens that our newest sector is then one we needed to establish a link with. With out diagram resembling the following: x----------x x-----------x / 6 7 \ / 10 11 \ / \ / \ / \ / \ x 5 8 x x 9 12 x | | | | | | | | | | | | | | | | | 1 | | | x 4 x x 16 13 x \ / \ / \ / \ / \ 3 2 / \ 15 14 / x----------x x-----------x ________ | Page 8 | |________| it is now time to add our last sector. Switch to vertex mode, select vertex 8 and then 9; finish the process by pressing "INS" once. Do the same for vertices 16 and 1, respectively. First vertex 16, then vertex 1. Finish the process by pressing "INS" once. Now, you should theoretically be in linedef mode, but, if you are not, press "L" to switch to linedef mode. Group select the linedef between vertices 8 and 9, as well as, the linedef between vertices 16 and 1. Remember, to group select, simply mark the item with the first mouse button or "M" and then move to the next target, and mark it as well. Now, go to edit mode and select "add 1st sidedef." As of this point in time your level is complete. You can safely press "Q", type in a filename, and save your progress. If you choose you may do so, but, you will need the following two commands to enter the editor with the current level: r filename.wad e 1 1 If you feel strong and capable, you may continue with the tutorial without saving. NOTE: Do not perform the following if you are using DEU 5.0 (non-BETA) This is only for use with DEU 5.0 BETA 4. Next, select the linedefs between vertices 1,8 and vertices 9,16. Then, edit the linedefs and select "change flags" and then click on "impassible." Now, repeat the process and click on "two sided and shoot through." You have now established the linedefs joining the sectors as transition regions capable of permitting the player's passage. The linedefs, in sector mode, should appear gray when they are no longer "impassible." Furthermore, keeping the linedefs highlighted, edit the linedefs and select "edit 1st sidedef." Change the normal texture to "-" and repeat this process for the next the second sidedef as well. As of this point, change to thing mode and in a "player 1 start" somewhere with the sectors. Press "Q" to quit, type in a filename or accept the current pathname, and press ENTER. Now that you have come this far, it's time to test the level. Use the command line in the next section to start Doom and load your WAD file. --,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--, _/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/ __________________________________ ________ | Starting Doom with a custom PWAD | | Page 9 | |__________________________________| |________| Finally, to start Doom with your custom WAD file and warp directly to the level, type the following: DOOM -FILE YOURNAME.WAD -DEVPARM -WART episode_number level_number Enjoy the new level and experiment like crazy! --,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--, _/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/._/ __________________________________ | Information regarding the author | |__________________________________| Name: Michael Kelsey E-mail address: mkelsey@eecs.wsu.edu Favorite Actor: Harrison Ford Favorite Music Group: Alan Parsons Project Hours spent learning DEU: WAY TOO MANY IBM games cracked: D/Generation PC System: 80486DX2/66 EISA-VLB Cirrus Logic CL-GD5424 8 Mb. RAM Zoom VFX V.32 External Modem Apple II Joystick rewired PC ...and it all works fine with Doom.