>>12017115
>>12017743
Doom is a 3D game with a limited implementation of the vertical axis. This is the only proper way to describe the game. Despite this, in order to get the thing running on dogshit 486 computers, Carmack chose to code the game like an atari game. What I mean by that is that in the game logic there are flats, walls, sectors, actors, and missiles. Flats, Sectors, and Actors have absolutely no 3D qualities. If you cross a linedef, you cross a linedef. If two actors collide horizontally, they collide vertically too, AKA infinitely tall actors. Flats can't be sloped.
A 3D game world is created by the two remaining features, variable height walls, and missiles which support vertical collision detection with actors (and some but not all walls due to bugs). These features, however, are only implemented in a limited fashion to keep the game running fast. This is why a fireball shot at you straight ahead moves slower than one firing down at you from an angle, the fireball has 3D collision but it has no concept of physical vertical distance because the game engine has no concept of physical vertical distance. So an imp 2 feet in front of you shooting a fireball, and an imp 2 feet in front of you but 100 feet above you shooting a fireball, will both hit you at the same time, and one flying at a vertical angle will move at an insane speed.
Build ALSO doesn't have true room over room, and the Blood/Redneck Rampage/Shadow Warrior/Levellord D3D levels that heavily rely on rooms over rooms are using a stupid number of viewportals and silent teleports to make it work, as are famous GZDoom wads like My House.