How does GZdoom manage floors above floors?

Discuss anything ZDoom-related that doesn't fall into one of the other categories.
Post Reply
User avatar
darbyjack
Posts: 171
Joined: Tue Jun 15, 2004 1:32 pm
Location: Surrey

How does GZdoom manage floors above floors?

Post by darbyjack »

Is it some kind of trickery? Or is it modified beyond the point where it is not really the Doom engine anymore? Excuse the ignorance, I know nothing of the matter, but a bit fascinated by it. Thanks!
Gez
 
 
Posts: 17835
Joined: Fri Jul 06, 2007 3:22 pm

Re: How does GZdoom manage floors above floors?

Post by Gez »

Well it's the Doom engine, but with Heretic and Hexen additions to get better over-and-under physics, and with bugfixes.

Then some handling for collision with 3D floor and passage through portals.

Now for the rendering side, yeah, it's been heavily modified, especially if you use the OpenGL or softpoly renderers which are basically completely new renderers rather than modifications of Carmack's original rendering algorithms.
User avatar
darbyjack
Posts: 171
Joined: Tue Jun 15, 2004 1:32 pm
Location: Surrey

Re: How does GZdoom manage floors above floors?

Post by darbyjack »

Interesting. I wasn't aware Hexen and Heretic could pull it off. My understanding was that the engine essentially converted 2D to give the illusion of 3D, and floors over floors were not possible at all.
Gez
 
 
Posts: 17835
Joined: Fri Jul 06, 2007 3:22 pm

Re: How does GZdoom manage floors above floors?

Post by Gez »

Heretic and Hexen didn't have true 3D floors like GZDoom. But they allowed actors to be over and under each other, instead of being blocked by 2D horizontal collisions regardless of their relative heights like in Doom. This is what allowed Hexen to have its glitter bridges.

ZDoom built on that, fixed some bugs, and then added geometry-based 3D floors rather than faking bridges with actors.
User avatar
darbyjack
Posts: 171
Joined: Tue Jun 15, 2004 1:32 pm
Location: Surrey

Re: How does GZdoom manage floors above floors?

Post by darbyjack »

I see. What about cacodemons flying above other monsters or the player in doom?

Also how was Gzdoom able to add geometric floors? I thought it would have been impossible with the original engine. Is it basically a new engine with elements of the old one?
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49067
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: How does GZdoom manage floors above floors?

Post by Graf Zahl »

darbyjack wrote:I see. What about cacodemons flying above other monsters or the player in doom?
You know, limits and restrictions can be removed, and that's just what happened here.
Gez
 
 
Posts: 17835
Joined: Fri Jul 06, 2007 3:22 pm

Re: How does GZdoom manage floors above floors?

Post by Gez »

darbyjack wrote:I see. What about cacodemons flying above other monsters or the player in doom?
In vanilla? They don't. They collide with the actors on the floor. You can make a running jump between two platforms, and then collide with a demon roaming on the floor below and fall.

3D collisions only exist for projectiles -- there it's possible for a fireball to fly above (or below) a target without colliding with it. But for players and monsters, collisions are only checked in 2D in vanilla. That's what was changed in Heretic and Hexen, and therefore in ZDoom.
darbyjack wrote:Also how was Gzdoom able to add geometric floors?
Like everything else, by adding more code.
User avatar
Chris
Posts: 2942
Joined: Thu Jul 17, 2003 12:07 am
Graphics Processor: ATI/AMD with Vulkan/Metal Support

Re: How does GZdoom manage floors above floors?

Post by Chris »

darbyjack wrote:Is it basically a new engine with elements of the old one?
Depends on what you call a "new engine". (G)ZDoom started with the original engine then added more and more things to it to do more things, including custom actor behaviors, hi-res textures, sloped floors, etc. It's not exactly the same as the original engine, but it's not completely different, either.
Post Reply

Return to “General”