Doom Builder Guide – Slopes

This guide is intended for beginners/intermediate level mappers who want to make slopes in their GZDoom levels.

There are two ways to make slopes in GZDoom. The recommended way is to use line action 181: Align Slope. The second way is UDMF specific (I think so at least) and you add a slope angle and direction to a floor or ceiling inside a sector’s settings.

Making a Basic Slope on the Floor

Our first objective is to make a slope on the floor. The most common thing you’ll see this used for in maps is ramps. Go ahead and draw a main sector that will be used as our “ground floor”. Make sure the floor height is 0 and let’s make the ceiling height 256 to create some breathing room. Place a Player 1 Start thing somewhere in the sector.

Next, let’s create another sector either inside or adjacent to our first sector. This will be used as an upper platform we will want to make a ramp up to. Increase it’s floor height to 64.

Now let’s draw a third sector that will be used as a ramp. Try to keep it square/rectangular because angled ramps can look strange or make it difficult for players and demons to navigate. Make it at least 64×64 to allow some width for travel but also length so the angle of the ramp isn’t greater than 45 degrees. You can make slopes that are steeper, but again, you need to be mindful of players and demons traversing your map. I’m going to make our sample slope sector 128px long to make it a little more of a gentle slope.

Now we can do two different things here. We can either align the slope down from 64px (platform) to 0px (ground floor) or we can align the slope up from 0px to 64px. It’s really up to you what you want to do, but I will demonstrate both. (You’ll need to understand both if you end up having complex geometry in your maps that prevent you from using the slope line action on certain lines or there are slopes that you don’t want to create ramps for.)

Set your ramp sector’s floor height to match the platform’s height. Select the line that is at the bottom of your slope. This is the line that we will align to, or attach to the floor. Make sure it’s facing inward to the slope. The direction of the linedef is crucial for the engine to determine where the slope aligns to.

Edit the line properties and set the line action to 181: Align Slope. You’ll see some arguments you can set on this action. We will set the Align Floor argument to front.

Save your settings and let’s test our work. Either preview our slope in Visual Mode or play your level. While inside Visual Mode, you can also experiment with sector heights to see how it affects slope angle.

Making A Sloped Ceiling

In this next example, I’m going to make a basic sloped ceiling. I’m going to create a hallway off of our main room and create sectors where I want the slopes to be. I’m going to make the hallway 128px tall and then bring down the two slope sectors’ ceilings by 32px. **Notice the direction of the lindefs.**

Now add the line action 181 and change the Align Ceiling argument to Front. Go ahead and test in visual mode now.

What about aligning slopes to Back?

I’m going to show a quick example of some places where you’d want to align to back instead of front. The best way to learn the difference it to experiment and trail-and-error while creating your maps. Sometimes instead of aligning to the back, you can just flip the linedef and still align to front.

I’m going to split our original slope from earlier in the guide and align it to the back instead. Instead of aligning it at the bottom of the slope, we will want to add the Align Slope action to the linedef at the top of the slope. We will also want to flip the linedef direction, lest we accidentally make our platform to slope towards our ramp instead! Lastly, make the new slope sector’s height 0.

The two slopes will be identical and indistinguishable in Visual Mode.

Make an interesting teleporter / item area

Here’s a quick way to make your teleporters and item pickups stand out. Make a 64×64 sector somewhere and raise it up by 16px. Make four sectors around it like the screenshot below. Make those border sectors 16px high as well.

Now make the four outermost linedefs align to the floor. Add some textures to spruce it up and you should end up with something cool like the screenshot below.

Make interesting and natural looking hills

Sometimes slopes can make outdoor areas look really good. I’m going to demonstrate how to make some natural looking hills by using triangular sectors that alternate where they slope to.

Lets start by adding an outdoor area on the other side of the hallway we made earlier. I’m going to make an irregular shaped platform that we will want to make slopes to. (I’m also going to change the textures on the map so it’s easier to look at — I really hate the default STARTAN textures haha!)

Now I’m going to create triangular sectors branching off like spikes from the hill sector. I always imagine I’m just making a crude depiction of the Sun.

