Old Flying Physics for DOOM/BOOM Compatibility

Moderator: GZDoom Developers

User avatar
Megablast
Posts: 16
Joined: Tue Jul 25, 2017 5:56 am
Contact:

Old Flying Physics for DOOM/BOOM Compatibility

Post by Megablast »

Request to make flying monsters behave in a similar manner to vanilla/boom while using doom/boom compatibility in GZDoom.

Let me just start by saying I very much enjoy using GZDoom for modern Doom WADs and gameplay mods or just some casual play, but there is this one issue that keeps me going back to PRBoom+ for maps designed for Boom compatibility.. And that is flying physics/behavior in GZD (Boom compatibility).
You don't really notice how different GZDoom handles flying monsters until you play tight maps, slaughter maps or maps with flying monsters outdoors. Once you start rocketing Cacodemons swarms they will fly to the moon if the map allows it.. Don't even get me started about Pain Elementals in large environments.

Slaughter maps that include massive amounts of flying monsters in GZDoom just become a huge mess very fast with all the rapid height changes of the monsters, if the new flying physics could be flagged on and off to work like old Doom this port would 100% see more use on the massive amount of Boom content.
One of the most notable examples would be Sunlust map 30 finale, almost unplayable due to how the Pain Elementals behave in GZD.

Here's a few gif examples of the differences.
Simple Example: https://imgur.com/a/I7ePXly
Large Scale Example: https://imgur.com/a/J3tHIXg

Notice enemies are pushed around way more and like to fly upwards in GZDoom? It's not necessarily a good or bad thing and works well with freelook, however when playing maps with tightly designed gameplay around old monster behavior this will drastically change the way many fights play out.
Anyway, would love to hear if this would be a feasible change as it seem pretty straight forward from the outside but I know it may be hard to accomplish depending on how everything is laid out internally.

Maps used in examples if you want to test yourself as it's much more noticeable while playing.
https://www.dropbox.com/s/k14wal1mxk2b8 ... s.zip?dl=0
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: Old Flying Physics for DOOM/BOOM Compatibility

Post by Graf Zahl »

That option already exists under "Compatibility options". Look for "actors are infinitely tall".
User avatar
Megablast
Posts: 16
Joined: Tue Jul 25, 2017 5:56 am
Contact:

Re: Old Flying Physics for DOOM/BOOM Compatibility

Post by Megablast »

Kind of hard to explain.
I don't mean infinite height, that does indeed exist and works perfectly in GZD.

I'm talking about how flying monster move around the environment when when hit by the player or when fighting each other. In GZD they move completely different than in Vanilla or Boom.. In general flying enemies just end up flying much higher and spread out more changing the way encounters play out quite a lot between ports.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: Old Flying Physics for DOOM/BOOM Compatibility

Post by Graf Zahl »

I think that is a direct consequence of the infinite height thing. If not, I couldn't do anything because I have no idea what else may be different.
Most of this kind of changes were made long before I started working on it.
_mental_
 
 
Posts: 3812
Joined: Sun Aug 07, 2011 4:32 am

Re: Old Flying Physics for DOOM/BOOM Compatibility

Post by _mental_ »

This doesn't seem to be related to infinitely tall things. In GZDoom regardless of compatibility settings flying monsters have noticeable vertical momentum when damaged. It's not the case in PrBoom.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: Old Flying Physics for DOOM/BOOM Compatibility

Post by Graf Zahl »

Sounds like a typical Randi-style "improvement" from the early years...
_mental_
 
 
Posts: 3812
Joined: Sun Aug 07, 2011 4:32 am

Re: Old Flying Physics for DOOM/BOOM Compatibility

Post by _mental_ »

This behavior was introduced in ZDoom 1.14 if git blame skills serve me well.

EDIT: Some kind of old "physics" can be achieved by taking this code path. I guess it requires new compatibility flag.
User avatar
Megablast
Posts: 16
Joined: Tue Jul 25, 2017 5:56 am
Contact:

Re: Old Flying Physics for DOOM/BOOM Compatibility

Post by Megablast »

Mental I applaud your efforts!
I was over here with like 15 github pages open for both ZDoom and Doom II pretending I have a clue what I'm looking for while trying to shed some light on this.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: Old Flying Physics for DOOM/BOOM Compatibility

