GZDoom’s 3D floors add a lot of functionality to your maps if you’re looking to stray away from the limitations of classic Doom and expand your maps to something more like Quake level design.
This tutorial is aimed at Intermediate mappers that understand sectors, linedef actions, dummy sectors, Visual Mode, and 3D space.
Start with a basic level with raised platforms
I created a simple map that adds some verticality that we can work with and create 3D Floors for. Here are some screenshots.
I’m going to start by making a simple bridge over the two platforms that are 128px high. To do this we need to create a Dummy Sector. Dummy sectors are sectors that are outside the map that are unreachable and not part of the actual level. They let us set the heights of the dummy sector, and using a linedef action, those heights will translate to a tagged sector as a 3D floor.
I usually make my dummy sectors triangles because they cost one less linedef than a square. Set the lindef action on one side of the dummy sector to 160 – Sector Set 3D Floor. I set the tagged sector to 1.
Now I’m going to draw where I want my bridge and tag that sector as 1.
Now if we test in Visual Mode, we should see this…
This is not a bridge… yet! Adjust the floor and ceiling heights of the dummy sector in Visual Mode and watch as your bridge adjusts with it. The ceiling of the dummy sector affects the top of the 3D floor and the floor of the dummy sector affects the bottom of the 3D floor. Similarly, the texture of the dummy sector floor and ceiling also affect the textures of the 3D floor. The texture of the linedef that has the 3D floor action assigned to it affects the side of the 3d floor’s texture.
You can also change the brightness of the area underneath the 3D floor by changing the brightness of the dummy sector.
Create more dummy sectors and tag different destination sectors to create 3D stairs. You can reuse the same dummy sector for multiple destination sectors too. Tagging destination sectors with multiple tags allows you have multiple 3D floors as well!
To demonstrate the multiple tags idea, I created a nukage river in the middle of the map that runs through multiple 3D floors. I’m going to make a see-through 3D floor over it without having to make a ton of dummy sectors to compensate.
I’m going to use the Opacity argument on the dummy sector’s action linedef to make a glass-like floor over the nukage. We can also make the area under the glass colored to give a cool effect like so.
Textures that have transparency can also be used as grates, which can be extremely useful and aesthetically pleasing.
Sloped 3D floors are covered in my Slope tutorial, but you can use sloped 3D floors to added interesting architecture and details as well.