Betrayal - a custom DOOM II map

Betrayal is a custom map for DOOM II: Hell On Earth (the game was remade in 2020 as Doom Eternal). As a challenge I gave myself 20 days to learn the DOOM engine, an editor, and make a map that'll be interesting and fun. It eventually took a 32 days.

The story:

After you defeat the Icon Of Sin, his two generals enter a strife as to who will take up his mantle. You cut a deal with one of them to kill the other and in exchange the invasion on Earth will stop.


Play Information

To play the map you'll need a limit-removing port. I've tested with the latest versions of Crispy Doom, PrBoom+, and GZDoom. The map has finer details that'll look better on OpenGL rendering. GlBoom+ (comes with PrBoom+) and GZDoom can both do OpenGL but the latest stable GlBoom+ will render artifacts on a few spots on the map. I recommend going with GZDoom.

In ports that support MAPINFO (ZDeamon for example) you have the option to start a new game from MAP01 and once you complete it the game will skip to MAP30. Or you can skip to MAP30 with '-warp 30' or IDCLEV30. In ports that support ZMAPINFO (like ZDoom and GZDoom) you'll see the map in the New Game selection. In both cases, when you complete the map you'll see the finale text that completes the story. If you use a more strict port, like Crispy Doom or PrBoom, you can read the finale text at the last section of this document.

If you have little (or no) experience in Doom you better play at I'm Too Young To Die or Hey Not Too Rough. If you're an experienced doomer --even if rusty-- then Hurt Me Plenty is for you. Ultra-Violence is for someone who finished the map in HMP and is looking for a challenge. It was designed to be a challenge for me. I don't recommend playing on Nightmare, but if you do, send me the demo (needs to be vanilla compatible so you need to user Crispy or PrBoom).

In deathmatch you can find additional teleporters at the two ends of the ravine (in singleplayer and coop they are inaccesible). They'll take you quickly at the top of the two platforms. Take advantage of them, they considerably speed up the gameplay. You should play deathmatch at I'm Too Young To Die or Hey Not Too Rough. At other skills there are items for coop and they'll mess with the game balance. Since there is lots of space, this map needs at least 4 people for deathmatch to be played nicely. Coop is meant to be played at either Hurt Me Plenty or Ultra-Violence. At HMP, it's going to be of similar toughness to singleplayer. At UV it's going to be a hard ride. You'll win because you respawn but it's going to take you a lot of tries. In my opinion coop on this map is only worth it at UV. Coop was added in version 1.1 and is the least developed aspect of the map. Feedback is very welcome.

The map is intended to be played without jumping, crouching, and freelook and I've disabled those in the ports that allow that (ZDoom, ZDeamon, etc).

There is a custom sky and that's the only custom asset in the WAD (the sprites of map names not counting). The first version had a bug where the custom sky wouldn't show on TNT and Plutonia. This version fixes that, among other things.

Copyright / Permissions

Authors MAY use the contents of this file as a base for modification or reuse under the terms of the CC BY-NC-SA 4.0 license. The gist of the license is that you can share and adapt the contents as long as you give me attribution, you don't make money out of it, and you share your modification under the same terms. Take a look at the full license before you modify my map.

Technical trivia

Beware, some spoilers.

The two opposing faces in the second platform (that the ladders lead to) are single linedefs instead of sectors. That's because there is no lower texture defined and when you climb the ladders it'll show a Hall Of Mirrors effect. A single linedef will not cause HOM. HOM wouldn't be there if I lowered the floor of these two sectors but then you could teleport without rising the stairs.

I didn't want the monster spawner to activate during deathmatch so I placed it outside the main room. At the start of the map the player walks over a line that lowers a platform (box) and reveals the spawner. Then, when the player enters the main room and fires a bullet the spawner will activate because its room has a joined sector with a sector inside the main room. The spawner sits on a platform about the height of the marble goat cube in the main room, so the spawn cubes seem as if they're being "invited" from the goat cube. In the first version of the map the platform with the spawner (along with all the boxed mechanism) was inside the main room but having an invisible platform touch the ceiling caused HOM artifacts on some ports, so it was moved outside the main room. The idea of having the monster spawner remain hidden during deathmatch is taken from TNT's MAP30.

In multiplayer, if you fall off the ground you'll be teleported to a box with damaging floor and you'll gradually lose health till you die. As opposed to instant death in singleplayer. That's because in singleplayer the mapper can utilize the voodoo doll trick, but that trick doesn't work in multiplayer.

The surrounding of all platforms that float on the sky will teleport you to a voodoo doll, thus telefraging you to an instant death. However MAP30 is the only map that a monster is allowed to telefrag you, so a block monster property is necessary to all the lindefs that teleport you to the voodoo doll. Without that setting a (most likely flying) monster would telefrag you seconds after you enter the big room.

Personal trivia

If you really liked the map --or you're really bored-- you can read some personal notes.

The basic idea of two facing platforms that form a ravine has been with me for a very long time. I remember playing with DCK under DOS but I never went far. Doom Builder is an amazing editor that makes things so easy and fast, and that gave me the desire to experiment with this old idea and see what comes out of it.

The ravine was originally meant to be made out of blood falls but that didn't look good on Crispy Doom, which was my test and target port when I begun working. So I turned to red rock textures. When I saw how much better OpenGL rendering looked in PrBoom+ it was too late, I was too far into development. You can still see a leftover from the blood falls: the baron faces hovering over the first platform have blood texture on the inside.

Originally, there were just two platforms. The Cyberdeamon platforms didn't exist. But the gameplay felt too boring without something to do. You just killed daemons on one platform, climbed to the other, killed some more, then found your way to Romero's head and finish the map. So I placed the task of flipping four switches at various places in the map. Also, the whole thing didn't float in the sky, and you couldn't fall off of it. It was more "strict" in a sense.

It is hinted that the head you kill is somewhere between dimensions. It spawns monsters in our dimension but it resides in another.

The texturing and architecture of the map were both influenced by Sunder's MAP02 but I didn't use any part of that map. The floating platforms idea was probably influenced by TNT's MAP26 years back when I played it, as well as Quake3/QuakeLive maps and the Doom 2016 levels that take place in Hell. The final choice with the two opposing stairs comes from Plutonia's MAP11 ending (a distant memory by now).

I made the sky to resemble TNT's RSKY3.

What I mostly liked from making this map --and its design makes it apparent-- is the experience and narration that I can give to a person by constructing a virtual world. It feels like writing a story or making a painting. Our minds work with imagination.

Ending text

If you don't want to spoil it for yourself, better read this after you finish the map.

You kept your part of the deal and the general kept his. The forces of hell immediately start retreating back into the spaceships that brought them on Earth.

As you see them vanish out in the horizon you somehow can't shake the feeling that this isn't the last of Hell that you will see.

But for now, Earth is free.