I know that ZDoom and Vanilla have been compared a lot over the years but I was wondering how close one can make ZDoom get to vanilla these days. There are a shitload of compatibility flags in the menu and along with other config file tweaks it looks like you can make it even closer to vanilla. What do you purists/veterans think.

BTW: This is not a ZDoom bashing topic. Just a request for an objective comparison from an interested yet ignorant party.

Even with all the stuff it adds, it stays pretty true to Doom. There isn't anything that seems to completely destroy the spirit of Doom. I actually think I may have gotten bored of Doom by now without ZDoom, there are so many great wads that take advantage of it's features.

It's definitely gotten better in the past few years, but it still defaults to ZDoom behavior for backwards compatibility, and that's what the majority of players are going to experience. If you're making a vanilla wad and you care about that, you can force the compatibility options in mapinfo.

Also I'm annoyed that there are no easy settings for Heretic/Hexen/Strife behavior. I don't know those games nearly as well so I have no idea what flags I should be setting for something resembling vanilla behavior.

^
I have to agree with the last point there. I was introduced to Heretic on the Amiga so have no experience of the vanilla DOS game. I wonder why there is no 'quick' option to set all the flags to 'vanilla'.

@ the other posters. I'm aware that ZDoom is it's own thing and (rightly) defaults to ZDoom settings. I'm just curious as to how close you can set the game to vanilla behaviour these days. :)

Some editing hacks for vanilla don't work right or at all in ZDoom, or especially in GZDoom, especially things that involve superimposed sectors. Generally there are alternate, non-vanilla compatible ways to implement these in ZDoom.

I think some extreme DeHackEd patches won't load properly in ZDoom. Again, you can use DECORATE to get the same effects (and more, obviously). For that matter, older DHE patches don't work at all in ZDoom.

I find it a lot easier to punch monsters in ZDoom, I think the range is a bit longer but I haven't tested this extensively.

I imagine that there are many subtle differences in monster behaviour etc. that will feel a little "off" if you're really used to vanilla. However for the most part it can come very close. True vanilla Doom fidelity is not a goal of ZDoom anyhow.

The mouse feel is a strange one as the ZDoom guys are adamant it's handled in the same way as vanilla. Perhaps it's to do with screen updating or something...

What are DHE files? I've never even heard of them. Must be before my time.

As far as vanilla tricks go; I do remember there was an issue with the crate in the first big room in Suspended in Dusk. When I brought it to their attention they fixed it in ZDoom so at least they have an interest making sure the engine's still compatible with the old classics.

The general rule is (and has always been), if you don't perform a scientific experiment comparing the two, you shouldn't notice a difference between ZDoom and vanilla.

To elaborate on some things said:

plums said:
Some editing hacks for vanilla don't work right or at all in ZDoom, or especially in GZDoom, especially things that involve superimposed sectors. Generally there are alternate, non-vanilla compatible ways to implement these in ZDoom.

ZDoom uses a renderer quite close to that used in vanilla. It should be able to handle all of the rendering tricks provided the textured automap is turned off. It may be difficult or impossible for GZDoom to emulate the behavior, but ZDoom should be able to.

plums said:
I find it a lot easier to punch monsters in ZDoom, I think the range is a bit longer but I haven't tested this extensively.

There's a compat option for this IIRC, but ZDoom calculates the melee attack based on the hit box and not the diagonals. This is an essential change to allow melee attacks to function on large monsters like mod authors would expect.

plums said:
I imagine that there are many subtle differences in monster behaviour etc. that will feel a little "off" if you're really used to vanilla. However for the most part it can come very close. True vanilla Doom fidelity is not a goal of ZDoom anyhow.

ZDoom uses a much better random number generator so that's probably the largest source of the little "off." Even if we added an option to use vanilla's horrible RNG, it would still be off since we don't call the RNG the same number of times. There have been small problems with the DECORATE definitions, but they get fixed when they're known of course.

