Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Spectre01

Lost Soul behaviour in GZDoom

Recommended Posts

Using the latest version feels pretty good as far as behaviour and monster physics are concerned when using a (strict) compatibility mode. However, it seems like Lost Souls do no function as they do in vanilla with their attacks. In vanilla/boom they will switch targets to attack you even while infighting among themselves. Currently in GZDoom, Lost Souls infight the same way as other enemies and do not attack you until the enemy that pissed them off dies. This makes them, and by extension Pain Elementals, less dangerous in GZDoom than in vanilla-style ports even when using (strict) compat settings. Also, trees and decorations blocking projectiles by default can mess up some maps but that's going off topic.

Share this post


Link to post

Ugh...

The ghosts of the distant past. This comes from ancient ZDoom times when Heretic support was added to ZDoom and some very poor decisions about feature prioritization were made. Back then (around 2001) in too many cases Doom got "improved" by merging features together and then using Heretic's "advanced" handling. In this case the behavior of Heretic's Gargoyles was chosen over the Lost Soul's, which is subtly different.

A lot of these things were introduced at this time and I'm not sure how many are still undetected.

 

Of course this poses a significant problem now: Fix it and risk some mod breakage or add yet another compatibility option for something many users would consider more or less esoteric.

 

6 hours ago, Spectre01 said:

Also, trees and decorations blocking projectiles by default can mess up some maps but that's going off topic.

 

There's an option to switch this off, which should be activated by strict compatibility.

Share this post


Link to post

A fix was just applied - but only for the Lost Soul - not for custom monsters. This is one case where I do not really see the point of a compatibility option. It was flat out incorrect behavior here that was being used here.

 

Share this post


Link to post
4 minutes ago, Graf Zahl said:

A fix was just applied - but only for the Lost Soul - not for custom monsters. This is one case where I do not really see the point of a compatibility option. It was flat out incorrect behavior here that was being used here.

 

While you're at it, I've heard some mentions of the fact that the monster behavior when using partial invisibility is also different from other ports/vanilla. Thoughts on this one?

Share this post


Link to post

After the recent changes to the flying enemies in GZDoom, it has now become a "good enough" port for me in terms of accuracy. I have started using GZdoom more for vanilla/boom/MBF stuff now.

Share this post


Link to post
6 minutes ago, Pegg said:

what was the change? @ReaperAA

 

A compatibility option was added that enables/disables vanilla explosion and flying physics.

 

Now what would I like to see after this... what about vanilla movement/running speed? @Graf Zahl thoughts?

Share this post


Link to post

OFF TOPIC:

The resemblance of Pegg's and Seed's avatars gave me a good laugh.

 

Now Back to topic:

 

3 hours ago, seed said:

A compatibility option was added that enables/disables vanilla explosion and flying physics.

 

^This is the change I was talking about.

 

3 hours ago, seed said:

Now what would I like to see after this... what about vanilla movement/running speed? @Graf Zahl thoughts?

 

Hmm... isn't that already the same? Atleast I didn't notice any difference in movement speed.

Share this post


Link to post

Walking and running speeds are actor properties, the DoomPlayer of course uses the original values. There's one other thing to consider:

 

GZDoom uses a timer with nanosecond precision and is capable of getting a precise 35 gametics per second (if the underlying OS provides such a timer, that is), while everything that uses a millisecond timer (e.g. SDL_GetTicks) will be 1.5% off.

 

Share this post


Link to post
1 hour ago, Graf Zahl said:

Walking and running speeds are actor properties, the DoomPlayer of course uses the original values. There's one other thing to consider:

 

GZDoom uses a timer with nanosecond precision and is capable of getting a precise 35 gametics per second (if the underlying OS provides such a timer, that is), while everything that uses a millisecond timer (e.g. SDL_GetTicks) will be 1.5% off.

 

That's some neat timer right there.

 

1 hour ago, ReaperAA said:

Hmm... isn't that already the same? At least I didn't notice any difference in movement speed.

 

Walking is a bit difficult to notice, but I personally do think I feel a difference in speed. It always felt faster to me in ZDoom and I was wondering why that was.

 

But apparently

 

1 hour ago, Graf Zahl said:

the DoomPlayer of course uses the original values.

 

Hm.

Share this post


Link to post
18 minutes ago, seed said:

Walking is a bit difficult to notice, but I personally do think I feel a difference in speed. It always felt faster to me in ZDoom and I was wondering why that was.

 

Faster compared to what? I have no idea how the timers in other ports deal with the fact that a millisecond timer cannot exactly produce a 35 fps frequency, so it may just have been that - it was changed in GZDoom last year when we switched to the C++11 timer interface which is more modern and lower resolution.

 

Share this post


Link to post
8 minutes ago, Graf Zahl said:

