MantisBT - Zandronum
View Issue Details
0000106Zandronum[All Projects] Bugpublic2010-10-12 22:482024-03-07 10:50
unknownna 
Leonard 
highmajoralways
closedfixed 
MicrosoftWindowsXP/Vista/7
98c 
3.13.1 
0000106: Client mispredicts its z position in swimmable water online
With a high ping, the viewpoint starts to "teleport/flicker" from being above the surface to being below it and vice versa. Very disorienting.
1. zandronum.exe -file swimmable_water_01.wad -host
2. Connect a client to the server with an emulated ping of 300 and join the game.
3. Enter the water sectors and hold +jump while moving around.
4. When for instance releasing +forward, the mispredictions will occur.
swimmable_water_01.wad
No tags attached.
has duplicate 0002637closed  Player prediction: desync with underwater sectors. 
related to 0000130closed Torr Samaho client prediction is sometimes wrong 
related to 0002298resolved Leonard Ancient +jump misprediction that harks back to early Skulltag days 
related to 0002295resolved Leonard Wall-jitter misprediction issue with high ping 
? deepwater_view_misprediction_test.wad (956) 2010-10-12 22:48
https://zandronum.com/tracker/file_download.php?file_id=36&type=bug
png Screenshot_Doom_20120923_235105.png (177,694) 2012-09-23 22:04
https://zandronum.com/tracker/file_download.php?file_id=735&type=bug
png
Issue History
2010-10-12 22:48unknownnaNew Issue
2010-10-12 22:48unknownnaFile Added: deepwater_view_misprediction_test.wad
2010-10-12 22:52unknownnaNote Added: 0000347
2011-07-18 06:36unknownnaRelationship addedrelated to 0000130
2012-06-09 13:22Torr SamahoCategoryGeneral => Bug
2012-09-23 22:04unknownnaNote Added: 0004787
2012-09-23 22:04unknownnaPrioritylow => high
2012-09-23 22:04unknownnaSeverityminor => major
2012-09-23 22:04unknownnaSummarymispredicted viewpoint in swimmable water online => Client mispredicts its z position in swimmable water online
2012-09-23 22:04unknownnaSteps to Reproduce Updatedbug_revision_view_page.php?rev_id=2595#r2595
2012-09-23 22:04unknownnaAdditional Information Updatedbug_revision_view_page.php?rev_id=2597#r2597
2012-09-23 22:04unknownnaFile Added: Screenshot_Doom_20120923_235105.png
2012-09-24 09:09unknownnaStatusnew => confirmed
2015-06-17 03:55unknownnaRelationship addedrelated to 0002298
2017-09-11 17:06DuskRelationship addedhas duplicate 0002637
2017-09-11 17:06DuskStatusconfirmed => needs review
2017-09-11 17:06DuskRelationship addedrelated to 0002295
2017-09-11 17:37LeonardNote Added: 0018275
2017-09-11 18:48DuskTarget Version => 3.1
2017-09-24 15:25Torr SamahoNote Added: 0018364
2017-09-24 15:26Torr SamahoStatusneeds review => needs testing
2017-10-23 15:05LeonardStatusneeds testing => assigned
2017-10-23 15:05LeonardAssigned To => Leonard
2017-10-23 15:06LeonardStatusassigned => needs testing
2018-05-07 01:14StrikerMan780Note Added: 0019210
2018-05-07 01:17StrikerMan780Note Edited: 0019210bug_revision_view_page.php?bugnote_id=19210#r11520
2018-05-07 09:55LeonardStatusneeds testing => resolved
2018-05-07 09:55LeonardResolutionopen => fixed
2018-05-07 09:55LeonardFixed in Version => 3.1
2018-08-23 05:23unknownnaNote Added: 0019387
2018-08-23 05:23unknownnaStatusresolved => feedback
2018-08-23 05:23unknownnaResolutionfixed => reopened
2024-03-07 10:49unknownnaNote Added: 0023308
2024-03-07 10:49unknownnaStatusfeedback => assigned
2024-03-07 10:50unknownnaStatusassigned => closed
2024-03-07 10:50unknownnaResolutionreopened => fixed

Notes
(0000347)
unknownna   
2010-10-12 22:52   
Hold jump while running or standing still in the water to get the effect.
(0004787)
unknownna   
2012-09-23 22:04   
As you can see in the attached screenshot, the client greatly mispredicts its z position. I'm standing still in the water while holding +jump.
(0018275)
Leonard   
2017-09-11 17:37   
Exactly the same problem as in 2295.

The problem can also be reproduced with this test wad by simply typing "+forward;wait;-forward" in console with 200 ping.

The physics code that uses the ticcmd this time is located here:
In p_mobj.cpp, line 2906:

        if (mo->waterlevel == 0 || (mo->player &&
            !(mo->player->cmd.ucmd.forwardmove | mo->player->cmd.ucmd.sidemove)))
(0018364)
Torr Samaho   
2017-09-24 15:25   
Thanks for the fix! I added your patch.
(0019210)
StrikerMan780   
2018-05-07 01:14   
(edited on: 2018-05-07 01:17)
Tested in the latest 3.1 build with Gamer's proxy set to 300 ping. No prediction issues. Seems solid with ping randomization on as well.

(0019387)
unknownna   
2018-08-23 05:23   
It seems to work rather well, however, it tends to desync and jitter when holding +jump and moving between the water sectors and the regular ones.
It seems to particularly happen when moving up to the regular sectors from the water, which leads me to believe it's related to the "jitter when standing on ledge of raising floors and slopes" issue (which as far as I can remember, is the final major movement misprediction left).

By the way, thank you very much for fixing all these old prediction issues, I'm incredibly grateful for it. Excellent work, thank you.
(0023308)
unknownna   
2024-03-07 10:49   
This got fixed when Leonard fixed the +jump desync. Thanks, Leonard!