Dragonsbrethren said:
but it still defaults to ZDoom behavior for backwards compatibility

Actually it's the opposite, the compat flags reintroduce bugs that old mods may rely on. The defaults are what we believe provides the best play experience for users. Especially mod authors, since many of the bugs fix things to make logical sense. (Like the melee range.)

Dragonsbrethren said:
Also I'm annoyed that there are no easy settings for Heretic/Hexen/Strife behavior. I don't know those games nearly as well so I have no idea what flags I should be setting for something resembling vanilla behavior.

No one is really familiar with what these flags should be. This is the only reason there's no preset.

Average said:
The mouse feel is a strange one as the ZDoom guys are adamant it's handled in the same way as vanilla. Perhaps it's to do with screen updating or something...

With cl_capfps on things should feel about the same. I don't recall us saying anything about mouse input being the same (mouse input is basically useless on every DOS game I've played), but the actual player movement should be using the same or very similar algorithms.

Average said:
I do remember there was an issue with the crate in the first big room in Suspended in Dusk.

This was caused by ZDoom using the GL nodes when the textured automap feature is being used. I believe this is handled by the automatic compatibility stuff now.

Blzut3 said:
ZDoom uses a renderer quite close to that used in vanilla. It should be able to handle all of the rendering tricks provided the textured automap is turned off. It may be difficult or impossible for GZDoom to emulate the behavior, but ZDoom should be able to.

(GZDoom's SW renderer behaves exactly like ZDoom, right?)

I'm sure I've seen some terrible implementations of "very deep water" that work in vanilla but not ZDoom. In most cases it's pretty esoteric stuff and can be handled a lot better by Boom features, or even better vanilla implementations, so rarely needed. But of course you can't count on wad authors always doing what's best...

That said I just tried out MCFEARSM.wad in ZDoom and to my surprise the "reflective floor" trick works fine, so perhaps it's only truly edge cases at worst that don't work.

There's a compat option for this IIRC, but ZDoom calculates the melee attack based on the hit box and not the diagonals. This is an essential change to allow melee attacks to function on large monsters like mod authors would expect.

"Use Doom code for hitscan checks". Thanks, I'd somehow overlooked it. While it makes sense in terms of expected behaviour, I find that there are often situations where I can punch across gaps that I'm clearly not meant to. Also I use PrBoom+ a fair bit these days for FDAs etc and always end up flailing like an idiot when trying to punch demons :P

That's always a problem - and an attitude that can't be driven out of some modders' heads.
Those people need to realize that using hacks to create an effect produces a potentially unstable product - especially if they do not know WHY these hacks work in the first place.

With that knowledge it'd be a lot less problematic.
For example, I can build self referencing sector structures as complex as I like, since I know precisely how and why they work I could guarantee that they'd never break, even with GZDoom's hardware renderer.

Still we get lots and lots of mods where they just work by pure chance and even a simple node rebuild would throw them off the tracks.

The best example for this would be the crane in Phobos:Anomaly Reborn's E1M3. The map contains a small mapping error (barely noticable with the software renderer due to HOM effects covering it up but very visible in GZDoom) but I have been unable to fix that error without destroying the crane. To really fix the map I also had to modify the crane's self referencing sectors in a way that doesn't depend on how the node builder is configured.

Blzut3 said:
This was caused by ZDoom using the GL nodes when the textured automap feature is being used. I believe this is handled by the automatic compatibility stuff now.

No, and I don't see how it'd be possible to do it.
1. Either force disable textured automap, which is a trade-off people who like textured automap might rather not do;
2. Or somehow make it so that the original nodes are used for rendering and the GL nodes are used only for the automap, which I was told is not possible since the automap uses the renderer's info to know which subsectors have been seen.The issue is still open.

I always wonder why ZDoom even has that "monsters see invisible players" compatibility option at all. SNES Doom is about the only version of Doom I know where monsters can't see you when you're invisible. Is it for Hexen/Strife compatibility or something? I admit that I never play those games.

The most significant, irreversible changes when comparing ZDoom with vanilla is that ZDoom made arch-viles invulnerable to their own attacks (they used to be able to damage themselves if they were too close to their targets when they blew them up), and lost souls now focus on their targets, whereas vanilla lost souls would strike only once at monsters that struck them, then would forget and return to attacking the player. Having compatibility options for these features would be nice, especially with the lost souls, since that was a unique, special trait of theirs.

And I doubt it can really be helped without rewriting the movement code, but it always seemed like arch-vile jumps gave you a lot more air in ZDoom than in vanilla, potentially letting you reach ledges you wouldn't have been able to in the classic engine.

Another minor yet obnoxious bit of ZDoom behavior for vanilla enthusiasts: DoomGuy's face. If you hold the fire button down long enough, DoomGuy will start gritting his teeth as he unleashes a torrent of bullets. However, his facial expression seems to be tied to the actual button press in ZDoom, where in vanilla, it seems to be tied to the animation frames of the weapon instead. Why does this matter? Because holding down the fire button for rapid fire reduces the accuracy of your shots. In vanilla, if you saw DoomGuy gritting his teeth, you know your accuracy is reduced, and you have to let go of the trigger for it to reset itself. Once DoomGuy's face is back to normal, the next shot will be accurate. But in ZDoom, if you let go of the fire button at any time, even in the middle of a weapon animation, DoomGuy will go back to his normal expression, even if he's actually still in the middle of a reduced-accuracy, rapid-fire rampage. A really tiny detail, but it still throws me off sometimes.

But again, those are really tiny things. Overall, ZDoom has gone a long way to give the player the opportunity to play Doom as it once was. There may still be some rarely-used vanilla tricks that don't quite operate properly in ZDoom. (Didn't some Memento Mori map require a spechits overflow? Not sure ZDoom could emulate that.) But in the end, I imagine most vanilla maps will work fine and play as the designers intended.

