[Won't change] Alien Vendetta compatibility problem: items heights

Bugs that have been investigated and resolved somehow.

Moderator: GZDoom Developers

Alien Vendetta compatibility problem: items heights

Postby Isabella Chengerlan » Thu Sep 09, 2010 10:48 am

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/
Isabella Chengerlan
 

Re: Alien Vendetta compatibility problem: items heights

Postby Gez » Thu Sep 09, 2010 11:05 am

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.
Gez
 
 
 
Joined: 06 Jul 2007

Re: Alien Vendetta compatibility problem: items heights

Postby Xaser » Thu Sep 09, 2010 11:09 am

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
Xaser
anarchivist
 
 
 
Joined: 20 Jul 2003

Re: Alien Vendetta compatibility problem: items heights

Postby Graf Zahl » Thu Sep 09, 2010 11:14 am

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
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: Alien Vendetta compatibility problem: items heights

Postby Xaser » Thu Sep 09, 2010 11:18 am

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.
User avatar
Xaser
anarchivist
 
 
 
Joined: 20 Jul 2003

Re: Alien Vendetta compatibility problem: items heights

Postby Isabella Chengerlan » Thu Sep 09, 2010 12:35 pm

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.
Isabella Chengerlan
 

Re: Alien Vendetta compatibility problem: items heights

Postby Graf Zahl » Thu Sep 09, 2010 12:58 pm

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.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: Alien Vendetta compatibility problem: items heights

Postby Archie Hezzleleck » Thu Sep 09, 2010 1:41 pm

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?
Archie Hezzleleck
 

Re: Alien Vendetta compatibility problem: items heights

Postby NeuralStunner » Thu Sep 09, 2010 1:55 pm

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
NeuralStunner
not actually a catgirl
 
 
 
Joined: 21 Jul 2009
Location: =o_O=
Discord: NeuralStunner#1293
Operating System: Windows Vista/7/2008 64-bit

Re: Alien Vendetta compatibility problem: items heights

Postby Graf Zahl » Thu Sep 16, 2010 12:19 pm

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.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
 
Joined: 19 Jul 2003
Location: Germany


Return to Closed Bugs

Who is online

Users browsing this forum: No registered users and 1 guest