Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
keithktam

how source port allow a 2.5d game look up and down

Recommended Posts

Gez said:

Collisions on the X and Y axes are checked in a different function and at a different time and in a different way than collisions on the Z axis.

You're talking about implementation. I'm talking about what it implements.

  • Each game object has a particular X, Y and Z position in the game world at any point in time.
  • Each floor plane (and each ceiling plane) has a particular Z height and a particular 2D polygonal outline along the X and Y axes.
  • Each wall plane has particular X, Y and Z positions of its top left corner, its top right corner, its bottom left corner and its bottom right corner.
The abovementioned facts are clearly true just from observing the game world as you play the game, and that's what makes my point that the game world is 3D. I'm not saying that Doom engine is a full 3D engine. I'm saying that Doom engine isn't just a 2D engine with some "illusion" of a height. The height, no matter how it's implemented, is real and well defined for every structure (game object, floor/ceiling, wall) in the game world. Rendering and collision detection resemble 3D-ness more so than 2D-ness, aside from the couple quirks I've mentioned in my previous post.

Share this post


Link to post

I've seen worse sound handling. In Marathon, the sound's position (relative to the player) and volume stay the same until the sound plays out. It gets confusing sometimes. And it's not even a glitch.

Maes said:

Well, then try simply jumping off a ledge with monsters swarming beneath it (in the original .exe, not Boom or ZDoom).

I wouldn't be able to. Does it mean that ZDoom (or Hexen, but not Boom) turns an almost 2D engine into an almost 3D engine?

Perhaps it's a glass half-empty/full conversation, but those few 3D elements you mentioned play a big role in how the game looks and behaves.

Share this post


Link to post

Doom is practically at the sweet spot between a purely 2D game with "3D" looks like Wolfenstein or Hovertank 3D, and something like Descent, which required a pilot's license to master. It has just enough 3D elements to set it apart and shake off that "fake 3D" feeling most of the time, unless you start overthinking and overanalyzing it. Doom requires some "suspension of disbelief" by part of the player, and most of the time it manages to achieve it.

ZDoom simply helps making this suspension of disbelief more acceptable by fixing certain parts that TBQH could have been implemented in a less half-assed way in the original and adding a few later idtech1 features like slopes and y-shearing, but it's really not a "more 3D" engine, not even if you count some RoR ("Room over Room" extensions), as even those require some suspension of disbelief by part of the player.

