By Steven McGranahan
Back in 1998, the DosDoom team shocked the Doom community with an animated gif of a doom level with a real, true 3d bridge that the player could go under and over. Now, DosDoom has become EDGE and true 3D has become one of it's main features. The method EDGE uses for it's true 3D is a very simple and powerful one. It is capable of doing much more than just sector over sector, with EDGE's 3D, the level designer can create complex 3D structures and architecture.
In 1999, I began a series of experiments that were designed to simulate true 3D in my favorite Doom source port, Doom Legacy. These coding experiments eventually lead me to create invisible solid regions in a sector that objects could stand on top of and below. Then the DosDoom team released their source code and I downloaded it to try to copy the rendering code for 3D floors to complete the invisible ones I had made. Probably 4 attempts at this failed just miserably, and I gave up on rendering 3D floors (I had also made several attempts to turn Legacy's translucent water into 3D floors, but without success).
Legacy would not be able to render 3D floors until DosDoom became EDGE and the source was released. When the EDGE team released the code, I saw some of the pictures of things they had done with 3D floors and I knew that I had to try again. So I began to copy the code once again, and this time, was successful. Now, EDGE used GLBSP for rendering levels (even in software) which meant that the code it used to render them with the normal Doom BSP was outdated and very limited (only one 3D floor per sector, they did not effect lighting, and sprites were not sorted with 3D floors correctly) and thus it was up to me to bring this code up to date. This all took place back in 1999.
From that point, I managed to increased the 3D floor plane limit and the 3D side limit to 20, I have made it possible for 3D floors to cast shadows on the surrounding walls, and floors, and I had made a much better sprite sorting system (although it is still flawed). In fact, about 80% of the 3D floor code is now my code from scratch.
So you want to know how things work, eh? Well, first I would like to state that 3D floors in Legacy are not perfect. They are plagued by bugs in the original Doom rendering system, and many visual bugs you may notice are not fixable unless I overhaul the rendering system (which is probably not going to happen). (ok that may happen by someone else.) These bugs, however, are now very few and far between, and if you are careful, you can avoid most bugs.
There are known speed issues. A 3D floor (as of 01/10/2001) will slowdown Legacy about as much as adding 3 sectors. That is to say, every 3D floor that is tagged to a sector so tagging a 3D floor to, say, 3 sectors, will slow down the game about as much as if you added 9 sectors to the map. I will explain in greater detail later on, what exactly causes the game slowdown and how to minimize it.