My first experience at Doom mapping

Num7

Administrator
Staff
Messages
12,375
Talk about starting the year strong! Mapping for a 1993 game!

Doom is a game I've been playing on and off for almost 25 years. I used to play the shareware version on an old AMD K6-2 350 mhz as a kid. At some point, a friend gave me a copy of Doom95.exe and I got my hands on Final Doom. What an update! It was now possible to select levels without having to start a new game and resort to cheats! Nowadays, I have all the official WADs and played them many, many times.

Doom had something special that no other game had. It still kind of feels that way today, in 2022. Its environments and gameplay are pretty convincing, while still being abstract enough to age well.

This blog article (part 1 of 3, actually) convinced me to give Doom-mapping a try.
You should make a Doom level, part 1: the basics

I remember reading it last year and the idea stayed with me for a while.

Keep in mind that the last time I mapped for a game was probably in 2001 or 2002, for Starcraft: Brood War. I made 4 player F4A map I'd play on with friends over a modem connection. It was fun for a while, but according to today's standard, it was crap.

So I went ahead and downloaded Ultimate Doom Builder.

Then I had to study what the map formats are. I'm no expert, so don't quote me here. These are the very (extremely) basic details of what the primary formats are, from my understanding.

I'm a Doom veteran, but certainly not a master. And I'm a total noob at mapping.

GZDoom: Doom2 (UDMF)
The UDMF format is the most modern and advanced format, that contains all possible features imaginable that go way beyond the original game engine. It runs only on GZDOOM. It allows scripting, 3D floors, slopes, swimmable water, etc. It can get quite technical.

UDMF doesn't run on the old, original game engine.

Boom
Boom: Doom or Boom: Doom2 is pretty much vanilla, but with some tweaks. It removes the hard-coded limits of the original game engine, such as the lost soul limit, the number of independent ceilings, and such. It's kind of a "Vanilla Doom+" thing, that keeps the original feel while removing limits and bugs.

Boom format won't run either on the old original engine. It will run on every other port though. Chocolate Doom, Cryspy Doom, PrBoom+, etc.

As a reference, John Romero made Sigil in this format. A ton of well-known WADs are made that way.

Doom
The Doom: Doom or Doom: Doom2 formats are the original, classic format, as Id Software created and used it back in the day. With all its limits.

This format will run on the original game engine, as well as all the ports available.

So, since my objective was to get my feet wet, not win a Cacoward, I went with the Doom: Doom format. Classic Doom 1 here I come!

Creative process
Okay, what do I want to create, here? I figured I wanted to create some sort of small facility, with nukage and a spill. Thought it would be interesting to explore. I wanted a big main room that would be the center hub, sort of. From there, you'd see the red key sitting in an adjacent room. Guess you'll have to find a way to get there!

Here's a couple of screenshots:


It's pretty basic, but it does the job.

Overall, a switch lowers down the nukage so that you can access the left part of the map. There, you'll find a couple of narrow pathways, a few secrets, then an elevator leading to the red key.

Down the rabbit hole
Up to now, I had to put about 15 hours into the map. Now that I write that down, that seems a lot!

Don't be fooled though, that's normal on your first try.

The way Doom is made, it's incredibly easy to create a map quickly. The 2D nature of the engine makes mapping super fast. Once you're in control of the tools at your disposal, it becomes ridiculously easy to create rooms, corridors, contraptions in an instant. I honestly never imagined it could be that easy to create something, out of nothing.

I had much less trouble with the rest of the map, as I felt more in control, working with sectors, linedefs, and vertices. It went well.

At some point, I took a little break and came back after a few days. I felt inspired and created the whole second half of the level in about an hour. Fast and easy!

I went ahead and created an outdoor area full of zombies and barrels, ready to blow up. Then the level gets back inside the base. I decided to go nuts for the finale and get the player down several flights of stairs until they reach a big room, in which hell manifested. The rift between reality and hell was fun to build.


Creating those rooms and using textures you've seen for the past 25 years feels odd at first. What am I building? Is it good enough? Does it look okay according to my eyes? And according to the visual language of the game?

It really feels like you're creating something. Ultimate Doom Builder is a great tool for a great game engine. But man, that's a lot of work.

All in all, about 20 to 25 hours or so went into this. It was incredibly fun. Yes, creating maps for Doom is a form of art.

I didn't even balance the map much, there's no difference between the difficulty levels, I kinda just dumped items and guns here and there, etc. It's not entirely done so to speak. But it's totally functional.

I'm pretty sure a serious mapper could have done a similar map in about 1 hour tops. That's fine. Saying that makes me realize how much time it'd take me to create a world-class map. A ton of time! Sure, I'd get better and faster over time, but that's still a massive time sink we're talking about here.

Here's a copy of my WAD. You run it using doom.wad and your favorite port.
E1M1.wad

Full map view:

I didn't post it on DoomWorld or any WAD hosting sites. I didn't create it in order to share it or anything. And I certainly don't want other people to give it a 0 stars rating and leave comments saying it's absolute shit. Which it probably is... But I had a great time making it, that's the point!

