This guide is intended for beginners who don’t know much about Doom editing. We are going to start slow to understand the interface and controls of Doom Builder and also the basics of what makes a Doom map.
Don’t get discouraged if using Doom Builder seems hard! It takes practice to make levels quickly and efficiently. I had a very hard time when I first used Doom Builder but I sat down, read the original How To PDFs, and analyzed my favorite levels to see how they did things that I thought were interesting.
The Interface
When you first open Doom Builder, you a greeted with a black void with a grid. There are lots of buttons along the sides and some information on the bottom panel. There is also an orange crosshair. The crosshair just shows where 0, 0 on the grid is at. The coordinates on the map don’t really matter or effect anything besides how the data is stored for GZDoom to understand when you’re playing it.
The most important part of this interface is THE SAVE BUTTON. Please get into a habit of saving your levels often!!! It’s rare, but sometimes Doom Builder crashes. Protip: name the files of your .WADs with the date you started making it. This helps when you wonder “hmm… where did that one cool map I made go…”, which is a real question I ask myself pretty frequently.
On the left side are the most important buttons: the mode buttons.
- Vertices Mode: Lets you create, select, and move vertices.
- Linedef Mode: Lets you create, select, edit, and move vertices.
- Sector Mode: Lets you create, select, edit, and move sectors.
- Things Mode: Lets you create, select, edit, and move things.
Now let’s define what each of these pieces are.
Vertices, just like in geometry, are points on the map that separate linedefs (the lines in Doom). They are only useful if used in conjunction with linedefs and sectors. They have no bearing on the level if they are in the grid otherwise. The vertices in the middle of the sector below will do nothing while the ones on the four corners of the sector give the sector its shape.
Linedefs are the lines in Doom. They can be walls, tripwires, switches, invisible barriers, mirrors, horizons, and more. In the screenshot below, the four linedefs combined with the four vertices create a square sector. In this case, these linedefs are walls. You can tell if a linedef is an outside wall by the thick white representation.
Linedefs can have up to 6 textures assigned to it, 3 on each side. It depends on the surrounding sectors if and where they are rendered.
Sectors are the different shapes on a doom map. They can be floors, platforms, lifts, doors, windows, pillars, and more. They are made up of 3 or more vertices and 3 or more linedefs. Each sector has a floor texture, a ceiling texture, a floor height, and a ceiling height.
Things are all the predefined obstacles, items, players, demons, weapons, and more in Doom. In order to play your map, you at least need a Player 1 start thing on the map.
Drawing Your First Sector
To draw your first sector you can select “Draw Lines Mode” on the left toolbar or if you followed the previous guide, press the ALT key.
Once you press ALT, you should see an orange vertice following your mouse cursor and snapping to the grid. Now, each time you left click, you’ll drop a vertice and a new vertice will appear beneath your mouse. A linedef will stretch between the two vertices. This allows you to position your new linedefs. Ultimately, you’ll want to create a closed shape by ending your drawing where you started it.
Great! 🙂 Notice how you see a floor texture when you finished your sector. You can adjust this setting on the top toolbar with these buttons:
Now lets place a Player 1 start thing. Select Things Mode and right-click somewhere on the grid. You will drop a thing and it will automatically open the Edit Thing properties dialogue. Player 1 start is the default thing. You can edit angle the player will initially face when the map starts with the Angle dial.
Go ahead and save your map and run it in GZDoom for the first time. The Test Map button is on the top toolbar on the far right.
We should see a simple 256px x 256px map with the default textures and the default sector height of 128px.
If you haven’t noticed yet, Doom’s grid is in multiples of 2 (1, 2, 4, 8, 16, 32, 64, 128, 256, 512, etc). Textures usually have dimensions like 64px or 128px.
Our room is honestly a little cramped. While Doom does have some claustrophobic spaces, lets widen our existing sector. Enter Linedef Mode and left click one of the linedefs to select it. From here, you can right click and drag the lindef to move it around.
I settled with changing the sector to 512px by 512px. Let’s check it out in Visual Mode! Press Q or click the GZDB Visual Mode icon on the left toolbar. You can use the ESDF keys like WASD movement keys.
You can exit Visual Mode by pressing Q again.
Enter Linedef Mode and lets right click one of the wall linedefs and inspect what properties we can set.
- Properties Tab
- Flags: these are the flags you can assign to linedefs. This wall is Impassable because nothing can go through it
- Settings: this affects rendering and locks
- Action: we can set one action to each linedef. You can peak through the list of actions if you’d like!
- Activation: set what triggers the Action we assign to this linedef
- Identification: the tags for this linedef if we want to reference it somewhere else
- Front/Back Tabs
- Here we can set the textures for the linedef and their offsets. Everything is pretty self-explanatory
Let’s change the wall textures to something a little more appealing. Select all four linedefs by clicking and dragging a selection rectangle around them until they are all red and have orange numbers beside them.
Now right click on top of one of the selected linedefs and you’ll be able to mass edit all the linedef textures. Click on the STARTAN2 picture to change it to another texture using the Browse texture window. In the right toolbar, you’ll see some categories of textures. Go ahead and select the one that says [TEXTURE1]. This will display all the available textures.
Lets select something like BROWN96.
Now let’s change the floor and ceiling textures too. Enter Sector Mode and right click on the main sector.
You’ll see lots of properties we can modify. Floor/Ceiling height are important. Brightness is also commonly used. Tags allow us to reference this sector from somewhere else. We will go over these in depth later. Go to the Surfaces tab.
Most of the properties here are for advanced users. Let’s just focus on the Ceiling and Floor textures. Similar to linedefs, click on the picture of the textures (textures used on ceilings and floors are called Flats) and browse to a texture of your liking. Normally, Doom only allows you use Textures on walls and Flats on floors/ceilings. GZDoom removes that limitation, but let’s just stick with Flats by selecting [Flats]. Let’s go with FLOOR4_8 for the floor texture and CEIL5_2 for the ceiling texture.
Now we have something a little better looking.
A Second Sector (with Sky!)
Let’s try adding another sector in the middle of our main sector. Draw another sector the same way as we did before.
Lets change this sector’s floor texture to something else like FLAT14.
Let’s add some height variation in our map by lowering this sector’s floor by 16px making it -16px overall. One of John Romero’s level design rules is to always change sector height when changing floor textures.
You can set the height in Sectors Mode and editing the properties, or you can change it in Visual Mode by pointing your crosshair at the floor until it’s highlighted and scrolling your mouse wheel (you can see how much you changed the height in the bottom left corner in visual mode).
You’ll notice there’s now an orange “MISSING” texture on the sides of this sector. We will need to put a texture on these new surfaces we exposed or we will have rendering issues when playing our level. In this case, this missing texture is the “lower texture” on the front of my linedefs. It may be on the back of your linedefs depending on how you drew this sector. Let’s change this texture to STEP5. Tip: if you type in the search box on the bottom left of the texture browser, you can filter all of the textures by name quickly.
If you want, you can also set the texture in Visual Mode by pointing at each wall with a missing texture, left clicking it once to select it (you’ll notice it turn red if it’s selected) and once all four are select, right click to open the linedef property dialogue.
Let’s add a skylight in this sector too. Go ahead and raise the ceiling by 32px to 160px. Set the missing texture to BROWN96. To make it a little better looking, let’s add “Upper Unpegged” this side of the linedefs. You can do that manually in the linedef property page or in visual mode by pressing the U key.
This forces Doom to render a different part of the texture without offsetting it manually.
Finally, change the ceiling texture to F_SKY1, which is a unique flat that signals to Doom to render a sky instead of a texture.
To add some ambience, let’s make the brightness of each sector differ. Verify the skylight sector has the brightness of 192 and the outside sector have 160 brightness. You can change brightness in Sector Mode manually or in Visual Mode by pointing at the floor of the sector and using CTRL + Mouse Wheel. In GZDoom Builder’s visual mode, it’s important to point at the floor of the sector or else you’ll set a brightness offset of a wall or ceiling.
Computer Decorations
Let’s make a computer ledge like they have in Episode 1 of Doom 1. Here’s a screenshot for reference:
I’m going to draw a sector 32px by 128px on the outside of our main sector like this:
Now we can change the floor and ceiling heights to make a “shelf”. Raise the floor by 32px and lower the ceiling by 48px to 80px (you’ll see why later when we apply textures). Put BROWN96 on the missing textures, and this time, set Upper Unpegged and Lower Unpegged to make the texture align appropriately above and below our shelf. Set the floor and ceiling textures to CEIL5_2.
Let’s set the to 32px long sides of the shelf to the texture LITE5 and the 128px back side to COMPSTA1. Raise the texture brightness to 256 and we should have a great looking computer shelf now!
Let’s copy and paste this sector so we have two computer screens! Highlight the sector by clicking inside of in while in Sectors Mode. Now let’s do CTRL + C, hover your mouse somewhere over the void, and CTRL + V. Now we can move the new sector to position it and press C to clear our selection and finalize our choice.
Make sure to fill in the missing textures above and below the new shelf. Let’s also change the texture of the second computer shelf to COMPSTA2 for some variety!
To add a little more variety, set the sector “Special” to 65: Light Flicker to give it a flickering effect! You can choose from the list manually or type the number 65 into the box to set it quicker.
Making Our First Door
Let’s make a normal door that you’d see in Doom where you can walk up to it, press the use key, and open it, and then after a few seconds, it will automatically close.
Start by making a 64px by 128px sector attached to the outside of our main sector.
Now, let’s split the sector into three parts. You can enter drawing mode and draw linedefs down the middle of the sector to the opposite end and Doom Builder will automatically split the sector.
Let’s set the smaller sector wall textures to LITE5 and the middle sector wall textures to DOORTRAK. Let’s also increase the brightness to 256 for all three sectors.
Lower the ceiling of the middle sector so it touches the floor. We want a sector with 0 height. Change the missing texture to BIGDOOR2. Set the ceiling texture of this sector to something darker, like CEIL5_1.
Before we go further, make sure the tic marks on the outside of the middle door sector are facing outwards. This doesn’t necessarily affect anything, but it’s a good habit if you ever end up mapping for other formats or using the Front side only activation flag.
Now let’s select the two door linedefs and add the action 12: Door Raise with default settings. Also, check the Activation flag boxes Repeatable action and When player presses use.
Now our door works!!!
Unfortunately… the door track moves with the door. To fix this, add lower unpegged to the door track linedefs. 🙂
Awesome! We’ve made a ton of progress. We will go over more basic concepts in the next guide.
Download
Here is a download to our map after following this guide: