Hello pals, I'm writing this thread because I'm talking on Discord with someone who refuses to believe me that Doom is not 3D, at least not 3D the way we think nowadays. I've demonstrated that entities were at the same layer than the player is, the lack of any Z-axis prevents the engine to draw slopes or stacked rooms, he still think that Doom is actually a real 3D engine because of its ability to draw stairs.
So, how exactly the fake 3D is managed by the engine ?
Thank you !
[Clarification needed] Doom and the Z-axis
- Sgt. Pepperoni
- Posts: 88
- Joined: Mon Feb 16, 2015 6:57 pm
- wildweasel
- Posts: 21706
- Joined: Tue Jul 15, 2003 7:33 pm
- Preferred Pronouns: He/Him
- Operating System Version (Optional): A lot of them
- Graphics Processor: Not Listed
- Contact:
Re: [Clarification needed] Doom and the Z-axis
Doom does have a Z-axis, otherwise stairs and ledges would not work. And actors might be "infinitely tall" in vanilla Doom, but their height attribute still applies for projectiles and auto-aiming. Just because Doom can't natively draw slopes or rooms over rooms doesn't mean it's not 3D.
- DBThanatos
- Posts: 3101
- Joined: Fri Apr 14, 2006 3:17 pm
- Location: in "the darkness that lurks in our mind"
Re: [Clarification needed] Doom and the Z-axis
First there was this guy saying that doom wasnt 3d.
Then people were showing that the game, is 3d, the maps arent exactly.
Then people were showing that the game, is 3d, the maps arent exactly.
Re: [Clarification needed] Doom and the Z-axis
And we had a thread about that video last year, too. My original estimate that I'd hear about it again in a month was way off, but eh.
- Arctangent
- Posts: 1235
- Joined: Thu Nov 06, 2014 1:53 pm
- Contact:
Re: [Clarification needed] Doom and the Z-axis
The lack of slopes isn't caused by the lack of a third dimension, but by the fact that the renderer was written with the assumption that floor and ceiling planes would always be drawn perpendicular to the player. So to put it more simply, slopes aren't doable because id never bothered to program them. If it was due to a lack of the third dimension, all levels would be as flat as Wolf3D ones, because ... I mean, a slope is just a plane that changes its height in a linear manner, with ( faked ) infinite points of height change.
Additionally, actors don't share the same z height as the player. Projectiles show this best, as they use fully 3D collisions and can go over and under other actors without colliding with them. What's called "infinite height" really isn't, because every actor has their own height which comes into play with projectile collisions, what passages they're allowed to go into ( which is why a cyberdemon can't follow you under an awning he should if the third dimension was just faked ), and stuff like crushers, doors, and platforms ( the former is self explanatory, the latter go back to their other state if it close on an actor or try to raise and an actor on it bonks its head on a ceiling ). It's just caused by collisions between two non-projectile actors being heavily simplified, skipping the z-axis because ... I guess they never imagined something like The Chasm when they originally wrote the engine.
Additionally, actors don't share the same z height as the player. Projectiles show this best, as they use fully 3D collisions and can go over and under other actors without colliding with them. What's called "infinite height" really isn't, because every actor has their own height which comes into play with projectile collisions, what passages they're allowed to go into ( which is why a cyberdemon can't follow you under an awning he should if the third dimension was just faked ), and stuff like crushers, doors, and platforms ( the former is self explanatory, the latter go back to their other state if it close on an actor or try to raise and an actor on it bonks its head on a ceiling ). It's just caused by collisions between two non-projectile actors being heavily simplified, skipping the z-axis because ... I guess they never imagined something like The Chasm when they originally wrote the engine.