Backwards Compatibility Issues

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.
User avatar
Zhs2
Posts: 1269
Joined: Fri Nov 07, 2008 3:29 pm
Graphics Processor: ATI/AMD with Vulkan/Metal Support
Location: Maryland, USA, but probably also in someone's mod somewhere
Contact:

Re: Backwards Compatibility Issues

Post by Zhs2 »

Yholl wrote:
ChangeActorPitch (0, 350.0, 1);
This line in Laundry 3 makes you face forwards in a cutscene in 2.1.1, as intended.
In modern stuff, it makes you stare at the floor.
There's a bunch of different pitch problems like this in my mods when used in modern versions.

In any case, if modern gzdoom had something, like a new actor I could just spawn and check for, I could fix all this stuff myself and not have to bother anyone.
As it is right now, in most cases there is nothing I can do to solve this myself.
From the history of the [wiki]GetActorPitch[/wiki] page, I'm surprised this value actually worked. 0 seems to be the proper value for looking straight ahead in all cases, and the fixed point value range for pitch seems to be very, very small otherwise - from [-0.25, 0.25] in GL, less for software!

Edit: oops, page 2 sniped Graf
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: Backwards Compatibility Issues

Post by Graf Zahl »

Rachael wrote:
Yholl wrote:Targeting a fast-running, stable, guaranteed multiplayer working, able to run on a large amount of computers version is the problem?
Sorry to be someone who rains on your parade, but that still remains the case, today. It seems like people running on legacy systems unable to handle it have got themselves caught in a shrinking minority. About 10 to 1, to be approximate.

It's again that old fallacy of overestimating the number of users of such systems, and then investing countless hours of work (or money) in supporting this stuff.
It's not even something that is limited to hobbyists, I already mentioned one story of a former job of mine here where a certain product had to be maintained for approx. 200 incompatible mobile handsets. The amount of work invested here was utterly insane and burned a significant portion of the budget. Worse, because these were "important" all assets were stripped down to work on that old hardware. The one thing nobody did until I really put pressure on them was to run an analysis tool on which SKUs really were important. What surprised everybody (except me) was that of the 200 SKUs we supported, maybe 20 were important and made up roughly 95% of all traffic.

And now take one guess which ones were on that list. I don't think anyone should be surprised that it was the high end stuff. All that "important" low end, for which the software got stripped down to a point where it remained a shell of its former self were utterly irrelevant!

And very much the same applies here.
User avatar
Yholl
Posts: 1953
Joined: Mon Dec 17, 2012 11:08 am
Location: Here, stupid.

Re: Backwards Compatibility Issues

Post by Yholl »

Graf Zahl wrote:Behold that gem of a modding bug that just went unnoticed due to value wraparounds. You are aware that the valid range for pitches is -90 .. 90, right? 350 is outside that range and apparently at some point gets clamped to 90. Why didn't you use -10 as anybody else would have done?
I used A_LogInt(pitch) to find out the values I needed for things by looking around. The number it gave me was 350 for what I wanted.
Zhs2 wrote:From the history of the [wiki]GetActorPitch[/wiki] page, I'm surprised this value actually worked. 0 seems to be the proper value for looking straight ahead in all cases, and the fixed point value range for pitch seems to be very, very small otherwise - from [-0.25, 0.25] in GL, less for software!
I recall ACS and Decorate are also different values at least in 2.1.1, with ACS using those ones and Decorate using 0-360 for some reason. I'm actually not sure why that one works at this point either.
User avatar
Zhs2
Posts: 1269
Joined: Fri Nov 07, 2008 3:29 pm
Graphics Processor: ATI/AMD with Vulkan/Metal Support
Location: Maryland, USA, but probably also in someone's mod somewhere
Contact:

Re: Backwards Compatibility Issues

Post by Zhs2 »

ACS uses those values. [wiki=A_SetPitch]DECORATE/ZScript's range is from [-90.0, 90.0][/wiki] - negative up, positive down, at least in recent versions. A_LogInt wouldn't have returned a usable value because pitch is double precision in DECORATE/ZScript, not an int.
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: Backwards Compatibility Issues

Post by Graf Zahl »

To be more precise, ACS uses a weird scale where 1.0 is 360° (and by extrapolation and factoring in wraparound, 350.0 is also 360° (or what it really comes down to, 0°, i.e. perfectly horizontal pitch.) Please do not ask me why Randi chose such a value range, except for easy conversion to the old internal angle format.
User avatar
Matt
Posts: 9696
Joined: Sun Jan 04, 2004 5:37 pm
Preferred Pronouns: They/Them
Operating System Version (Optional): Debian Bullseye
Location: Gotham City SAR, Wyld-Lands of the Lotus People, Dominionist PetroConfederacy of Saudi Canadia
Contact:

Re: Backwards Compatibility Issues

Post by Matt »

Kinsie wrote:I feel like ZScript is still young enough, and the issues in it apparent enough, that the majority of people using it would be, perhaps not happy, but at least reasonably receptive to script-breaking design fixes if they improved the overall state of the engine's health, and that enough of the people dabbling in it are still active enough to fix their mods to taste.
This.

That's why I'd posted that thing about globalfreeze as a feature suggestion for more graceful deprecation rather than a bug report.

Graf Zahl wrote:It's again that old fallacy of overestimating the number of users of such systems, and then investing countless hours of work (or money) in supporting this stuff.
It's not even something that is limited to hobbyists, I already mentioned one story of a former job of mine here where a certain product had to be maintained for approx. 200 incompatible mobile handsets. The amount of work invested here was utterly insane and burned a significant portion of the budget. Worse, because these were "important" all assets were stripped down to work on that old hardware. The one thing nobody did until I really put pressure on them was to run an analysis tool on which SKUs really were important. What surprised everybody (except me) was that of the 200 SKUs we supported, maybe 20 were important and made up roughly 95% of all traffic.

And now take one guess which ones were on that list. I don't think anyone should be surprised that it was the high end stuff. All that "important" low end, for which the software got stripped down to a point where it remained a shell of its former self were utterly irrelevant!

And very much the same applies here.
I feel like this should be reposted as a sticky so people have a better understanding of where Graf (and presumably the rest of the GZD dev team) is coming from when it comes to this issue.
Post Reply

Return to “Closed Bugs [GZDoom]”