Page 1 of 2

Why is GZDoom considered "low vanilla accuracy"?

PostPosted: Wed May 12, 2021 6:38 pm
by bebipbop
It says on Doomwiki that GZDoom is considered to have low accuracy to vanilla Doom. A talented Doom player named Decino also said GZ has low accuracy, even with the "doom (strict)" compatibility (which is what I have been using) which is disappointing... My goal was to play all the Doom games with improved graphics, menus and other QoL stuff without sacrificing vanilla accuracy.

What exactly isn't accurate to vanilla in GZDoom with the "doom (strict)" compatibility setting on? I haven't noticed anything, then again I never played more than 1 ep on DOS. Maybe some RNG stuff?

Re: Why is GZDoom considered "low vanilla accuracy"?

PostPosted: Wed May 12, 2021 9:09 pm
by Rachael
On one hand - Doom is what you make it. John Romero used GZDoom to develop and even during its later development stages, stream Sigil. There is a lot you can do to make GZDoom look and feel like the original Doom.exe.

But on the other hand - GZDoom simply is not the original Doom.exe. RNG isn't the only thing that is different, even with maximum compatibility mode settings enabled.

glBoom+ is a port that has the same renderer GZDoom originally had in its earlier stages (actually, GZDoom got its original OpenGL renderer from glBoom), but looks and plays more like the original Doom. Its menus are atrociously bad though, but if you want to give it a shot, it might be the more "vanilla" Doom experience you are looking for.

Re: Why is GZDoom considered "low vanilla accuracy"?

PostPosted: Wed May 12, 2021 9:18 pm
by dpJudas
In my opinion, GZDoom mostly has a reputation of "low vanilla accuracy" for two simple reasons:

1) The defaults are pretty far from how Doom looked like originally in DOS. However, this actually seems to be intentional as that's how the main author of GZDoom likes things to look like. You can get very close to the original visuals though if you're willing to tweak the graphical settings.

2) Because ZDoom won the feature war among doom ports, the other ports mainly ended up focusing on what ZDoom was not: demo compatible and integer-based game physics. If you want the long list of extremely minor differences just go ask on the Doomworld forums. They will be more than willing to give you a huge list of totally "deal-breaking" differences only 1 out of 1000 people will notice. It will be silly stuff like using bugs in the original engine to trigger some exploding barrels to delay an event or other totally esoteric stuff that virtually no real maps actually do.

Honestly I wouldn't put too much into all this. Just pick the source port out there that gives you the most enjoyment out of Doom. If that's GZDoom then cool. If it's a different port then that's cool as well. :)

Re: Why is GZDoom considered "low vanilla accuracy"?

PostPosted: Wed May 12, 2021 11:43 pm
by bebipbop
dpJudas wrote:In my opinion, GZDoom mostly has a reputation of "low vanilla accuracy" for two simple reasons:

1) The defaults are pretty far from how Doom looked like originally in DOS. However, this actually seems to be intentional as that's how the main author of GZDoom likes things to look like. You can get very close to the original visuals though if you're willing to tweak the graphical settings.

2) Because ZDoom won the feature war among doom ports, the other ports mainly ended up focusing on what ZDoom was not: demo compatible and integer-based game physics. If you want the long list of extremely minor differences just go ask on the Doomworld forums. They will be more than willing to give you a huge list of totally "deal-breaking" differences only 1 out of 1000 people will notice. It will be silly stuff like using bugs in the original engine to trigger some exploding barrels to delay an event or other totally esoteric stuff that virtually no real maps actually do.

Honestly I wouldn't put too much into all this. Just pick the source port out there that gives you the most enjoyment out of Doom. If that's GZDoom then cool. If it's a different port then that's cool as well. :)


Visual differences aren't important to me, although I do have it set to run at the minimal resolution with the software renderer for the old-timey feel(kept the fancy gfx tho, they're too pretty). Gameplay differences like what you described wouldn't be a deal breaker for me but I'd still like to know about them just out of curiosity and to be more aware of what the game would have been like if I were alive when it came out, lol. One thing that was almost a deal breaker for me was no wallrunning until I found the compatibility option to turn it back on. That's what got me searching for more subtle differences.

It seems like the differences are mostly visual and the gameplay changes were mostly reasonable bug fixes and for comfort/QoL. So for now I'm sticking with GZ because its beautiful, convenient and has a ton of features I couldn't live without.