Arguably even Quake, despite being fully 3D, rarely went overboard with it, and it was still quite "Doom-y" in appearance and gameplay (even keeping the autoaim, a feature clearly associated with Doom's 2.5D engine).

Share this post


Link to post

I don't need to suspend my disbelief when playing a map that uses RoR extensions. The game doesn't seem impaired in any way.

Share this post


Link to post

Dunno...maybe it's my over-analytical attention for detail, but for me Doom's limitations are something that "once seen, cannot be unseen". Even with RoR the difference from real 3D architecture is quite obvious: it's like comparing a LEGO or 3D-printed object that's built from multiple layers to one fully machined or carved from a single piece of material. Again, "once you see it, you cannot unsee it".

But you can still pretend it's not there and enjoy the game anyway ;-)

Share this post


Link to post

I dunno, I think it depends on how the level is designed. Sometimes the architecture highlights the engine's weak points, sometimes it all looks natural.

Share this post


Link to post

As a very simple example of a mundane real-life architecture that would fall flat on its face in the Doom engine, even with RoR: a simple staircase with a sloped underside.

http://ejbformwork.co.uk/s/cc_images/cache_2458449143.jpg?t=1459757846

I'm not sure if it's even technically possible to represent it at all, at least with the kinds of RoR extensions I'm familiar with (which essentially define a bunch of overlapping but non-sloped sectors).

I know it's possible to sorta-kinda make it look right from the sides (by using a middle texture to emulate a slope), but the trick would be revealed once you looked at it from beneath. We're not even talking about using the vanilla trick with "3D bridges" to implement the steps here, I'm talking about each individual step being a RoR sector.

Worse still, imagine several such overlapping staircases....

Share this post


Link to post

ZDoom does make the game closer to true 3D than vanilla, by not having infinite vertical collisions by default and implementing some slightly more robust over/under movement logic than even in Heretic or Hexen; plus stuff such as 3D floors. It's still constrained by the entire game architecture being built around 2D maps.

Share this post


Link to post
Maes said:

(by using a middle texture to emulate a slope)

Such tricks often make it worse. It's like a confession: we can't do it properly; but hey, we came up with a kludge.

Share this post


Link to post

For the record, you can make this stairway in GZDoom, no problem.

Share this post


Link to post
Gez said:

For the record, you can make this stairway in GZDoom, no problem.


With a lot of 3D floors, possibly. Probably wouldn't have the best performance, though.

Share this post


Link to post
Gez said:

For the record, you can make this stairway in GZDoom, no problem.


Is it actually possible to make a sloped 3D floor that can be stacked with others? Or do you mean it's possible to just emulate the sloped look in the way I hinted at before (mid textures etc.)?

Share this post


Link to post
MetroidJunkie said:

With a lot of 3D floors, possibly. Probably wouldn't have the best performance, though.

Each step will have to be its own 3D floor, sure, but a normal Doom stair likewise require each step to be its own sector.

Maes said:

Is it actually possible to make a sloped 3D floor that can be stacked with others?

Yes.

Share this post


Link to post

OK, one final thing. This works in both ZDoom and GZDoom or only in GZDoom? If only the latter, why?

Share this post


Link to post

GZDoom only, because ZDoom doesn't support sloped 3d floors (the collisions are there though).

Share this post


Link to post
MaxED said:

GZDoom only, because ZDoom doesn't support sloped 3d floors (the collisions are there though).


Sounds weird, given that regular sloped floors with full collision are implemented (and they are not just for shows, as in e.g. Eternity), and non-sloped RoR is there.

Share this post


Link to post
Maes said:

Sounds weird, given that regular sloped floors with full collision are implemented (and they are not just for shows, as in e.g. Eternity), and non-sloped RoR is there.




... but it's the combination of both that makes it hard in the software renderer. How should it order its drawing without a z-buffer. For that sloped 3D floors are a big issue.

Share this post


Link to post
Graf Zahl said:

... but it's the combination of both that makes it hard in the software renderer. How should it order its drawing without a z-buffer. For that sloped 3D floors are a big issue.


Well, Carlos's CDoom got away with a Grosso Modo rendering of 3D floors and sprites. It had no slopes to contend with, but even so it didn't always (read: quite often) get the sprite clipping and floor/sprite ordering right. Then again, 3D floors and architecture in a port that ran only at 320x200 sure felt overkill...as I once said, there's only so much crap you can show with 64000 pixels (at best).

Share this post


Link to post

Eradicator had 3D polyobject-like functionality and ran in 320x200. It was its only notable drawback compared to Build games.

Share this post


Link to post
Gez said:

Each step will have to be its own 3D floor, sure, but a normal Doom stair likewise require each step to be its own sector.


From what I've heard, though, sloped 3D floors are pretty performance draining so you don't want to use too many of those. It's certainly a lot more complicated than a true 3D engine would have where it just uses a small handful of polygons.

Share this post


Link to post
MetroidJunkie said:

From what I've heard, though, sloped 3D floors are pretty performance draining


I have no idea where you heard that - but here's an important bit of info: The only difference between an unsloped and a sloped surface are vertex coordinates.

In other words: It costs almost nothing.

Share this post


Link to post

Guess the person who told me (Whom, for the life of me, I can't remember) that was full of crap, this guy told me to avoid using too many sloped 3D floors as much as possible because I guess they were supposed to be more performance heavy than regular 3D floors or something.

Share this post


Link to post

yeah there seems to be many misconceptions about the engine. because of the new DOOM game many youtubers decided to publish videos which features the original game. among them was "DOOM wasn't 3D" by The Game Theorists which confused a lot of people. it seems well argued but actually uses a lot of false statements to prove their point. if anyone is interested to see it:


Maes said:

In fact, you could perfectly play Doom with just a top-down Asteroids-like view in the automap, if there weren't ambiguous situations like e.g. whether you can could safely run under a projectile, or height-related puzzles.

actually there is a lot more which would make it pretty bad to play it from that perspective. you can't see pits, walls or windows so you never know if you can actually cross a line or not and if you can make it back. shooting enemies becomes obfuscated because from that point of view it will often look like as if you could shoot an enemy when in reality (3D) you have no line of sight because of height difference.

Share this post


Link to post

Well, the fact that Doom wasn't fully 3D was pretty obvious even back in the day, as there were already fully 3D games (not only in visuals, but also in a degrees-of-freedom way) to compare it to.

However, none offered Doom's combination of good visuals (texture mapped 3D, even if with limitations), good speed, good controls and good gameplay, so people tended to overlook that little defect ;-)

Even later engines (Duke3D, Quake etc.) for the sake of gameplay, didn't really put a tremendous emphasis on 3D gameplay, not even forcing the player to always look up/down or even take precise y-axis aim most of the time: in other words, they were still very Doom at heart.

Sure, flight sims or driving games might have been fully 3D...but YAWN, who did those appeal to? Super-complex games like Continuum/Alpha Waves, which relied on 3D gameplay were also too tiring and abstract on the long run:



So, Doom really won the day by finding a "golden balance", just like Wolf3D was obviously "less 3D" than e.g. Ultima Underworld which preceded it, but was much more fun to play and appealed to more people.

Share this post


Link to post

No video game is a "3D game" when rendered onto a single monitor. For that matter, each of your eyes are 2D, in that an image is projected onto a 2D surface (your retinas). However, if you have 2 eyes that are not on opposing sides of your head, each eye gets a slightly different view of the same scene, allowing your brain to perceive depth. Likewise, with an Oculus Rift, you present each eye with a slightly different view, hence a 3D view. This can be done with good ol' Doom, producing a rather believable 3D view (with cardboard sprites - ugh).

Not sure what the argument is here. Would Quake be called "2D" if you never looked up/down?

Share this post


Link to post

they specifically state that it's not about the 2D nature of the rendered image. basically in the game theorists video they claim that the game is not true 3D (not defining what true 3D is supposed to be), instead the z-axis or height is merely an illusion or a trick. then they come up with a weird comparison to Zelda ALTTP which they don't explain correctly (ignoring that the game actually has different planes like in the hyrule castle).

back to DOOM they is a lot of explanation how the rendering works with the BSP tree (not showing what it has to do with anything). finally they present their arguments, stating that DOOM can't be true 3D because you can't stack rooms on top of each other in the engine (since when is this an essential requirement for 3D?). and they also claim that this is the reason why the player can't look up or down and why shooting enemies above or beneath you is possible. again ignoring that projectiles can miss on the z-axis, that vertical autoaim is a thing (which doesn't work at a very high distance) and that bullets/projectiles don't climb stairs or walls which should be the case if the game world were actually 2D.

Share this post


Link to post

Even if we accept that no game played on a 2D monitor is really 3D, for what regards the visuals at least, there is still the matter of internal sfructure, logic, level architecture, degrees of freedom in the controls etc.

Many RL activities like e.g. driving can be thought of as 2D in a 3D world. Even flying a plane is quite 2D/2.5D because of the limited degrees of freedom (e.g. you can't stop on a dime and fly backwards or just climb from a standstill...but you may do so in a helicopter).

Come think of it, even in the best fully 3D shooters today you only have 2.5 degrees of freedom in your movement, and at best 2 in your view (you generally can't roll your view).

Share this post


Link to post
Sp00kyFox said:

instead the z-axis or height is merely an illusion or a trick

That would be correct for Wolfenstein 3D, which is indeed actually 2D, just rendered in a 3D perspective.

Doom is more correctly identified as a 2.5D game, in that it has all three axes, but the Z axis is kind of like a second-class citizen. Definitely not an illusion though, or all these jumping platforming puzzles would become much, much easier.

Share this post


Link to post

The most correct approach would be to differentiate between the degrees of freedom that the player and monsters can have, their actual degrees of control (usually less than the degrees of freedom), how many axes can be used when designing maps, etc.

So, according to the above:

  • Degrees Of Control (DOC): for the player, just three (3). You can only explicitly move forward/backwards and left/right on the map, and pitch (rotate) around yourself. Flying monsters can also directly change their altitude, so that brings their axes of control to four (4). Heretic arguably increased the DOC to 5 for the player, since it added yaw (or "view pitch") and the ability to fly. Those are pretty much useless for the monsters.
  • Degrees Of Freedom (DOF): In general, those are equal or higher than the DOC. E.g. in Doom, even with the 3 DOC, you still have 4 DOF, because you can change altitude, although not in a very controlled manner: you can only be as high as the sector you're standing on (or falling tonto). With Heretic you still get 5 DOF.
  • Architectural degrees of freedom: As Gez said, Wolf3D's worlds are indeed purely 2D, as there's no way to set floor/ceiling height anywhere, and altitude plays absolutely no role in the engine. Now, imagine a Wolf3D map with different FLOOR heights only (the ceiling would be fixed). That would be 2.25D, I guess? Doom maps can be thought of as two such 2.25D maps "sandwiched" together (one for the ceiling, one for the floor)
In any case, I thought that at this point, nobody would be offended if their favourite game was called "2.5D", "not really 3D" etc.: we're mature enough (?) to realize that what some called a weakness, was indeed Doom's strength. Sure, id could have probably coded Quake in 1993 and have it run as slow as molasses. Would it have had the impact that Doom had, with most people unable to play it?

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×