Now I’m going to close off the points of each of the new triangle sectors like the screenshot below. This creates more triangular sectors. I’m also making sure all the linedefs that are touching the hill and the grass are facing inward.

Now, select all of the triangle sectors that are touching the grass, and raise them to the same height as the hill.

It looks really silly right now, but once we add Align Slope and slope all of the floors to Front, we are going to get a really smooth looking hill.

Nice work! You can extrapolate off of this concept and make winding trails that slope smoothly or lots of hills that build on each other.

Sloped 3D Platforms

Sloped 3D platforms are a little complicated but are very possible and can make your Doom maps rival Quake-style architecture. Let’s do a little work on our inside area so we can make an appropriate area for one. I created another area that has a floor height of 128px. You can do anything you want, but I just wanted to create something natural-feeling for my level making style. Here are some screenshots.

I’m going to make our 3D platform between our original platform and our new platform like this:

Let’s start off by just making this sector a 3D floor. If you haven’t made a 3D floor yet, I’m going to write a guide about making them later.

Make your dummy sector outside of the map. In order for the slope to be correct later on, make the sector as wide/tall as our destination sector, and also aligned with our destination sector.

Let’s add our linedef action 160: Sector Set 3D Floor on one of the sides of our dummy sector, not on the sides that will match where our slopes will eventually be.

Now I’m going to adjust the heights of the 3D floor so the bottom is at 64px and the top is at 128px. This is so it matches the two heights of our other platforms we want to create a ramp in between.

This is a proactive step, but I’m actually going to lower the bottom of the 3D floor by 32px to give our ramp a little thickness later on.

Now it’s time to make it slope. Add a sector on top of the dummy sector.

I like to do the next step in Visual Mode. I’m going to set the dummy sector’s floor height to 96. This will move the 3D floor’s underside up higher. We are also going to add a slope linedef action on the linedef between the dummy sector and the new slope sector.

Now lower the ceiling of the slope sector to 64px and slope the ceiling.

Now our platform will look like this!

Nice work. Sloped 3D floors have a lot of potential and can really make your map have a lot of modern capabilities.

Some other interesting architecture possible with slopes

Doom Builder Guide #2 – The Basics (UI, geometry, controls, line settings, sector settings, things, doors)

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:

Doom Builder Guide #1 – Setting up DoomBuilder

Welcome to the first in a series of guides that aim to get you making levels for Doom in no time. There are many different ways to create levels for Doom, and none of them are incorrect! That being said, there are recommended ways of doing things and best practices. These guides will reflect the way I make Doom WADs and what I’ve learned over the years.

Note about PC specs: I’m usually playing Doom and making levels on Windows 10 64-bit. I have a modest desktop and everything runs smooth. I also use a MacBook Pro from 2013 with Bootcamp that runs everything smoothly as well. I tried mapping and running GZDoom on a Dell XPS from around 2013 and it ran HORRIBLY. There are ways to tone down the graphics for GZDoom and GZDoom Builder 2 so it runs smoother for you, but don’t expect it to look amazing if you have older hardware.

A Little History

A Doomer named CodeImp developed a program called Doom Builder and it was a very easy way to create Doom levels. One of the best features was a Visual Mode that let you preview and edit your map in 3D. This sped up the level design process and eliminated a lot of time spent with guesswork and testing your map every time you made a change.

Since then, CodeImp released a new version of the editor called Doom Builder 2. It improved on almost everything from Doom Builder. Since the source code is open source, many have improved on it even more. My favorite improvement to use is GZDoom Builder 2, which allows the popular Visual Mode to render many GZDoom related effects such as slopes, 3D floors, colored sectors, and more.

Here is the main website for Doom Builder 2 for your reference. Here is a forum post on ZDoom.org for GZDoom Builder 2. Here is the DRD Team Development Build page for GZDoom Builder 2.

Step 1: Download and Install 7-Zip

7-Zip is a free .ZIP file software that allows you to open .7Z files. It’s a safe program so there’s no worries about installing it. Here’s the download page.