Now we just need to have people stop making "vanilla" maps while only using ZDoom to playtest them....

And, of course, if you really want brutal authenticity with your Doom experience, that's what DOSBox and Chocolate Doom are for. :)

Megamur said:
I always wonder why ZDoom even has that "monsters see invisible players" compatibility option at all. SNES Doom is about the only version of Doom I know where monsters can't see you when you're invisible. Is it for Hexen/Strife compatibility or something? I admit that I never play those games.

That feature was inherited from Heretic. The reason for the compatibility flag is historic. Some ill-motivated decision 10-15 years ago gave the same behavior to Doom's invisibility item.

Fully reverting was deemed undesirable because some ZDoom mods make use of it and some people actually like it. That's why it is an option. It can be set by the user and the mapper.

Megamur said:
And I doubt it can really be helped without rewriting the movement code, but it always seemed like arch-vile jumps gave you a lot more air in ZDoom than in vanilla, potentially letting you reach ledges you wouldn't have been able to in the classic engine.

But again, those are really tiny things. Overall, ZDoom has gone a long way to give the player the opportunity to play Doom as it once was. There may still be some rarely-used vanilla tricks that don't quite operate properly in ZDoom. (Didn't some Memento Mori map require a spechits overflow? Not sure ZDoom could emulate that.) But in the end, I imagine most vanilla maps will work fine and play as the designers intended.

AV Jump: height fixed in like a 2009 rev of ZDoom
Spechits: you are thinking of STRAIN's MAP07 i think? and ZDoom played it just fine when I played it last, probably two years ago or so.

Edit: but anyone wanting to use a spechits overflow for a trick would require another exception be added

I actually enjoy playing the game at it's original resolution. In fact, if my netbook supported such a low resolution in OpenGL I'd happily run GZDoom that low too! I find it charming to have lots of eye candy (I run Cosmetic Doom with the SBrightmap pack) with a blazing fram rate but the good old 320 resolution. Dunno why. Age I suppose.