Rachael wrote:On one hand - Doom is what you make it. John Romero used GZDoom to develop and even during its later development stages, stream Sigil. There is a lot you can do to make GZDoom look and feel like the original Doom.exe.

But on the other hand - GZDoom simply is not the original Doom.exe. RNG isn't the only thing that is different, even with maximum compatibility mode settings enabled.

glBoom+ is a port that has the same renderer GZDoom originally had in its earlier stages (actually, GZDoom got its original OpenGL renderer from glBoom), but looks and plays more like the original Doom. Its menus are atrociously bad though, but if you want to give it a shot, it might be the more "vanilla" Doom experience you are looking for.


I tried glBoom+ because I saw that was what Decino uses in his fast-UV playthroughs (that and its considered highly vanilla accurate) but I couldn't stand the menus. That and the graphics, since I was coming from GZ and its pretty bland in comparison. The graphics don't really matter to me in terms of accuracy though, I'm mainly looking for changes that would cause problems in demos

Right now I'm just using the doom strict preset with the software renderer and the minimum resolution for my aspect ratio. It looks and plays great so I probably won't switch ports at this point but I'm still curious what kind of minor differences there are under the hood that someone like me wouldn't notice. I'll probably ask around at doomworld too.

Re: Why is GZDoom considered "low vanilla accuracy"?