Step 2: Install Prerequisite Software

Go to the DRD Team Development Build page for GZDoom. You’ll see a download titled GZDB_Prerequisites.7z. Extract it using 7-Zip to a folder somewhere (you can right-click the file in your Downloads folder, use the 7-Zip context menu, and select “Extract to GZDB_Prerequisites”). Install all three programs inside. If any of the three say you already have them installed, great! Just move on to the next one.

Step 3: Download GZDoom Builder 2

Now it’s time to download the latest version of GZDoom Builder 2 from the same site. At the time of writing this, it’s the download that says GZDoom_Builder-r2787.7z.

Extract this folder somewhere nice. Maybe in a Dropbox to sync across computers? Maybe near your other Doom folder? Once it’s extracted, I would also rename it something prettier like “GZDoomBuilder”. Also, make a shortcut for convenience (or pin it to your taskbar!) Now go ahead and open Doom Builder…

Step 4: Set Preferences

Go to Tools > Preferences… in the menu bar to change some of the default settings.

  • Interface Tab
    • Check “Black background in image browser” to help your eyes a little bit
  • Controls Tab
    • Drawing Section
      • I set “Start Drawing” to “Alt+Menu”
    • Edit Section
      • Confirm “Clear Selection” is set to “C”
    • Modes Section
      • I set “GZDB Visual Mode” to “Q” since it’s right next to ESDF (the visual mode movement keys)
    • Visual Modes Section
      • Confirm “Auto-align Textures X” is set to “A”
      • Confirm “Copy Texture” is set to “Ctrl+C”
      • Confirm “Paste Texture” is set to “MButton”
      • Confirm “Reset Texture Offsets” or “Reset Local Texture Offsets (UDMF)” is set to “R” (The UDMF setting may only appear later on after some more configuration)
  • Appearance Tab
    • I personally have some issues with my eyesight so I crank up the “Textures and flats brightness” to +5y to see things better inside the editor
    • I turn “Anisotropic filtering” to None
    • I turn “Edge anti-aliasing” to None
    • I keep both settings about “Bilinear filtering” off to keep the pixelated look.
  • Editing Tab
    • I check “Synchronize selection between Visual and Classic modes” to help with some tricky editing

Step 5: Set Game Configurations

Go to Tools > Game Configurations… in the menu bar to let Doom Builder know where our Doom IWADS and GZDoom are at.

Place a check mark beside “GZDoom: Doom 2 (UDMF)”. This is the format we will be mapping in. Click here if you want to learn about UDMF. Inside the settings for this configuration, go to the Resources tab and click “Add resources…”. Navigate to your Doom folder and select Doom2.wad.

On the Testing tab, select your gzdoom.exe in your Doom folder. I test on Ultra-Violence but it doesn’t really matter what you select here. It’s all up to you 🙂

Step 6: Create a new map

You’re almost there! No go to File > New Map in the menu bar. You’ll see a Map Options dialogue box. Select your Game Configuration (GZDoom: Doom 2 (UDMF)), set the Script Type to “ZDoom ACS“, leave your Level name at “MAP01“, and press OK.

Nice work! You are now ready to start mapping! Read the next tutorial to get started!

Doom Sites You Should Bookmark

Here is a list of a bunch of good Doom related sites that you should know about!

Quickstart Guide To Playing Doom on PC

This guide is intended for people interested in checking out the classic Doom games and get you playing comfortable as quick as possible on PC. You can always check out the recent console ports of Doom if you want to just relax and play with a gamepad in your hands. The Xbox 360 port of Doom and Doom 2 are great and easy to play and are compatible on Xbox One.

Step 1: Buy Doom

You need to purchase Doom if you want the perfect experience of playing on PC. There is a free alternative to Doom called FreeDoom which replaces all the graphics, sounds, and levels. Buying Doom will grant you access to the game .WAD files.