So, it seems that ZDoom is pretty close these days. Other than a few small tweaks here and there (I suppose the biggest being the monster size) there doesn't seem to be that much difference. It's nice to see that ZDoom has come close over the past few years. I remember, not so long ago, people constantly pointing out differences between the two. Good for the Zdoom guys for addressing these 'issues'.

It's very interesting to me as I never played vanilla back in it's heyday. I wasn't introduced to Doom until sourceports started showing up on the Amiga so was never aware of the vanilla idiosyncracies therefore it's harder for me to intuitively pick out differences. That's why I asked as they both (vanilla and ZDoom) felt pretty close to me.

I do wish there was a quick option of choosing 'vanilla' gameplay though...

kmxexii said:
Spechits: you are thinking of STRAIN's MAP07 i think? and ZDoom played it just fine when I played it last, probably two years ago or so.

Edit: but anyone wanting to use a spechits overflow for a trick would require another exception be added

The Strain map only works because the blocking line behind the teleporter is explicitly unblocked. ZDoom cannot emulate a spechits overflow. I first tried to 'fix' Strain MAP07 by doing that and it ran into other safeguard code so ultimately the only course of action was to add a handler that could change the flags of a specific linedef in the map.

Graf Zahl said:
The Strain map only works because the blocking line behind the teleporter is explicitly unblocked. ZDoom cannot emulate a spechits overflow. I first tried to 'fix' Strain MAP07 by doing that and it ran into other safeguard code so ultimately the only course of action was to add a handler that could change the flags of a specific linedef in the map.

Well, that's interesting. I thought that it was a purposeful special effect, not a happy coincidence where a map bug fixed a map bug. Which only figures, as according to the wiki, "Ultimately this can lead to demo desyncs with players or monsters passing through impassible linedefs and such", which kind of flies in the face of vanilla compatibility in the first place.

Also, re: gritting teeth, that's an odd thing to single out for me, because it never bothered me, plus that phenomenon only affects pistols and chainguns.

Megamur said:Another minor yet obnoxious bit of ZDoom behavior for vanilla enthusiasts: DoomGuy's face. If you hold the fire button down long enough, DoomGuy will start gritting his teeth as he unleashes a torrent of bullets. However, his facial expression seems to be tied to the actual button press in ZDoom, where in vanilla, it seems to be tied to the animation frames of the weapon instead.[/B]

I wonder why things like this were changed in ZDoom in the first place?!

kmxexii said:
Also, re: gritting teeth, that's an odd thing to single out for me, because it never bothered me, plus that phenomenon only affects pistols and chainguns.

DoomGuy gritted his teeth if you held down the fire button with any weapon in vanilla, even the super shotgun, and he'd keep his teeth gritted until the firing animation was fully completed. Then you knew the next shot would be accurate. I find this indicator mostly useful for the pistol, but also for the shotgun, since after the cocking animation completes, it takes a bit longer for the gun to "reset" to its normal, bobbing state than you'd think.

But again, that's a really small thing that only an obsessive vanilla player would notice or complain about.

Now I just wish I knew what ZDoom compatibility settings were most accurate to Xbox 360 Doom II, so No Rest for the Living would work entirely as intended.

XBLA gameplay should be pretty damn close to vanilla. They may have inadvertently altered some behavior, and there might be a few Linux Doomisms in there still, but they were definitely trying to be faithful to the original.

The source is available (part of Doom 3 BFG Edition) if you want to go looking for any specific changes.

One other difference in ZDoom that doesn't seem like you can undo: rocket jumping. In vanilla, explosions always blow you backwards. In ZDoom, however, seemingly regardless of compatibility settings, explosions have a chance of flinging you into the air. This is rare, of course, but I've had it happen before. When I was standing on a ledge above a cyberdemon, a rocket flew up and impacted with me, and kicked me high enough into the air that I was unintentionally able to grab an item from a platform above me. It's like a miniature arch-vile jump. This would never happen in vanilla.