Zandronum Chat on our Discord Server Get the latest version: 3.0
Source Code

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0002298Zandronum[All Projects] Bugpublic2015-06-09 02:182019-01-01 20:09
Assigned ToLeonard 
PlatformOSOS Version
Product Version2.0 
Target Version3.1Fixed in Version3.1 
Summary0002298: Ancient +jump misprediction that harks back to early Skulltag days
DescriptionIf you have a high ping and hold +jump and then for instance bump into an actor that can't be predicted properly, e.g. a moving monster, the jump pattern will in most cases permanently desync until you release +jump. This causes all sorts of unnecessary jitter to appear. I also notice this behavior when jumping while standing on lowering/raising floors, e.g. when standing on lifts.

It's a bit more difficult to reproduce the issue with players, but it's possible.
Steps To Reproduce1. zandronum -file jumping_01.wad -host
2. Connect a client to the server with an emulated ping of 603.
3. "addbot" in the server console 6 times.
4. Join the game.
5. Run into the bots while holding +jump and jumping from bridge things to real floors and vice versa.
6. Press +use to teleport to the next room.
7. Run into the zombiemen while holding +jump.
8. Press +use to teleport to the next room.
9. Hold +jump while pressing +use to activate the platform.
10. Press +use on the normal floor to teleport back to the starting room.
Additional InformationOnce the jumping pattern has desynced, ZDaemon seems to automatically re-sync itself compared to Zandronum. It's not really a major issue in the sense that it's devastating, but it's noticeable when playing competitively and/or when getting a lag spike.
Attached Files? file icon jumping_01.wad [^] (9,455 bytes) 2015-06-09 02:18
? file icon jumping_02.wad [^] (17,267 bytes) 2017-10-22 02:16
? file icon jumpTest.cld [^] (24,967 bytes) 2017-10-29 11:04

- Relationships
related to 0000106feedbackLeonard Client mispredicts its z position in swimmable water online 

-  Notes
User avatar (0018584)
Leonard (developer)
2017-10-22 02:18


I also attached a new testing wad that allows to reproduce the issue much faster: simply go in and out of the center sector once while holding +jump to get the desync (with 600 ping as reported).
User avatar (0018632)
Torr Samaho (administrator)
2017-10-28 11:08

Please see the comment I just left in the pull request.
User avatar (0018633)
Leonard (developer)
2017-10-28 14:37

I replied.
User avatar (0018642)
Torr Samaho (administrator)
2017-10-29 11:05
edited on: 2017-10-29 11:07

Thanks! The code looks good now, but with your example wad and an emulated ping of 300, I still easily get prediction errors. I attached a demo to illustrate the effect. Perhaps something went wrong when I applied your patch locally. Does this work for you with a ping of 300?

User avatar (0018648)
Leonard (developer)
2017-10-29 16:02

The patch works for me.
After watching your demo, I think you misunderstand what should be fixed here:
the misprediction in itself cannot be fixed (you are jumping on bridges which are solid on the server but not on the client), what this fixes is the permanent jumptics desync that would result from such mispredictions.
You may notice that simply running without jumping into the bridges will make the client jitter as well: the position cannot be predicted either due to the nature of the misprediction.
Quote from unknownna
for instance bump into an actor that can't be predicted properly, e.g. a moving monster, the jump pattern will in most cases permanently desync until you release +jump.

This is what the patch should fix.
If you try without the patch and with 600 ping, the jumping pattern will never resync unless you let go of +jump.
With the patch however, the jumping pattern resyncs itself almost immediatly (just like the position always did).
Quote from unknownna
Once the jumping pattern has desynced, ZDaemon seems to automatically re-sync itself compared to Zandronum.

In real conditions, this may happen when packets are dropped or with ping spikes, we just use 600 ping here because that means the client is teleported back high enough so as to not re-hit the ground and therefore change its jumptics every time.
User avatar (0018690)
Torr Samaho (administrator)
2017-10-31 19:06

