vsonnier / vkQuake-vso

My own personnal fork of vkQuake.
GNU General Public License v2.0
7 stars 0 forks source link

Elevators crushing player/monsters #5

Closed Placo closed 2 months ago

Placo commented 7 months ago

Hello, Good job on keeping vkQuake alive! I use your port as my main quake engine, together with Ironwail. Is it ok if I report vkQuake bugs to you here? If not feel free to remove this bug report.

This one is a physics bug I have first noticed last summer while playing through the mod Peril (https://www.slipseer.com/index.php?resources/peril3-0.253/), it is quite noticeable there because the mod makes extensive use of Quake elevators and trains.

The bug is that when on an elevator moving up or down sometimes it stops and begins to crush the player or the monsters that are on it, even if there are no obstacles. The player can jump to stop the crushing and have the elevator resume its course but most of the time the crushing resumes a few seconds later. I have had this bug in other, more regular Quake mods as well, for example I've had it occur on the elevator in the start map of Quake Brutalist Jam 2. But admittedly it is rarer to have it occur with slower, less long elevator rides yet I still encounter it from time to time.

For the mod Peril, the bug is present in Ironwail as well, but in Ironwail there is a workaround: enabling v-sync fixes it completely, even with target framerates well above 72fps (this is very strange and feels more like a bug itself than anything else but hey it fixes the issue). I have tried messing with vsync or setting host_maxfps below 72 in vkQuake to see if it wasn't a physics/rendering decoupling leftover bug but nothing makes it work. The bug is not present in QSS.

I have linked a savegame to just before the bug occurs in the first level of the Peril mod (it's at the start of the level anyway). elevator crushing bug Peril savegame.zip

vsonnier commented 6 months ago

Hello @Placo,

Good job on keeping vkQuake alive! I use your port as my main quake engine, together with Ironwail. Is it ok if I report vkQuake bugs to you here?

Thank you for your kind words, happy to see this port helps you.

This one is a physics bug I have first noticed last summer while playing through the mod Peril The bug is that when on an elevator moving up or down sometimes...etc.

Oh I know this one ! This is also known to by the mod author Balgorg and somewhat mitigated in the latest release (3.0c now) that can be found here : https://www.moddb.com/mods/peril/downloads. Otherwise, the author just advise to use QSS.

Amazing mod, right ? I'm now in Geothermal and stopped here for now. I secretly hope Balgorg will update the mod again and I can replay it from the begining.

The player can jump to stop the crushing and have the elevator resume its course but most of the time the crushing resumes a few seconds later.

Yes, it triggers every time on the long descending elevator of the first level, an occurs multiple times.

I always play with v-sync off, with limiting refresh rate in game instead by host_maxfps 58 (monitor is 60Hz)

My workaround for this physics problem is to unlock the maxfps by host_maxfps 0 temporarily. Even with that, it can still occur on the descending elevator once or twice.

To be more practical, I've bound that to a shortcut 'p' in autoexec.cfg like this:

alias al_physicstoggle_on "echo Physics workaround on (DISABLE fps limit); host_maxfps 0 ; scr_showfps 1 ; bind p al_physicstoggle_off"
alias al_physicstoggle_off "echo Physics workaround off (normal fps limit); host_maxfps 58; scr_showfps 0 ; bind p al_physicstoggle_on"
bind p al_physicstoggle_on

The bug is not present in QSS.

I know, but unfortunatly I've not stumbled (yet) on the magical line of code in QSS responsible.

vsonnier commented 2 months ago

Closing this, the advanture continues there : https://github.com/Novum/vkQuake/issues/700