Alien Vendetta compatibility problem: items heights

Bugs that have been investigated and resolved somehow.

Moderator: GZDoom Developers

Forum rules
Please don't bump threads here if you have a problem - it will often be forgotten about if you do. Instead, make a new thread here.
Post Reply
Guest

Alien Vendetta compatibility problem: items heights

Post by Guest »

Several Alien Vendetta maps have items whose height (z-coordinate) behave in the latest version of ZDoom in ways incompatible with the original Doom2.exe. Here's the Doomworld thread about it: http://www.doomworld.com/vb/wads-mods/5 ... ul-sphere/
Gez
 
 
Posts: 17835
Joined: Fri Jul 06, 2007 3:22 pm

Re: Alien Vendetta compatibility problem: items heights

Post by Gez »

This thread isn't convincing.
In several Windows ports I've tried (zdoom, jdoom, even chocolate doom)
Edit : ah, ok, I get it. There's a much more complicated way that doesn't involve an AV jump to reach that secret, and that complicated way (linedef 771, then linedef 1392) is the intended behavior. Doing it that way, the soulsphere is available.
It seems to me there was no bug, just a misunderstanding. There's nothing in that thread about ZDoom behavior differing from vanilla.
User avatar
Xaser
 
 
Posts: 10772
Joined: Sun Jul 20, 2003 12:15 pm
Contact:

Re: Alien Vendetta compatibility problem: items heights

Post by Xaser »

This is actually due to an oddity/bug in the way vanilla Doom treats things in sectors. If part of a thing's bounding box lies inside a sector with a higher floor than the sector the thing's center of mass resides in, it will instantaneously switch heights if a nearby sector (not exactly sure how 'far away' said sector must be to trigger this behavior) has an action performed on it (e.g. a door opens, a floor rises, etc. Not many ports emulate this behavior except when strict compatibility options are set.

4-mer's post in the linked thread has a slightly clearer explanation of the phenomenon. The soulsphere's early appearance in AV28 is caused by a nearby door opening, and (whether intentional or not) only occurs erroneously because of this engine quirk.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49072
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: Alien Vendetta compatibility problem: items heights

Post by Graf Zahl »

Dooms original code to adjust thing heights when a door moves was an atrocious piece of shit that checked every single actor in each blockmap block that touched the moving sector. That means anything with a distance of 128 map units to the outer bounding box of the sector could have been affected.

See Boom's P_CheckSector vs P_ChangeSector. That function is definitely WTF-worthy in its oversimplistic (and slow) implementation.
User avatar
Xaser
 
 
Posts: 10772
Joined: Sun Jul 20, 2003 12:15 pm
Contact:

Re: Alien Vendetta compatibility problem: items heights

Post by Xaser »

Graf Zahl wrote:Dooms original code to adjust thing heights when a door moves was an atrocious piece of shit that checked every single actor in each blockmap block that touched the moving sector. That means anything with a distance of 128 map units to the outer bounding box of the sector could have been affected.
Ah, thanks for clearing that up. I'd noticed it a few times in the vanilla map I'm working on and finally had to resort to moving a lot of things around since I wasn't sure what the acceptable range was. Helluva hack, either way.
Guest

Re: Alien Vendetta compatibility problem: items heights

Post by Guest »

It seems to me there was no bug, just a misunderstanding. There's nothing in that thread about ZDoom behavior differing from vanilla.
The thread meanders a bit as people were trying to figure out what was going on, but in the end,

1. The Soul Sphere is attainable when playing the map using Doom2.exe (or Chocolate Doom)
2. The Soul Sphere is not attainable when playing on Zdoom, for the reasons explained by Graf Zahl.
Dooms original code to adjust thing heights when a door moves was an atrocious piece of shit that checked every single actor in each blockmap block that touched the moving sector. That means anything with a distance of 128 map units to the outer bounding box of the sector could have been affected.
Even if you don't think it's a good idea to re-introduce this behavior as a compatibility option, is there any chance of adding a compatibility.txt exception, just for AV map 28 (and, possibly, map 10), like there is for WADs that rely on ghost monsters? It's a shame when "legendary" WADS like AV don't play quite right on modern ports.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49072
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: Alien Vendetta compatibility problem: items heights

Post by Graf Zahl »

Isabella Chengerlan wrote:It's a shame when "legendary" WADS like AV don't play quite right on modern ports.

One can also say that it's a shame when the makers of said 'legendary' WADs didn't give a damn about the ports in existence at the time of release. All the problems AV has were already apparent on Boom and any other port that existed back in 2000-2002.
Guest

Re: Alien Vendetta compatibility problem: items heights

Post by Guest »

One can also say that it's a shame when the makers of said 'legendary' WADs didn't give a damn about the ports in existence at the time of release. All the problems AV has were already apparent on Boom and any other port that existed back in 2000-2002.
I'm not disagreeing, and I'm certainly not trying to lay any blame on ZDoom's feet. I too wish WAD authors had been more conscientious of the trouble they would cause when they made "clever" use of engine bugs.

But the fact of the matter is that buggy WADs are out there, and are popular. You're right that ZDoom has no obligation to accommodate other people's mapping errors... but on the other hand, surely it's a feather in ZDoom's cap if it can play these WADs "the way they were meant to be played," even if that way relied on fundamentally buggy behavior?
User avatar
NeuralStunner
 
 
Posts: 12326
Joined: Tue Jul 21, 2009 12:04 pm
Preferred Pronouns: He/Him
Graphics Processor: nVidia with Vulkan support
Location: capital N, capital S, no space
Contact:

Re: Alien Vendetta compatibility problem: items heights

Post by NeuralStunner »

Xaser wrote:This is actually due to an oddity/bug in the way vanilla Doom treats things in sectors. If part of a thing's bounding box lies inside a sector with a higher floor than the sector the thing's center of mass resides in, it will instantaneously switch heights if a nearby sector (not exactly sure how 'far away' said sector must be to trigger this behavior) has an action performed on it (e.g. a door opens, a floor rises, etc.
One thing I have noticed in heretic's E1M2 that always irks me. At one point there's a lowering wall on either side of a small room, and one of the Claw Orbs in there exhibits this weirdness. Looks horrible.

Also is this at all related to the Imp Stack* oddity?


* Bonus Pants for getting the reference! : P
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49072
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: Alien Vendetta compatibility problem: items heights

Post by Graf Zahl »

I did some checks but I don't think this is addressable without completely messing up ZDoom's physics code so since it isn't critical it's 'won't change' unless someone comes up with a map that really gets broken.
Post Reply

Return to “Closed Bugs [GZDoom]”