DEU for IDIOTS--A Beginner's Guide to Creating New Doom Levels--PART 1 Credits: Written by: Greg Cymbalist Thanks to: Chris Durston, for helping me figure out DEU in the beginning. DEU was created by: Ralph Quintet and The Doom Editing FAQ was written by: Tom Neff DOOM was created by, and is a trademark of: id Software This tutorial is for beginners who want to create new levels for DOOM, using the powerful editing utility, DEU (Doom Editing Utility). The directions in this tutorial apply to DEU version 5.21...older versions will be missing some features. Following are (hopefully) easy to understand directions for creating basic Doom levels. Part 2 of the tutorial will introduce more advanced design features such as teleporters, moving floors, etc. If you have already used DEU successfully and are instead seeking answers to only a few editing questions, you would be better off not reading any further-- instead, look for the Doom Editing FAQ, by Tom Neff. It contains answers to the most common problems encountered when creating levels. DISCLAIMER--Please note that I was attempting to create a tutorial that would be as easy to follow as possible...my intent is *not* to make people feel like "idiots", but rather to give everyone a chance to make new levels. As you read this tutorial, remember that what is obvious to one person will not necessarily be obvious to another; therefore some of the explantions may seem oversimplified and somewhat wordy. I am not responsible for anything bad that happens as a result of your reading this tutorial. Unless you have an exceptional memory, you will benefit most from this tutorial by printing a hard copy of the entire file and reading it while working with DEU. If you have any questions regarding this material, DO NOT hesitate to ask. Send e-mail queries to email@example.com or firstname.lastname@example.org. Alternatively, post an article in alt.games.doom with "DEU for idiots" as the subject line. I am not going to explain how to get DEU to run, how to install it, etc. I assume that users have gotten it to run, but need help understanding and using the program. If you do need help getting DEU to run satisfactorily, send e-mail, but only as a last resort, please. And so it begins... Fire up DEU by typing "DEU" at the Dos prompt. The main menu give you the [? for help]> prompt. If you want, you can type ? and see all the available options. The one you're most interested in now is "Create a new level". Type c and hit ENTER. Now, you'll have to pick an episode and mission number. Use the up and down cursor keys, then hit ENTER. What difference does it make what episode/mission I pick? Very little really. If you pick E1M1, then you'll hear that music when playing your custom level, and that's the only level that will be modified when your PWAD is loaded. For simplicity's sake, pick E2M1 (id doesn't like it if you make wad files that work with the shareware version of Doom, so we won't use E1M1). Looking around the screen... At the bottom of the screen, you should see the info bar, which shows what mode you're in, and scale and grid settings, among other things. If you don't see it, press i which toggles it off and on. Press 2 to zoom the map in to a comfortable distance (1-0 zoom the map in and out; also you can use the + or - keys). Next, press g to get a nicely sized grid--press it several times until the grid setting shows 16 or so. Pressing g makes the grid smaller, while pressing SHIFT-g will make it larger. Notice also in bottom left--the info box (or at least that's what I'm calling it). It becomes important later.. First you need vertices... What are vertices? End points of linedefs...you could call them corners, but that's not always accurate. To make a square room, you'll need at least four; for a round (or whatever) room, you'll need more.. For now, just make a square room with four vertices (one in each corner). Umm...how do I insert stuff? First, get into vertices mode. Press v, that is. Now, move the mouse cursor where you want a vertice to appear, then press INSERT key. A green x appears, that's a vertice. Now put down three more, to make the corners of a rectangle. Also, when you want to remove something, use the DELETE key. Why does one vertice always have that yellow box around it? That's the selected vertice...move the cursor to a diferent vertice, and the box moves too. This room is too big (or too small) ..can I change it? Select the vertice you want to move, then hold down the right mouse button (RMB) and drag the vertice..this works with anything in DEU...things, sectors, linedefs... Wait, what are all those things? Don't worry about it just yet. Suppose I want to save time by moving two or more vertices together? Select one, then click the left mouse button (LMB). The box turns red. Select another one, click again. Notice the "marked" vertices have green boxes around them. Put the cursor on one of the marked vertices..when you drag the mouse with the RMB, both vertices move together.. Okay got it...suppose I had a *lot* of stuff to mark? Hold down the SHIFT key, drag the LMB..this give you a selection rectangle. Surround the desired objects with it, then release...all objects in the rectangle are marked.. Press c to clear all the marks. The vertices by themselves are pretty useless, so they have to be connected with linedefinitions... What're linedefs? Usually, a linedef is a wall..but not always! First, mark the vertices. Strangely enough, it makes a difference what order you mark them in. You should mark them in a "clockwise" order--start with the top left, then the top right, bottom right, etc. When all four vertices are marked, press INSERT. What happened? You inserted linedefs..DEU automatically switches to linedef mode. Now you should have a box with three sides... What about the 4th side? Shouldn't this room be closed? Yes, it should. Hit v again to see the vertices. Mark the two that don't have a line between them and press INSERT again. Now you should have a room with 4 vertices and 4 lines connecting them. Why did it matter what order I selected them in? I'm not superstitious... Well...if you select them in "clockwise" order, the 1st sidedefinitions are all facing in. You lost me... Each linedef can have 1 or 2 sidedefs. The ones you made have just 1, and you need them to face in. The first sidedef is the one marked with the perpendicular line. Hey! Some of them aren't facing in... If this happens, mark the ones that aren't facing in, then press F8. From the menu, click "Flip Linedef" or press 6. This should fix it. Am I done yet? No, you need a sector.. Why? Sectors control ceiling/floor heights, light levels and other fun things. Also, Doom will crash if you don't have properly laid out sectors... Darn, I guess I do need one.. Hit l to see the linedefs again. Mark them all and hit INSERT. As you may have guessed, this puts in a sector and switches to sectors mode. Okay...I don't see the point..Do I only need one? No. Doom will crash if there's only one sector ( I don't know why). Is there something missing? You need a place for the player to start. Go into things mode by pressing t. Just what do you mean by things, anyway? Monsters, weapons, ammo, decorations, player start locations, to name a few, are all things. For now, put the cursor where you want the player to start and prss INSERT. A circle is inserted; that's a thing. Take a look at it..is it green? Does the info box say "Player one start" when you select it? No, actually, it gave me a trooper (or imp, or whatever). Make sure the thing is selected, then press ENTER. If you have a 3 button mouse, click the middle button. From this menu, choose "change type". Choose the first item, "player start locations", then pick "player 1 start". Suppose I put in 2 player 1 start locations? Then you'll have 2 player 1s. Not something you normally want, but you can try it later if you get bored. Notice the little arrow sticking out of the circle--that shows you which way the thing is facing. You can change it easily by pressing ENTER a second time, except this time pick "angle" from the menu. You can choose from eight directions for your objects to face, north, north-east, etc. Note that for many items (ammo, weapons, etc.) it doesn't matter what direction they face, though for players (and monsters!) it can make a big difference. By the way, it's a good idea to make sure the player starts *inside* the room you just made--it would look pretty ugly otherwise. Hmmm..it's kinda cramped in there... Since each thing is represented by a circle, the diameter of the circle gives you a rough idea of how big the object is...If the Player 1 Start is touching any of the walls, you won't be able to move. Make the room big enough to move around in a bit; if it's too small, drag the vertices or linedefs around; you can also drag the start location in the same way. Don't forget, if you want to see the vertices or linedefs, you'll have to press v or l first. Now you should be ready to try it out... But wait! I wanted my room to have moving platforms, flashing lights, and a dozen barons of hell... Sorry, you'll have to wait a bit. For now, press q to quit and save the level. If DEU complains about missing multiplayer locations, just press any key to ignore it. You'll have to type in a name for the level...DEU will suggest "E2M1", but you'll probably want something more meaningful--like the name of your dog. Just make sure it's not more than 8 letters and ends with .WAD . When DEU asks if you want to rebuild the nodes, press y . To try it out, copy the wad file to your doom directory, then load Doom by typing "Doom -file [name of wadfile]" . However, don't try it out just yet...we'll do some more first. Load up DEU again. From the main menu, type "r [name of wadfile] ". Then type "e 2 1" to get back to the level you were editing. Now that you've learned the hard way, you can learn the easy way. Move the cursor north of the room you just made, then press F9. This will insert a pre- made object, either rectangular or polygonal (more than 4 sides). Choose rectangle. You can type in a number for the height and width, but for now just use the default by pressing ENTER. Now let's look at the sectors...hit s. You mean there's more than one sector now? Exactly. Each room is a separate sector. Now we need a door to connect them. Does the door have to be a separate sector too? Yes. Drag the top sector so that there's enough space between it and the bottom sector for a door. We need to put 3 thin sectors between the two rooms. Huh? You just said the door would be a separate sector...why do I need 3 of them between the two rooms? Although you only *need* one, it looks much better if you have 3--an extra one on either side of the door. The extra sectors act like a tiny "foyer". Otherwise, the door and the room would be sharing the same wall, which looks...strange. Okay, I assume you know what you're doing... Mark the bottom linedef of the top room, and the top linedef of the bottom room. Press F8 from the menu and select 3--"split linedef and add new vertice". Do this twice, so that each linedef has 2 new vertices. Move the two vertices so that they're in the middle of the linedefs, and far enough apart so that the player can get through (check the size of the player start again, if you're not sure). Line up the vertices vertically. Connect them with linedefs so that you get a small "hallway" connecting the 2 rooms. It should look something like this: X--------------------X | | | | X-------X-----X------X | | | | X-------X-----X------X | | | | | | X--------------------X Of course, the size of the two rooms doesn't really matter. The hallway should be a bit wider than the player. Go into sectors mode now.. (s) Hey...the two lines I just added are red. Is that bad? Sort of. They're red because they don't belong to any sector. Look at linedef mode...select one of the linedefs and look at the info boxes...notice how it doesn't have a 1st sidedefinition? Doom will crash if a line doesn't have a 1st sidedef. So what is this connection between sectors and sidedefs? Each sidedef must be assigned to a sector... So if a linedef has 2 sidedefs, it belongs to 2 sectors? Yes. Why would I want a linedef to have 2 sidedefs? So you can walk across it, shoot through it or look through it. 2-sided linedefs are important when you want to make stairs, windows, doors, etc. But if you want a "solid" wall that stretches from floor to ceiling, it MUST have only ONE sidedef. If linedefs start out with no sidedefs, how do they go from being no-sided to one-sided to two-sided? When you mark a linedef(s) and press INSERT, a new sector is created, a sidedef is added to the linedef(s), and the sidedef(s) are attached to the new sector. Okay...so a linedef can have 2 sidedefs. Suppose I mark a 2-sided linedef and try to add a sector? You'll get an error message--each linedef can only have 2 sidedefs, and only belong to two sectors. Can both sidedefs belong to the *same* sector? Yes, but usually you won't want this...it's quite rare. What does all this have to do with the doorway? Mark the 2 linedefs that form the sides of the hallway, then the ones at the ends of the hallway (the ones that already have one sidedef). When you press INSERT, the hallway becomes a new sector. Okay..but we needed three sectors.. To make things easy on ourselves, we'll split the sector you just made. Mark the two sides of the hallway, then press F8. This time, press 4 (split linedef and sector). Do this twice. Now you should hae 3 sectors. If you like, you can move the linedefs around to make the sectors more equally shaped. Now look at the middlet sector (soon to be a door). Use lindefs mode. The 2-sided linedefs should have their first sidedefs facing out. This is just a good rule of thumb. Now, the key to making good looking doors is having the sectors the right heights. I have to edit sectors, now, you mean? Yes. Hit s. Compared to the linedefs, sectors are relatively simple things. Select a sector and press ENTER. Notice the options you can change: floor and ceiling heights, floor and ceiling textures, light levels, and others. Hey...it would be cool to have a dark room... To change the light levels, select or mark the sector(s) you want to change; press ENTER. Pick 5, "light level", and type in a number from 255 (bright, sunny day) to 0 (pitch black). Note, however, that even a setting of 100 is "dark". For now, don't make the lights darker than 150 or so, or else it'll be hard to see what's going on. Can I change the ceiling/floor heights the same way? Basically. But note that the value can range from 1112 to -1112. Wow! You could make this really, really, deep pit... Well...not really. If a sector is more than X units tall, DEU (not to mention Doom) will get upset. And if a sector is more than 559 units tall, you'll get the "flash of black", an annoying visual "bug". Remember, the height of the ceiling isn't necessarily the total height of the sector..for example, if the ceiling is 80 and the floor is -20, the sector height is 100 units tall... Hey, I'm not stupid, y'know... It might seem obvious, but it's easy to forget when you start making floors go below 0. You should also know that if a sector is less than 56 units tall, it'll be too short for the player to ENTER. And if (for some bizarre reason) the ceiling is lower than the floor, Doom will crash! Yeah, I'll try to remember...So what heights should I use? For the two big rooms, it doesn't matter. for the 2 "foyer" sectors, a ceiling height of 72 will give you a nice looking door. However, for the door sector, make the ceiling height the same as the floor height - 0. Umm...isn't that a dumb thing to do? How can you walk through if the ceiling is touching the floor? Remember, the door starts out closed. When you "open" it, the "ceiling" rises and you can walk through... Oh, okay. Now let's take a good look at those 2-sided linedefs. Notice how the words "upper texture" are in red in the info box... Yeah, I noticed that...is it bad? DEU is trying to tell you that the sidedef is missing an upper texture...When one sector has a lower ceiling than the adjacent sector, it creates a gap on the upper part of the wall. Doom needs something to fill in the space, or the dreaded "Hall of Mirror" effect occurs. I guess you better explain that HOM thing now, since everyone's always talking about it. When Doom doesn't know what texture to put on a sidedef, it inserts some random stuff to fill in the space. This sort of looks like a hall of mirrors. So a HOM effect usually means there's a missing texture. DEU will *usually* point this out by putting the text in red. So what the heck are textures, and how do I change them? Textures are the graphics on the walls, ceilings and floors. It just sounds cool. To change or insert one, look at the linedefs (l). Select one that's missing it's upper texture. Press ENTER. Notice you can edit the first sidedef, the second sidedef, or the linedef itself. Choose the sidedef that's missing a texture. Choose "edit upper texture". DEU switches to a window that shows the current texture (none, at the moment). Scroll through the list with the cursor keys, or with PAGEUP and PAGEDOWN keys. The HOME and END keys will also work. Notice, even though the mouse cursor is still there, it isn't active for selecting textures (this is just to mislead you). After editing for awhile, you'll probably memorize the names of your favorite textures, so you can just type in the name, instead of scrolling through the list. If you don't want a texture in a particular place, type in a - instead of a texture name. When you find a suitable texture (you might want it to match the adjacent walls), press ENTER to go back to the editor. I notice the 2-sided linedefs seem to need upper and lower textures, while the 1-sided linedefs need normal textures...if I put a normal texture on a 2-sided linedef, does that give me a wall that I can walk and shoot through, but not see through? ...Maybe. The trick is finding the right texture. Some of the textures are unsuitable for this. If you pick a "wrong" one, you'll know right away... Doom will slow down to a crawl, and the linedef will have graphic garbage where the texture should be. How do I know the right ones, then? Check the DoomEditing FAQ...it has a complete explanation of this phenomenon. Notice that on some 2-sided linedefs, either "upper" or "lower" texture will be "greyed" out. This *usually* means that, even if you do put a texture there, it won't be visible to the player (in other words, don't bother with it). Note, however, that moving floors and ceilings can change all this... About doors and textures... X--------------------X | | | | X-------X-----X------X | A | X-----X |B 1 B| X-----X | A | X-------X-----X------X | | | | | | X--------------------X In this diagram, the door sector (1) needs upper textures on the two outward -facing sidedefs (marked with an A). Why upper textures? Why not normal or lower? The door linedefs are 2-sided, and the floor is touching the ceiling.. Therefore, what the player is going to be seeing is the upper part of the sidedef. You will probably want to use something that looks like a door... "BIGDOORwhatever" for example. Next, you need textures for the door frame.. ..sidedefs B in the diagram. My favorite for this is DOORSTOP..it looks quite nice. Also, you may want to change the ceiling texture in sector 1 so that it looks like the bottom of the door... Is changing ceiling textures the same as changing floor textures? Yes, except you go into sectors mode first, select the sector(s) you want to change, hit ENTER, then pick "edit ceiling" (or floor) texture. This will bring up a window similar to the wall texture window; it works the same way. Is that all there is to the door then? Not quite. You have to change the linedef types so that it will behave like a door when the player tries to open it. Mark the two door linedefs. Press ENTER, but this time, from the menu, pick "edit linedef". Now, pick "change type", then "Doors..." (obviously). You can see there are many types of doors to pick from--for now, choose the first one which will give you a "normal" door. You can experiment with the other types later, but here's a clue: "D" stands for door and "R" means it works repeatedly. "1" means it will only work once. If I only change the type of one linedef, would that mean the door only opens from one side? Yes. The other side (the "normal" side) won't open. One last point to make the door look better--each linedef has "flags"; that is, attributes that are toggled either on or off. For the two sides of the door (the ones with the DOORSTOP texture), the linedefs should have the flag "Lo"--lower texture is "unpegged". This will keep the sides of the door from moving up along with the front and back. To change the flags, just mark the appropriate linedefs, press ENTER, select "edit linedef", then "change flags". Select any of the flags will toggle it either on or off. Notice that the flags that are turned on are marked with a diamond symbol. I suppose there was an easier way to do all of this, too? Yes. To make a door the easy way, just select the sector you want to change to a door, then press F8. Choose "make door from sector". This will do most of the work for you; all you have to do is pick the textures you prefer. Gee, I could have saved a lot of time just doing that... Yes, but then you would still be looking at the door saying "Gee, how did they do that?" You wouldn't have learned anything. Should I try it and see if it works? Sure, go ahead. See how the door turns out...of course, save it, and rebuild the nodes.. Is there any reason why I *wouldn't* want to rebuild the nodes? Not really. If your level is real big (100K+), it may take awhile. If you just want to save the level, without trying it out right away, just save it and press any key (except y!) to skip the node building...however, you must rebuild the nodes before you try to run it. Note that you can edit textures, ceiling/floor heights and objects without having to rebuild the nodes. Hey, I tried my level and the door looks weird...the texture goes across twice (or it gets cut off on one side). The problem is, your door is bigger (or smaller) than the "door" texture is. Here we enter the hideous world of texture alignment, but for now, I'll keep it simple...the best thing to do is just make your door the same size as the texture. Sounds good...but how do I know when it's the right size? Look at the door linedefs...in the info box, there's a number which give you the length (in those mysterious Doom units). Now edit the texture...for each texture, DEU gives the size: height and width. Alternatively, set the grid to the smallest setting ( Grid: 8 ). At this setting, each square is 8 units across. As for the height of the door--that's determined by the height of those two "foyer" sectors...if you didn't have them, the door would go right up to the ceiling. Remember that the door sector itself has ceiling height 0. So make the two "foyer" sectors the same height as the door texture and it should look okay. Now that you know doors, let's try something else...a raised platform in the middle of the room...put the cursor in the middle of the room, hit F9. Insert a small, rectangular room. You should have some- thing like this: X--------------------X | | | | X-------X-----X------X | A | X-----X |B 1 B| X-----X | A | X-------X-----X------X | | | X------X | | | | | | | C | | | X------X | | | X--------------------X In sector C, all the linedefs should have the first sidedef pointing in. But you want to be able to walk on top of this platform... So the linedefs need two sides, right? Yep. For now, they have one. Mark them all, and hit ENTER. Now, pick the third option, "add a second sidedef". Okay...but if I add sidedefs this way...which sector do the new sidedefs belong to? DEU picks one at random and assigns them to it. Well...no, actually it doesn't...but it might as well, since it probably won't assign them to the right one. So how do I change it? Here's the situation right now: (door up here) X-------X-----X-------X | 1 1 1 | | | | 1 | | X-------X | | | 2 | | | 1 1 |2 2| 1 1 | | | 2 | | | X-------X | | 1 | | 1 | X---------------------X The numbers in the diagram are "sector references". Notice how those 2-sided linedefs have one sidedef belonging to sector 2 and the other belonging to sector 1. The one-sided linedefs just have one. The trick is, if DEU gets the sector references wrong, you can manually edit them yourself. I'd really rather not... Get used to it now--when you start making more complicated areas, DEU can't be depended on to get the sector refs right. So for now, mark those 4 linedefs you just inserted, then edit the second sidedef (the one you just added). Now go to "edit sector reference". Change it to the number of the sector it should be (probably sector 0, since it was the first sector you made). To find out for sure, check one of those one-sided linedefs. The sector reference appears in the info box (there's an info box for each sidedef, as well as for the linedef itself). Notice that DEU warns you that changing these numbers might crash the game; that's true, it will--if you don't know what you're doing (DEU assumes that you don't) but at this point, you do. Sure hope so. So we're raising this platform? Yeah, shouldn't be a problem. Make the floor height of the inner sector a bit more than the outside one...but not too high...if it's more than 25 units tall, the player won't be able to walk on top of it. Remember this when you start making stairs. So if this sector is higher than the outside one, we need lower textures? You got it. Notice that those newest linedefs already say "lower texture" in red text on the second sidedef. Stick in some textures. You could also make this sector brighter (so you can see that nice shiny shotgun when you put it there later). Maybe even make the ceiling texture one of those "t_lite" things. Okay, enough with the boring stuff--how do I make stairs? Well, you just made a "stair". To make a complete set, just make several sectors which are adjacent...as in this diagram... X------X---------------X | 5 | 1 | |5 5|1 | | 5 | | X------X | | 4 | | |4 4|1 | | 4 | | X------X | | 3 | | |3 3|1 | | 3 | | X------X 1 | | 2 | | |2 2|1 | | 2 | | X------X | | 1 | |1 | | 1 | X----------------------X A few important points: each step has to be a separate sector; the linedefs you want the player to walk across have 2 sidedefs, the others have 1. Finally, the sector references are shown with numbers. If sector 1 has floor height of 0, sector 2 should have 15, 3 should have 30, and so on (increments of 15 create the best-looking stairs, though they can be as "steep" as 25). And don't forget lower textures on all the 2-sided linedefs...finally, make sure there are no NORMAL textures on the 2-sided linedefs. Usually, DEU takes them out automatically, but you can never be sure. And the easy way....? Well...stairs always take a bit of work, but DEU has one feature to help... Create your steps as above, but don't worry about the floor heights. Now set the "top" stair to whatever height you want (60, in the example above) and the "bottom" stair to whatever height (15, for example). Now, mark them all IN ORDER (bottom step to top step). Finally, select "distribute sector floor heights" from the menu (press F8 first). This saves a bit of time, rather than setting them individually. Note also you can do the same thing with sector ceiling heights. Great....now I wanna make an elevator! Elevators (or lifts, more commonly) will have to wait till next time, for the full story. For now, use the easy way...pick a sector, and choose "make lift from sector" from the F8 menu. Okay...I can't wait to hear the hard way... One last important point. Pressing F10 gives you the "checks" menu--DEU can check for missing textures, cross references, etc. It's a good idea to run these before rebuilding the nodes and trying out your level. Most should be fairly straightforward. So that's it for Part 1 of DEU for Idiots. Part 2 will explain the idiosyncrasies of sector and linedef tags, moving floors, teleporters, etc. Wait, wait...I didn't understand any of this! Remember, specific questions will be answered if you dial 1-800-DEU-IDIOT... I mean, send your e-mail queries to email@example.com or umwickbe@ cc.umanitoba.ca...A Doom counselor will be happy to answer your questions! If you get _really_ desperate, zip and uuencode your PWAD file and mail it to me, alone with your query--however, PLEASE do not send PWADS larger than 100K or so. Thanks for reading this tutorial--any non-query comments can also be sent to the above addresses. Looking forward to hearing about your success!