Faster compared to what? I have no idea how the timers in other ports deal with the fact that a millisecond timer cannot exactly produce a 35 fps frequency, so it may just have been that - it was changed in GZDoom last year when we switched to the C++11 timer interface which is more modern and lower resolution.

 

Compared to ports like Crispy, Choco, Retro, and of course, PrBoom+ . I don't know why, but that's been my perception ever since I tried other ports apart from ZDoom. Running just feels faster to me in ZDoom (from 2.8.1 all the way to 4.1.3) than in the others, especially strafing.

 

Could it just be a matter of perception that I can't explain?

Share this post


Link to post

I really cannot say. If it's also in 2.8.1 it means that all the recent changes, like converting the entire engine to floating point did not introduce it and it's also not the timer change.

 

This will require a little bit of testing with player velocity output.

 

Share this post


Link to post
13 minutes ago, Graf Zahl said:

I really cannot say. If it's also in 2.8.1 it means that all the recent changes, like converting the entire engine to floating point did not introduce it and it's also not the timer change.

 

This will require a little bit of testing with player velocity output.

 

My only worry is not to waste your time with this.

 

But that's how I perceive it honestly, in all the other ports I've used/am using it feels slower, with ZDoom as the odd one. Someone did tell me that the difference might be related to the velocity that gets applied, as the speed itself is otherwise the same across the ports.

Share this post


Link to post

Don't worry, it didn't take too much time. I just ran the test with both PrBoom+ and GZDoom and can assure you that the maximum reachable velocity is identical in both: 7.55 for walking and 15.1 for running.

 

Share this post


Link to post

I agree, there were bugs sure but not that many. You could try ZDoom LE which is/was mostly a maintenance version of 2.8.1.

Share this post


Link to post

I wonder about what kind of bugs you're talking about though.

 

I've sure been playing Hexen WADs like a madman recently and apart from a silly thing here and there it seems fine, stable too. Maybe I'm looking somewhere else.

Share this post


Link to post
23 hours ago, Graf Zahl said:

There's an option to switch this off, which should be activated by strict compatibility.

This is true but also something I think is not very clear to the average Joe who leaves compatibility on Default to play everything. Messing with those options and stuff like complevels is for more Doom-savvy individuals and I myself didn't bother when starting out. Is there a ZDoom mapping reason projectiles collide with decorations by default? Otherwise I think it does more harm than good in Vanilla/Boom format maps when Arachnotrons get shut down by trees and players are blowing themselves up shooting at torches.

Share this post


Link to post
55 minutes ago, Spectre01 said:

Is there a ZDoom mapping reason projectiles collide with decorations by default?

in vanilla, they collides too. the difference is that in vanilla, most decorations has height of 16, so you'll barely notice the collision. as you cannot climb onto objects in vanilla, it doesn't matter. but leaving that small height in sourceport without infinite tall objects and with object-on-object support will mean that you can climb trees, lamps, and so on. so zdoom fixed the heights, and voila -- decorations becomes an obstacles for projectiles now.

 

adding a flag to ignore decorations in missile movement (i did that for k8vavoom) mimicks the vanilla to some extent, and most of the time people will not notice the difference. but it is still a hack, and not even a hack that restores vanilla compatibility per se.

Edited by ketmar

Share this post


Link to post

 

2 hours ago, Spectre01 said:

This is true but also something I think is not very clear to the average Joe who leaves compatibility on Default to play everything. Messing with those options and stuff like complevels is for more Doom-savvy individuals and I myself didn't bother when starting out. Is there a ZDoom mapping reason projectiles collide with decorations by default? Otherwise I think it does more harm than good in Vanilla/Boom format maps when Arachnotrons get shut down by trees and players are blowing themselves up shooting at torches.

 

If I altered the default, many users would not like it. It can be set in MAPINFO and through compatibility settings if needed, so for mappers there's always the option to force the setting if they need to.

Those who are aware of these things and want an as-close-to-vanilla-as-possible experience, will use the compatibility presets. The rest would say "your port sucks" and stick to older versions that feature the current behavior.

 

Ultimately I think it is pointless to question any bad design decision being made 20+ years ago. These things have been in their current state for too long to just switch them back and not expect any backlash. As long as they *can* be switched back all is fine in my book.

Let's also not forget that even PrBoom doesn't provide a pure vanilla experience on its default setting, you got to change to CompLevel 2 for that.

The Lost Soul thing was an exception because the altered behavior was flat out wrong on every conceivable account, and it's not something that directly impacts the user experience like not being able to take cover behind a tree.

 

 

 

Share this post


Link to post
On 11 August 2019 at 7:03 PM, Graf Zahl said:

A fix was just applied - but only for the Lost Soul - not for custom monsters.

Is this currently available in one of the latest dev builds?

 

Edit: Disregard that, I cook socks. Just saw it included in the recent 4.2 release. 

Edited by Spectre01

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×