Ultimately, you’ll want to at least have Doom and Doom II purchased (to gain DOOM.WAD and DOOM2.WAD), but if you want the full experience and purchase all of the officially released classic Doom content, you’ll want to also purchase Final Doom (PLUTONIA.WAD and TNT.WAD), The Master Levels for Doom II (various .WADs), and Doom 3 BFG Edition (NERVE.WAD).

Here are some digital options to purchase Doom:

NOTE: The sprites for Medikit and Stimpack health items in the BFG Edition .WADS were replaced with a different sprite due to some issues with it being similar to the Red Cross logo. Here are some links for more reading: Reddit Link, Doomworld Link

Step 2: Create a Doom Folder on your PC

Creating a place to put all of your Doom .WADs and other files is important and recommended. I personally put everything in a folder called “Doom” inside my Dropbox folder so I can sync it across my computers and automatically have it backup in case I lose my files. Make a folder in a convenient spot for you and make a shortcut to it on your Desktop for easy access.

Step 3: Copy your .WAD files to your new Doom folder

The .WAD files we purchased will need to go into your Doom folder. These IWADS contain all the data from the game that isn’t part of the game’s engine itself. If you purchased from GOG.com, it should be easy to find the .WAD files in the installation path you chose. If you purchased from Steam, navigate to your Steam installation path (under Program Files by default) and go to Steam > steamapps > common > (The version of Doom you purchased) and you should find the files there. Copy and paste them into your Doom folder.

Step 4: Download a source port

Doom’s source code was released in 1997 which led to the game becoming massively ported to different systems. To run it on modern systems. There are many source ports available for PC but the one we are going to work with is GZDoom due to its popularity and modability.

Go to GZDoom’s download page and get the appropriate download for your system. You most likely want the 64-bit download for Windows. It comes as a .zip file. Extract the contents to the Doom folder we created in Step 2. **Do not separate your IWAD files from gzdoom.exe. They need to be in the same directory for GZDoom to see them.** You can also make a shortcut to gzdoom.exe on your Desktop for convenience.

Step 5: Test running GZDoom

It’s time to see if you set up your folder correctly! Go ahead and run gzdoom.exe and you should see all the IWADs you have purchased.

You’ll notice that GZDoom supports other games like Herertic, Hexen, and Chex Quest that all run on the Doom engine/similar engines.

Go ahead and select an IWAD and click “Play GZDoom”. The settings are okay to leave default. The game will load to the title screen. Press any key to open the game’s menu that you can access by pressing the Escape key at any time while playing. Navigate the game’s menu with your arrow keys and the Enter key.

Step 6: Configure your settings

GZDoom’s default settings out of the box need a little work depending on your desired play style. In the games main menu there is an Options menu. Here are some good settings to modify:

  • Customize Controls
    • Action
      • Set “Fire” to Mouse1 (left mouse button)
      • Set “Secondary Fire” to E (this control is useful for custom weapon mods you may play in the future)
      • Set “Weapon Reload” to R
      • Set “Weapon Zoom” to Z
      • Set “Use / Open” to Mouse3 (mouse wheel click)
      • Set “Move forward” to W
      • Set “Move backward” to S
      • Set “Strafe left” to A
      • Set “Strafe right” to D
      • Set “Jump” to Mouse2 (right mouse button) (this is for mods that encourage jumping but it is considered “cheating” if you want to play classic Doom the right way :P)
      • Set “Crouch” to C
    • Weapons
      • Set “Next weapon” to MWheelUp (mouse scroll up)
      • Set “Previous weapon” to MWheelDown (mouse scroll down)
  • Mouse Options
    • Set “Always Mouselook” to On
  • Display Options
    • Texture Options
      • Set Texture Filter Mode to None to get that classic pixelated look
  • Set Video Mode
    • Change these settings to your liking.

Step 7: Rip and Tear!

Now you’re ready to jump into playing Doom. The controls are as follows:

  • Move using WASD keys
  • Look/Aim using your mouse
  • Shoot using Left-click
  • Interact with doors and switches with Space or Middle-click
  • Run by holding down Shift
  • Toggle auto-running with Caps-lock
  • Check the map with Tab
Source: Doomworld | Read the Doom Comic