PostPosted: Thu May 13, 2021 2:00 am
by drfrag
Well i think that "accuracy" term is abused in the Doom community, i don't care about it. GZDoom is still a modified Doom engine after all.
IMO there's a common misconception and it's that Boom and derivatives are "faithful" becouse they play demos but they actually use a different code path to play those.
I don't want to play demos i want to play the game itself.
I'm a hardcore Doom player (but not as much as other guys) and i've wasted most of my life playing Doom and for me all those engines feel dull and there's not much of a difference between those and ZDoom when playing vanilla (besides the obvious). I haven't played those as much tough.
I usually play LZDoom in standard compatibility mode with compat_oldrandom enabled (for vanilla Doom not mods), that uses the original Doom PRNG else weapons and monsters deal less damage. It's subtle but for me enough to make a difference. I must confess that i played BD for several years but then i went back to vanilla.
You could try Crispy or RUDE (that's mine) for a more vanilla like experience, those are strong limit removing.

Re: Why is GZDoom considered "low vanilla accuracy"?

PostPosted: Thu May 13, 2021 2:22 am
by Rachael
bebipbop wrote:I tried glBoom+ because I saw that was what Decino uses in his fast-UV playthroughs (that and its considered highly vanilla accurate) but I couldn't stand the menus. That and the graphics, since I was coming from GZ and its pretty bland in comparison. The graphics don't really matter to me in terms of accuracy though, I'm mainly looking for changes that would cause problems in demos

Right now I'm just using the doom strict preset with the software renderer and the minimum resolution for my aspect ratio. It looks and plays great so I probably won't switch ports at this point but I'm still curious what kind of minor differences there are under the hood that someone like me wouldn't notice. I'll probably ask around at doomworld too.

There's so many differences it's just too difficult to keep track of them over the years.
- For one, pitched projectiles fire at an accurate speed based on their pitch, not on a tangent based on their pitch
- There is the RNG differences you already mentioned. A SSG blast has a bit less "oomph" in GZDoom.
- Actors in the original Doom engine run on "fixed point", i.e. every movement is accurate to 1/65536th of a unit. In GZDoom they use a more accurate floating point.
- If playing multiplayer, F12'ing through coop screens changes both the status bar and the screen flashes. It also changes the point-of-perspective for sound too. Vanilla Doom does not do this. You can still F12 your buddies, but your status bar and screen flashes remains you, and all the sounds you hear are near you.
- Explosions affect an area around their explosion, but are limited to height - in Vanilla Doom, all explosions are infinitely tall
- Actors have a real height and can be walked over/on (but GZDoom has a compatibility to emulate Vanilla Doom where they are infinitely tall and cannot be walked over).
- Decorations such as torches and lights also have a real height too, but in Vanilla Doom their height is marked as "16" to allow projectiles to pass through them. (The compatibility setting in GZDoom sets this as well, though)
- Monster AI is basically mostly the same as it was in Vanilla Doom, however there have been a lot of changes to that code over the years that it will never be exactly alike the original.
- When GZDoom loads a level it uses its own nodebuilder to fix visual glitches.
- GZDoom also has a compatibility layer that fixes a lot of different glitches inside the levels themselves, both visual and game-breaking.
- In GZDoom, partial invisibility allows you to actually hide from monsters as long as you haven't already woken them. In Vanilla Doom they can always see you even if they can't fire at you accurately.

I can't think of much else off the top of my head, but I am sure there's a lot more here.

Re: Why is GZDoom considered "low vanilla accuracy"?

PostPosted: Thu May 13, 2021 2:46 am
by Gez
Rachael wrote:- Actors have a real height and can be walked over/on (but GZDoom has a compatibility to emulate Vanilla Doom where they are infinitely tall and cannot be walked over).


More precisely, actors have real height in vanilla too, it's just that this height is only checked for collision with projectiles (or level geometry). It's not checked for collision with other actors that aren't missiles, resulting in infinitely tall collision boxes between actors. This is all because there's a lot of jank in Doom's collision code. This results in oddities like making it possible to create a stairway you can climb up but not down. Or if you have two actors A and B, you won't get the same result if it's A that walks into B as you'd get if it's B that walks into A.

For example, did you know why missiles can pass through obstacles such as trees and candelabras? In fact they can't. It's just that these obstacles have a vanilla height of only 16 units (that was the default height for things in id's tool for creating all the boilerplate mobj and state tables, multigen). This is very low (the player can automatically climb 24-unit steps, so that's only 2/3 of a max height step) and unless you contrive a level specifically for that, it's very unlikely the projectiles will actually collide with it. And it'd probably look like it collided with the ground below the obstacle instead. But since actor height is only checked for collision with projectiles, when a player or a monster tries to pass through, they're blocked.

Re: Why is GZDoom considered "low vanilla accuracy"?

PostPosted: Thu May 13, 2021 4:06 am
by Graf Zahl
In retro game speak "vanilla accurate" often boils down to "no, we do not fix gameplay bugs because they always were part of the game". That's not Doom exclusive but can be found with virtually any gaming communtiy based on old games that have seen their source code released (or reverse engineered.) Of course this gets used as an ideological weapon by interested parties against those who dare to deviate from that formula in any way. Of course, what often gets ignored is that most of these more basic engines have more than once code path - and the compatible one only gets used for demos or when explicitly being requested. Most of today's compatibility options exist because of Boom having fixed some of these bugs 13 years ago.

But here's the funny thing: Most people who want to play these old games simply do not care as long as an engine doesn't break the game. They want modernized visuals, or better input code, or better sound that makes decent use of their high end 5.1 sound system. None of these get serviced by engines that stick to the software renderer (because hardware cannot replicate all mapping hacks), the original input code (because modern input code screws with demos) or a better sound system (because that requires some work on how the sound is designed in the game - you cannot just plug in a 3D sound mixer and leave the base as it was.)

Re: Why is GZDoom considered "low vanilla accuracy"?

PostPosted: Sat May 15, 2021 12:37 am
by bebipbop
Rachael wrote:- There is the RNG differences you already mentioned. A SSG blast has a bit less "oomph" in GZDoom.


That's unfortunate lol. Thanks for the list, though, this stuff is interesting to me. I searched more about why the SSG doesn't do as much damage and apparently the old RNG has a better chance of rolling high, especially with the number of pellets it has. If this is the case I wonder why we don't have a compatibility option to use the old weapon RNG. Something like that would be great!

Graf Zahl wrote:Most people who want to play these old games simply do not care as long as an engine doesn't break the game. They want modernized visuals, or better input code, or better sound that makes decent use of their high end 5.1 sound system. None of these get serviced by engines that stick to the software renderer (because hardware cannot replicate all mapping hacks), the original input code (because modern input code screws with demos) or a better sound system (because that requires some work on how the sound is designed in the game - you cannot just plug in a 3D sound mixer and leave the base as it was.)


True. And I'm sure its difficult to find a balance between quality and accuracy with these things. Myself personally, I'm aiming for the highest possible gameplay accuracy without sacrificing things like the fancy GFX, or upgraded sound and input. As far as I can tell, the changes GZDoom makes are mostly aesthetic, which made me confused how Doomwiki would say it's "low accuracy". The biggest gameplay change I've noticed is the weapon RNG being real RNG. Given that there's tons of compatibility options for things like wallrunning I would personally say GZDoom is at least average...

Re: Why is GZDoom considered "low vanilla accuracy"?

PostPosted: Sat May 15, 2021 1:36 am
by Matt
Why does GZDoom's SSG do less damage than vanilla, but the BFG more? (IIRC you can't one-shot the spider mastermind with the BFG in vanilla while in GZDoom it's fairly common)

Re: Why is GZDoom considered "low vanilla accuracy"?

PostPosted: Sat May 15, 2021 2:00 am
by wildweasel
Matt wrote:Why does GZDoom's SSG do less damage than vanilla, but the BFG more? (IIRC you can't one-shot the spider mastermind with the BFG in vanilla while in GZDoom it's fairly common)

This is actually not because of the RNG; there was a vanilla bug with hitscans and BFG traces that would sometimes cause them to "miss" targets if the player is too close to them, that GZDoom fixed, enabling the BFG to become vastly more devastating at point-blank range.

Re: Why is GZDoom considered "low vanilla accuracy"?

PostPosted: Sat May 15, 2021 2:29 am
by Graf Zahl
The SSG would be the RNG, though, but normally that should also be evened out by the blockmap fix that makes the BFG more damaging.
Doom's original RNG is extremely uneven - I'd even hesitate to call this joke an RNG - , but let's not forget that all Boom compatible ports have ditched this outside of demo playback or low compat levels.

Re: Why is GZDoom considered "low vanilla accuracy"?

PostPosted: Sat May 15, 2021 3:15 am
by Gez
Matt wrote:Why does GZDoom's SSG do less damage than vanilla, but the BFG more? (IIRC you can't one-shot the spider mastermind with the BFG in vanilla while in GZDoom it's fairly common)

The first is due to RNG differences, the vanilla RNG being slightly unbalanced towards high values.

The second is due to GZDoom changing the hitscan trace code. There's one indisputable bug fix: in vanilla, hitscan traces simply disappear if they cross blockmap boundaries diagonally. E.g. if the trace originates from block (1, 1), it can hit target in blocks (0, 1), (1, 0), (1, 2), and (2, 1) but it cannot hit targets in blocks (0, 0), (0, 2), (2, 0), and (2, 2). The result of this bug is that sometimes you can have enemies that are simply immune to hitscan weapons due to their positioning relative to the player. The bullets just go through harmlessly. And there's a more debatable change in that in ZDoom, a hitscan counts as connecting if it touches the borders of the collision box, while in vanilla it only counts as connecting if it touches the center lines of the collision box. Let's try to make that clearer with a picture:
Image
This represents a collision box (they're always square and grid-aligned, due to the way collision detection works in Doom). In vanilla, the trace has to hit one of the blue lines; in ZDoom they only need to hit one of the red lines. So imagine a trace that enters the box diagonally and exits it in the same corner on the adjacent wall, without crossing a blue line: this trace will hit in GZDoom, and not in vanilla. IIRC this was changed so as to make melee combat possible against large monsters, because melee attacks are short-ranged hitscans and with a wide monsters it's likely you will not have the range to hit their center due to how large their body are.

Combine those elements together and you can see how the BFG will tend to have more traces that connects against a large monster like the mastermind than in vanilla. Basically, if you go big enough, the fact that more traces will connect will more than compensate for the fact individual traces might do slightly less damage statistically.

Re: Why is GZDoom considered "low vanilla accuracy"?

PostPosted: Sat May 15, 2021 3:24 am
by Marisa Kirisame
Rachael wrote:- In GZDoom, partial invisibility allows you to actually hide from monsters as long as you haven't already woken them.

This one's unfortunately not 100% true due to the hardcoded chance to still be seen nonetheless.

Re: Why is GZDoom considered "low vanilla accuracy"?

PostPosted: Sat May 15, 2021 4:44 am
by Graf Zahl
@Gez: The thing with the blue lines is not correct. It checks the diagonals, which for hitscans with unlimited range makes no difference - this only affects short range melee weapons where the trace may abort before hitting something.

Regardless, all these things are compatibility optioned and can be disabled.