[Won't change] some compatibility stuff

Moderator: GZDoom Developers

some compatibility stuff

Postby TimeOfDeath » Tue Feb 16, 2010 11:16 am

Some small things I noticed, here's an example wad: bump.wad
V = vanilla (grey ash)
Z = ZDoom (brown ash)

1-map01 runs in prboom-plus but won't run in ZDoom because some linedefs have no sides/no front sector (map01 and map02 are the same except those linedefs are deleted in map02)

2-in vanilla, you can bump into walls to grab items from a farther distance away than in newer ZDoom versions (ZDaemon has vanilla behaviour, so I assume it was changed intentionally in ZDoom after v1.23). In the bump wad, you can grab the key from all sides in vanilla, but only from the south and west side in ZDoom.

3-in vanilla, you can wallrun north or east on things but you can't wallrun in any direction on things in ZDoom.

4-in vanilla, you can wallrun north like usual, but also east on a double-sided impassible line (only if the line's sector is less than 25 units higher than the sector the player is standing on)
TimeOfDeath
 
Joined: 09 Apr 2006

Re: some compatibility stuff

Postby Gez » Tue Feb 16, 2010 11:35 am

I have a not-completely-tested thingrunning patch for ZDoom (uses normal wallrunning compat flag). If it works well with your test map I may submit it.


I also have a working Boom sector lighting patch (uses a new compat flag), here included. Though you didn't talk about that point, there is a difference in the way Doom (and ZDoom) search for the max light in neighboring sector and the way Boom does it. (Though thinking about it, Boom fixed a bug here so maybe I should have made the patch the other way around; as a Doom compat setting instead of a Boom one.)
Gez
 
 
 
Joined: 06 Jul 2007

Re: some compatibility stuff

Postby Graf Zahl » Tue Feb 16, 2010 11:43 am

I'll check the patch. As for the report:

1. is a fatal condition. PrBoom may hack around it but it's still a map bug.
2. not a bug - and not easily revertable without reintroducing a shitload of buggy code.
3. Yeah, whatever. Don't expect Randy and me to lose any sleep over it. The code is such a mess that we won't touch it for that.
4. See 3.
User avatar
Graf Zahl
Lead GZDoom Developer
Lead GZDoom Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: some compatibility stuff

Postby Gez » Tue Feb 16, 2010 11:54 am

Graf Zahl wrote:1. is a fatal condition. PrBoom may hack around it but it's still a map bug.

Failing gracefully with a console message telling the map is invalid (similar to the "no player 1 start" one) would be better than crashing, though.
Gez
 
 
 
Joined: 06 Jul 2007

Re: some compatibility stuff

Postby Graf Zahl » Tue Feb 16, 2010 12:52 pm

That's what normally happens. ZDoom refuses to start a map with such a problem.
User avatar
Graf Zahl
Lead GZDoom Developer
Lead GZDoom Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: some compatibility stuff

Postby Gez » Tue Feb 16, 2010 1:05 pm

Interesting. I tested it with the "untouched" ZDoom 2.4.1 and it crashed. But in my "test" ZDoom it doesn't. I guess one of the bugfixes between r2125 and r2162 solved it.

Even more interesting, if I open the map in both the official version (without getting past the title screen), then the custom version, then alt-tab back to the official version, then it doesn't crash either when starting a new game. Weird. Alt-tabbing to another application and back doesn't avoid the crash. Only having another instance of ZDoom running solves it. This is very strange.
Gez
 
 
 
Joined: 06 Jul 2007

Re: some compatibility stuff

Postby printz » Tue Feb 16, 2010 8:03 pm

Graf Zahl wrote:3. Yeah, whatever. Don't expect Randy and me to lose any sleep over it. The code is such a mess that we won't touch it for that.
With compatibility options, only wall-running can be emulated, while thing-running is completely another matter, so it's not possible for now? Or was it merely forgotten when the compat flag was added?
User avatar
printz
BOW BEFORE ME!
 
Joined: 26 Oct 2006
Location: Bucharest, Romania

Re: some compatibility stuff

Postby Xaser » Tue Feb 16, 2010 11:35 pm

The "enable wallrunning" option really acts as more of a "screw with the physics" toggle, which either enables some old botchy code or disables some newer stuff. It's not likely at all that this old code will be changed to accommodate for any sort of glitch (as useful as wallrunning is on occasion). In short, no, it won't be changed.
User avatar
Xaser
anarchivist
 
 
 
Joined: 20 Jul 2003

Re: some compatibility stuff

Postby TimeOfDeath » Wed Feb 17, 2010 12:08 am

Thanks for reading. These were just small things that I noticed could make a vanilla map unplayable in zdoom. I'm sure there aren't many, if any, other maps that require you to bump a thing or wallrun against a thing, etc. to exit. Just thought I'd mention these things if more compatibility flags were desired. :)
TimeOfDeath
 
Joined: 09 Apr 2006

Re: some compatibility stuff

Postby Zippy » Wed Feb 17, 2010 12:38 am

Xaser wrote:The "enable wallrunning" option really acts as more of a "screw with the physics" toggle, which either enables some old botchy code or disables some newer stuff. It's not likely at all that this old code will be changed to accommodate for any sort of glitch (as useful as wallrunning is on occasion). In short, no, it won't be changed.
Right. And compatibility isn't just some kind of euphemism here, either. It's there because some old, historical wads relied upon the behavior and hence to be compatible with ZDoom there needs to be a toggle for this behavior. No new maps should ever be created for ZDoom with the idea that they will rely on broken, compatibility option behavior.

Anybody who wants any hope of a compatibility option could build their best argument by gathering enough old wads (of historical interest, really) that require the broken behavior the option would give. If you can't show there are wads worth keeping the broken behavior around for, then the behavior just isn't going to be kept.
User avatar
Zippy
Your Golden Boy
 
Joined: 23 Mar 2005
Location: New Jersey
Discord: Zurock#4834

Re: some compatibility stuff

Postby Graf Zahl » Wed Feb 17, 2010 2:36 am

Zippy wrote:It's there because some old, historical wads relied upon the behavior and hence to be compatible with ZDoom there needs to be a toggle for this behavior. No new maps should ever be created for ZDoom with the idea that they will rely on broken, compatibility option behavior.


Correct. And that's the reason why this - unlike most other compatibility options - can not be set in MAPINFO. It's just too invasive and replaces a relatively stable implementation of the movement code with one that tends to produce glitches rather quickly.

You are also correct that compatibility options will only be added if it's really necessary to play old WADS.

On the other hand I am very reluctant to add some to make more recent WADs work that don't work anymore because their makers thought that they are smarter than the engine developers. The engine would explode if we had to add workarounds for every single mapping bug that exists. A good example for this is problems with teleporting to map spots. Hint: Teleport destinations exist for good reasons!
User avatar
Graf Zahl
Lead GZDoom Developer
Lead GZDoom Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: some compatibility stuff

Postby TimeOfDeath » Wed Feb 17, 2010 5:39 am

I agree - I figured these things would be more suitable for the compatibility options menu, if anything.
Whether a wad is old or new, if it is designed for vanilla behavior it will be incompatible & unplayable with ZDoom if it has stuff in it like the bump wad has.
I'm not saying I think you guys should put these options in - only if you want to, because there are people who make wads designed for vanilla or boom behavior and there are a bunch of compat options already. :)

1. Whether it's a bug or intentional by the mapper, prboom can play the map but zdoom can't. :)
2. 3. 4. By 'buggy code' do you mean 'vanilla code'? A lot of maps (old and new) have parts where you can bump items (like keys) to beat the map quicker (sometimes unintentional by the mapper, but sometimes intentional). I'm not sure of any maps where bumping an item is required (except the wad I posted), but I wouldn't be surprised if there are some.

I admit I've used map spots as teleport destinations before, but I tried that wad in 2.4.1 and it still worked (will it be broken in the future?). I didn't think I was smarter than the devs though - just that I thought map spots were used for scripts or something (lol noob @ me).
TimeOfDeath
 
Joined: 09 Apr 2006

Re: some compatibility stuff

Postby Graf Zahl » Wed Feb 17, 2010 5:48 am

The thing with these issues is that it's not that simple. They often depend on several bugs/glitches in the engine working together. The wallrunning code is easily reactivated but many of these things aren't that easy. Doom's original movement code was a complete and utter mess. It's so badly designed that it's a miracle that it works at all.

Now, if you try to make the code more robust many of these exploits stop working and sometimes you don't even notice. And then try later to re-add it. Especially the item bumping is a victim of that. Skulltag duplicates the entire collision detection code to re-enable the plasma-bump in Doom's MAP01 but that's not an option for ZDoom. It'll only complicate matters to a point where maintenance becomes a problem.
User avatar
Graf Zahl
Lead GZDoom Developer
Lead GZDoom Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: some compatibility stuff

Postby Gez » Wed Feb 17, 2010 5:59 am

TimeOfDeath wrote:I'm not sure of any maps where bumping an item is required (except the wad I posted)

Technically, it's not required. You can jump on the platform to reach the key. ;)

Also, about my tentative thingrunning code? Here's the result of my test:
- ZDoom with wallrunning off: doesn't even reach a third of the distance to the door before it closes
- ZDoom with wallrunning on: makes a about three quarters of the distance (so it's better), but still not enough.
- Eternity: reach 95% of the distance to the door. Either I suck at thingrunning anyway or Eternity's collision code was changed a bit as well and this map is impossible in it.

Anyway, despite my compatibility toggle, thingrunning remains far from being as fast as it should, so it's not working, and therefore I'll just drop it.

TimeOfDeath wrote:I didn't think I was smarter than the devs though - just that I thought map spots were used for scripts or something (lol noob @ me).

They are used for scripts. This doesn't mean they replace the other actors. Teleport destinations have special code in them that makes them the best choice by far for teleport destinations, oddly enough. Map spots are devoid of any special code. There are some cases in which a teleport to a map spot still works; but really you should use teleport destinations anyway. Just because something works for a purpose doesn't mean it's better than the specialized actor. :P
Gez
 
 
 
Joined: 06 Jul 2007

Re: some compatibility stuff

Postby TimeOfDeath » Wed Feb 17, 2010 11:11 am

You can wallrun even faster if you sr50 during the wallrun. :)
I tried in Eternity and it felt the same as in prboom-plus (you can make it through the door before it closes). I'm pretty sure that wallrunning against things or an impassible double-sided line (the kind of line I mentioned in the first post) is a bit faster than wallrunning against a normal wall - in vanilla/boom, things and impassible lines seem to have that same "slide like butter" feeling when you move against them. I tried deleting the things and moved the wall closer, but I couldn't get through the door before it closed (while wallrunning against the normal wall).

If you delete the things. move the wall closer and wallrun against it, does it give you the same effect as the thingrunning code you made?
TimeOfDeath
 
Joined: 09 Apr 2006

Next

Return to Closed Feature Suggestions

Who is online

Users browsing this forum: MSN [Bot] and 1 guest