All in all, it was a great creative experience I'd love to repeat, but doubt I will. It's too time-consuming for my taste. What probably doesn't help me, is that I'm a perfectionist. I need to fine-tune every small detail a hundred times before I'm comfortable with it.

Originally posted on my personal blog:

See ya!
 
Last edited:

Wind7

Moderator
Staff
Messages
8,432
Thanks for this Num7!

1993-94 seems like such a long time ago now...But my best friend's Stepson introduced me to DOOM.

It was one of the only Games I played and MAN! Was that addicting!!!!
I loved that game.

I eventually became a Doom Master And created some pretty wild Levels of my own.
Man...That was such a long time ago now! 28 years ago.................Whooooosh!

:cool:
 

Num7

Administrator
Staff
Messages
12,375
Thanks for this Num7!

1993-94 seems like such a long time ago now...But my best friend's Stepson introduced me to DOOM.

It was one of the only Games I played and MAN! Was that addicting!!!!
I loved that game.

I eventually became a Doom Master And created some pretty wild Levels of my own.
Man...That was such a long time ago now! 28 years ago.................Whooooosh!

:cool:
Glad you liked it! Didn't remember you played that game that much! I've had Doom in me for the past 20 years, I understand what you mean.

Resiviting those old levels is magic, they feel amazing and didn't age a bit. Episode 1 of Doom 1 is beyond amazing. John Romero made most of the maps, the guy's a genius. These maps are burned into my mind.

Did you play Doom 2, then TNT Evilution and Plutonia Experiment?

There's also the Doom 2 Master Levels, No rest for the living... TNT Revilution, Plutonia 2.

And then community made wads that are pretty much on par with the original ones. It's awesome.

There's so many new kind of mostly or nearly official and recognized wads now.

John Romero, one of Doom's creators even created an official, canon Wad that takes place after Episode 4 (Thy flesh consumed) and released it in 2019. It's Sigil and it's a 9 levels episode. It's awesome and 100% free. Optionally, for $6.66 you can get the soundtrack by Buckethead. A new official wad in 2019! Holy shit we live in an interesting timeline!

And Romero said a few months ago that he's working on Sigil 2, that will somehow be linked to Doom 2. 32 levels.

Do you still have those maps you made? Would be awesome to take a look at them!
 
Last edited:

Martian

Senior Member
Messages
1,137
Doom was innovative in its day. Back before GPU shaders & everything being done for you, you had to (as a programmer) actually optimize code & make sure it would run fast enough. One of the most basic tasks which required optimization was normalizing vectors, which involves the reciprocal of the square root. They implemented it like this:

C:
float fastInvSqrt(float number) {
    long i;
    float x2, y;
    const float threehalfs = 1.5f;

    x2 = number * 0.5f;
    y  = number;
    i  = * ( long * ) &y;                       // evil floating point bit level hacking
    i  = 0x5f3759df - ( i >> 1 );               // what the fuck?
    y  = * ( float * ) &i;
    y  = y * ( threehalfs - ( x2 * y * y ) );   // 1st iteration
//    y  = y * ( threehalfs - ( x2 * y * y ) );   // 2nd iteration, this can be removed

    return y;
}

This was the 1990s equivalent of witchcraft. :D

Edit: I'm a complete idiot. It was Quake III Arena that implemented that, not Doom. Same company though! :p That's what I get for trying to comment on technical stuff when drinking. lol
 
Last edited:

Wind7

Moderator
Staff
Messages
8,432
Glad you liked it! Didn't remember you played that game that much! I've had Doom in me for the past 20 years, I understand what you mean.

Resiviting those old levels is magic, they feel amazing and didn't age a bit. Episode 1 of Doom 1 is beyond amazing. John Romero made most of the maps, the guy's a genius. These maps are burned into my mind.

Did you play Doom 2, then TNT Evilution and Plutonia Experiment?

There's also the Doom 2 Master Levels, No rest for the living... TNT Revilution, Plutonia 2.

And then community made wads that are pretty much on par with the original ones. It's awesome.

There's so many new kind of mostly or nearly official and recognized wads now.

John Romero, one of Doom's creators even created an official, canon Wad that takes place after Episode 4 (Thy flesh consumed) and released it in 2019. It's Sigil and it's a 9 levels episode. It's awesome and 100% free. Optionally, for $6.66 you can get the soundtrack by Buckethead. A new official wad in 2019! Holy shit we live in an interesting timeline!

And Romero said a few months ago that he's working on Sigil 2, that will somehow be linked to Doom 2. 32 levels.

Do you still have those maps you made? Would be awesome to take a look at them!
I Wish I Did!

When Quake came out...I thought DOOM was dead so I never looked into it any further

It's been a long, long while and I cannot even remember the names of the characters/monsters
or even the name of that multi-level, chamber filled thing I created.......

A Huge life changing event took me away from it all....Back in 1994.