Oh, wait. You are saying that your example wad jumping_02.wad intentionally desyncs client and server, so that you are supposed to get mispredictions even with the fix? That's quite unlike the usual example wads here. A small hint that the wad contains an unfixable sync issue that should be disregarded would have been helpful ;). I was apparently looking for the wrong thing.
User avatar (0018692)
Torr Samaho (administrator)
2017-10-31 19:30

I added your patch.
User avatar (0018693)
Leonard (developer)
2017-11-01 00:14

You're right, I didn't realise my first note implied the issue was the misprediction itself, my bad.
User avatar (0019230)
StrikerMan780 (reporter)
2018-05-08 21:26

Can someone upload a zandronum build with the interpolation bug fixed? The jitter makes this one harder for me to tell if there's something wrong or not.
User avatar (0019234)
StrikerMan780 (reporter)
2018-05-10 02:52
edited on: 2018-05-10 02:53

Ok, with a high simulated ping of 600, I can trigger some pretty nasty mispredictions by bumping into monsters in jumping_01.wad, but it doesn't stay screwed up, it corrects itself rather quickly. I guess this is normal?

User avatar (0019238)
Leonard (developer)
2018-05-10 12:50

If you're talking about the jumping pattern then yes, this is what the fix is supposed to do.
User avatar (0019240)
StrikerMan780 (reporter)
2018-05-11 19:55

Yes, I am. So I guess this can be marked as fixed then.

Issue Community Support
This issue is already marked as resolved.
If you feel that is not the case, please reopen it and explain why.
Supporters: unknownna Combinebobnt
Opponents: No one explicitly opposes this issue yet.

- Issue History
Date Modified Username Field Change
2015-06-09 02:18 unknownna New Issue
2015-06-09 02:18 unknownna File Added: jumping_01.wad
2015-06-09 02:18 unknownna Status new => confirmed
2015-06-17 03:55 unknownna Relationship added related to 0000106
2017-10-22 02:16 Leonard File Added: jumping_02.wad
2017-10-22 02:18 Leonard Note Added: 0018584
2017-10-22 02:18 Leonard Assigned To => Leonard
2017-10-22 02:18 Leonard Status confirmed => needs review
2017-10-22 02:18 Leonard Target Version => 3.1
2017-10-28 11:08 Torr Samaho Note Added: 0018632
2017-10-28 11:09 Torr Samaho Status needs review => assigned
2017-10-28 14:37 Leonard Note Added: 0018633
2017-10-28 14:37 Leonard Status assigned => needs review
2017-10-29 11:04 Torr Samaho File Added: jumpTest.cld
2017-10-29 11:05 Torr Samaho Note Added: 0018642
2017-10-29 11:06 Torr Samaho Status needs review => assigned
2017-10-29 11:07 Torr Samaho Note Edited: 0018642 View Revisions
2017-10-29 16:02 Leonard Note Added: 0018648
2017-10-29 16:02 Leonard Status assigned => needs review
2017-10-31 19:06 Torr Samaho Note Added: 0018690
2017-10-31 19:30 Torr Samaho Note Added: 0018692
2017-10-31 19:30 Torr Samaho Status needs review => needs testing
2017-11-01 00:14 Leonard Note Added: 0018693
2018-05-08 21:26 StrikerMan780 Note Added: 0019230
2018-05-10 02:52 StrikerMan780 Note Added: 0019234
2018-05-10 02:53 StrikerMan780 Note Edited: 0019234 View Revisions
2018-05-10 12:50 Leonard Note Added: 0019238
2018-05-11 19:55 StrikerMan780 Note Added: 0019240
2018-05-13 12:44 Leonard Status needs testing => resolved
2018-05-13 12:44 Leonard Resolution open => fixed
2018-05-13 12:44 Leonard Fixed in Version => 3.1

Questions or other issues? Contact Us.


Copyright © 2000 - 2021 MantisBT Team
Powered by Mantis Bugtracker