Post by Graf Zahl »

Ugh. That godforsaken thing again.I would have obliterated it entirely long ago if it wasn't for some maps abusing this for 'rocket jumping'.
To be honest, this has been one of ZDoom's most problematic changes ever and one of the few I never touched for the sake of compatibility with a small number of maps depending on it.

What I'd like to do is to give A_Explode some option to fine-tune the behavior and disable this thing by default, except when affecting the player if he's also the shooter (so that the rocket jumping effect isn't lost.

And for vanilla purists there needs to be a compatibility option to fully revert to the classic formula, of course - not just for barrels and boss brains...


Just thinking about it, the mere fact that OLDRADIUSDMG even exists sends a clear message that this never was such a great idea to begin with. It obviously caused problems right from the start.
User avatar
StroggVorbis
Posts: 866
Joined: Wed Nov 08, 2017 4:23 pm
Graphics Processor: nVidia with Vulkan support
Location: Germany

Re: Old Flying Physics for DOOM/BOOM Compatibility

Post by StroggVorbis »

Vertical momentum from knockback is not a bad thing per se, but the direction the monster in question is propelled to can be quite unpredictable, I guess it's because of square instead of spherical collision, no?

This and it's hard to approximate distance on a 3D plane with 2D graphics, I actually always found it hard to hit cacos with the rocket launcher and free look, taking both speeds and directions into account always becomes a wild guess.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: Old Flying Physics for DOOM/BOOM Compatibility

Post by Graf Zahl »

One funny example of what this can cause is if you hit a monster close to its feet. It may make a small jump as a result.
User avatar
Megablast
Posts: 16
Joined: Tue Jul 25, 2017 5:56 am
Contact:

Re: Old Flying Physics for DOOM/BOOM Compatibility

Post by Megablast »

So the explosion knockback is a major component and that alone would be a monumental step for vanilla gameplay but there is another factor at play here I want to look at a bit closer..

Whipped up another little test bed WAD with some flying monsters and a blocking line so you can safely watch them infight: Imgur Album | WAD DL Link
Both screenshots were taken after about 30 seconds of doing nothing but observing. I've been digging around the ZDoom source trying to find the exact cause, this looked interesting but I'm not versed enough in how Doom is put together to tell what's going on.

Flying monsters seem to want to move up when attacking(maybe just melee attacks?) each other so my theory is that somehow when two attack each other they get stuck in a loop and just go straight up together trying to get in range to attack.. Lost souls seem to be the greatest offender.

Edit: Would just like to note for all tests in (G)ZDoom I'm using Boom (Strict) so infinite height and all that is always enabled, this should all be repeatable regardless of comp settings though.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: Old Flying Physics for DOOM/BOOM Compatibility

Post by Graf Zahl »

Megablast wrote: Flying monsters seem to want to move up when attacking(maybe just melee attacks?) each other so my theory is that somehow when two attack each other they get stuck in a loop and just go straight up together trying to get in range to attack.. Lost souls seem to be the greatest offender.

Weren't they doing that in vanilla, too? I can remember from those early years that infighting LostSouls always tended to move towards the ceiling.

The part of code you linked only applies to monsters under gravity, not flying ones.
Gez
 
 
Posts: 17833
Joined: Fri Jul 06, 2007 3:22 pm

Re: Old Flying Physics for DOOM/BOOM Compatibility

Post by Gez »

Yeah, lost souls aim for their target's center point, but do not subtract their own half-height for this -- they're hitting with their lower jaw, if you want. So when two lost souls are infighting, they'll climb a bit with each charge.
Killer5
Posts: 9
Joined: Sun Dec 02, 2018 12:28 pm
Contact:

Re: Old Flying Physics for DOOM/BOOM Compatibility

Post by Killer5 »

Sick I did not realize that vanilla flying monster behavior is already in gzdoom as this is the reason why I have not used the port.

Can you let me know the version of gzdoom and the flag I need to enable in order to enable vanilla flying monster behavior as described in the op of this thread?
Post Reply

Return to “Closed Feature Suggestions [GZDoom]”