It was on a friends pc...A long time ago so, nope,
All I have are memories now.....Nothing physical was saved unfortunately.
His Stepson cursed me up and down for creating a multi stage that by the 3rd level,
you were defeated. It was doable but you had to work at it.....Lots!

I cannot remember the baddie's names anymore...But there were chambers you could create
and I managed to stuff quite a few of those 'Horned Puff-balls' in every crevice I could find.

He eventually beat it when a thing called 'god mode' was found.
(It made you literally immortal and you couldn't get killed)

I cannot for the life of me remember the name I gave the thing.

There was a thing called Icon Thrower......I remember using (I Think?)......It ate up every ones ammo by
reproducing several baddies very quickly....But, it crashed the computer and I had to go in and remove it.

Num7...I literally spent hours and hours playing that game.....I haven't thought of it since!

I'm very tempted....but $$$ is very very short these daze and I would have to have another PC just for DOOM.
 

Num7

Administrator
Staff
Messages
12,375
Doom was innovative in its day. Back before GPU shaders & everything being done for you, you had to (as a programmer) actually optimize code & make sure it would run fast enough. One of the most basic tasks which required optimization was normalizing vectors, which involves the reciprocal of the square root. They implemented it like this:

C:
float fastInvSqrt(float number) {
    long i;
    float x2, y;
    const float threehalfs = 1.5f;

    x2 = number * 0.5f;
    y  = number;
    i  = * ( long * ) &y;                       // evil floating point bit level hacking
    i  = 0x5f3759df - ( i >> 1 );               // what the fuck?
    y  = * ( float * ) &i;
    y  = y * ( threehalfs - ( x2 * y * y ) );   // 1st iteration
//    y  = y * ( threehalfs - ( x2 * y * y ) );   // 2nd iteration, this can be removed

    return y;
}

This was the 1990s equivalent of witchcraft. :D
Yeah, John Carmack really did some crazy stuff in the game. Almost arcane programing! The concepts he programmed are still used in today's games and were groundbreaking back in the 90s.

I don't remember the acronyms at all, but he implemented crazy optimization concepts, like pre-compiled render trees in order render only what's on screen, in the right order so that it's fast, even on potato PCs. Awesome stuff

I watched several videos about it on YouTube, it's so interesting!
 

Num7

Administrator
Staff
Messages
12,375
I Wish I Did!

When Quake came out...I thought DOOM was dead so I never looked into it any further

It's been a long, long while and I cannot even remember the names of the characters/monsters
or even the name of that multi-level, chamber filled thing I created.......

A Huge life changing event took me away from it all....Back in 1994.


It was on a friends pc...A long time ago so, nope,
All I have are memories now.....Nothing physical was saved unfortunately.
His Stepson cursed me up and down for creating a multi stage that by the 3rd level,
you were defeated. It was doable but you had to work at it.....Lots!

I cannot remember the baddie's names anymore...But there were chambers you could create
and I managed to stuff quite a few of those 'Horned Puff-balls' in every crevice I could find.

He eventually beat it when a thing called 'god mode' was found.
(It made you literally immortal and you couldn't get killed)

I cannot for the life of me remember the name I gave the thing.

There was a thing called Icon Thrower......I remember using (I Think?)......It ate up every ones ammo by
reproducing several baddies very quickly....But, it crashed the computer and I had to go in and remove it.

Num7...I literally spent hours and hours playing that game.....I haven't thought of it since!

I'm very tempted....but $$$ is very very short these daze and I would have to have another PC just for DOOM.
Doom should run on any PC today. Unless you only have a work PC, for instance, that would be a no go.

If you have a potato pc, a port like Chocolate Doom or Crispy Doom would work.



Or gzdoom. I'm playing with gzdoom on an onboard graphics card. It works just fine.


Just to be clear, the original .exe of doom doesn't work on modern computers anymore. So we gotta use ports such as the above that are made frim the original doom code. John Romero released the Doom code a long time ago, making this possible.

All you'll need from there will be the official game Wads. I can send you a couple of them in private if you want.

I think the demons you're referring to must be the pinky demons.

 

Martian

Senior Member
Messages
1,137
Yeah, John Carmack really did some crazy stuff in the game. Almost arcane programing! The concepts he programmed are still used in today's games and were groundbreaking back in the 90s.

I don't remember the acronyms at all, but he implemented crazy optimization concepts, like pre-compiled render trees in order render only what's on screen, in the right order so that it's fast, even on potato PCs. Awesome stuff

I watched several videos about it on YouTube, it's so interesting!
I think you're referring to the painter's algorithm. Yeah, modern GPU z-buffers take care of all of that, but back then it was all done by the CPU, as far as I know.

Also, I edited my post above, because it was a different game by the same company. :p
 

Num7

Administrator
Staff
Messages
12,375
Awesome! Honestly, I didn't notice at all what game it was from!

I didn't think I'd be able to, but I found back the video I saw a couple of days ago. You'll like it!

 

Top