MantisBT - Zandronum
View Issue Details
0000130Zandronum[All Projects] Bugpublic2010-10-21 20:582018-09-30 22:55
kgsws 
Torr Samaho 
normalmajoralways
closedfixed 
 
2.0 
0000130: client prediction is sometimes wrong
Client prediction is sometimes wrong. In many cases when walking on 3D floors and +SOLID things.
Anything that can push player and can't be predicted, and when player is on solid thing or moving between 3D floors.

Another problem is on join. This demo explains:'http://zdoom.ic.cz/predbug.zip [^]'
command line for demo> -file zh-beta18.wad zh-beta18-fix2.wad
(zombie horde MOD)
This wrong prediction does not affect only players. Static thing that can be pushed by weapons. Zombie horde has barrels pushable by weapons and it can sometimes get out of sync.This happens anywhere, not only on 3D floors.
No tags attached.
related to 0000051closed Torr Samaho desynchronization of player momentum when using teleporter or respawning online 
related to 0000106closed Leonard Client mispredicts its z position in swimmable water online 
related to 0000055closed Torr Samaho misprediction of player position when opening doors and using lifts online 
related to 0000331resolved Leonard Improved client-side prediction for Sector_SetFriction 
related to 0000270resolved Leonard Improved pusher prediction 
related to 0000517closed Torr Samaho No thrust prediction for Archvile attacks & rocket jumps 
related to 0000817assigned Torr Samaho Thing x/y/z position desync between client/server 
? 3dfloor_desync_test.wad (10,281) 2010-10-23 19:48
https://zandronum.com/tracker/file_download.php?file_id=45&type=bug
? 2010.10.23_21.50.14_3dfloor_desync_test.cld (148,253) 2010-10-23 19:54
https://zandronum.com/tracker/file_download.php?file_id=46&type=bug
? 2011.05.23_02.31.37_3dfloor_desync_test.cld (55,212) 2011-05-23 00:34
https://zandronum.com/tracker/file_download.php?file_id=335&type=bug
? player_bridge_desync_test_02.wad (6,204) 2011-05-23 20:29
https://zandronum.com/tracker/file_download.php?file_id=340&type=bug
? 2011.05.23_22.27.52_player_bridge_desync_test_02.cld (14,383) 2011-05-23 20:29
https://zandronum.com/tracker/file_download.php?file_id=341&type=bug
zip CrashReport_01.zip (16,866) 2011-05-23 22:53
https://zandronum.com/tracker/file_download.php?file_id=342&type=bug
? floor_lowerbyvalue_test_01.wad (1,362) 2011-05-24 01:23
https://zandronum.com/tracker/file_download.php?file_id=343&type=bug
? 2011.05.25_04.04.34_player_bridge_desync_test_02.cld (28,676) 2011-05-25 02:07
https://zandronum.com/tracker/file_download.php?file_id=344&type=bug
Issue History
2010-10-21 20:58kgswsNew Issue
2010-10-23 19:47unknownnaNote Added: 0000452
2010-10-23 19:48unknownnaFile Added: 3dfloor_desync_test.wad
2010-10-23 19:49unknownnaNote Edited: 0000452bug_revision_view_page.php?bugnote_id=452#r191
2010-10-23 19:54unknownnaFile Added: 2010.10.23_21.50.14_3dfloor_desync_test.cld
2010-10-23 19:56unknownnaNote Edited: 0000452bug_revision_view_page.php?bugnote_id=452#r192
2010-10-23 23:09unknownnaNote Edited: 0000452bug_revision_view_page.php?bugnote_id=452#r195
2011-03-29 12:27EvoNote Added: 0001219
2011-05-23 00:15Torr SamahoNote Added: 0001746
2011-05-23 00:18Torr SamahoNote Edited: 0001746bug_revision_view_page.php?bugnote_id=1746#r889
2011-05-23 00:34unknownnaFile Added: 2011.05.23_02.31.37_3dfloor_desync_test.cld
2011-05-23 00:40unknownnaNote Added: 0001747
2011-05-23 00:53Torr SamahoNote Added: 0001748
2011-05-23 00:59Torr SamahoAssigned To => Torr Samaho
2011-05-23 00:59Torr SamahoStatusnew => feedback
2011-05-23 01:32unknownnaNote Added: 0001749
2011-05-23 12:18Torr SamahoNote Added: 0001751
2011-05-23 20:29unknownnaFile Added: player_bridge_desync_test_02.wad
2011-05-23 20:29unknownnaFile Added: 2011.05.23_22.27.52_player_bridge_desync_test_02.cld
2011-05-23 20:32unknownnaNote Added: 0001752
2011-05-23 22:52unknownnaNote Edited: 0001752bug_revision_view_page.php?bugnote_id=1752#r891
2011-05-23 22:53unknownnaFile Added: CrashReport_01.zip
2011-05-24 01:20unknownnaNote Edited: 0001752bug_revision_view_page.php?bugnote_id=1752#r892
2011-05-24 01:23unknownnaFile Added: floor_lowerbyvalue_test_01.wad
2011-05-24 01:42unknownnaNote Edited: 0001752bug_revision_view_page.php?bugnote_id=1752#r893
2011-05-24 01:50unknownnaNote Edited: 0001752bug_revision_view_page.php?bugnote_id=1752#r894
2011-05-24 02:19Torr SamahoNote Added: 0001753
2011-05-24 03:36unknownnaNote Added: 0001754
2011-05-24 03:51unknownnaNote Edited: 0001754bug_revision_view_page.php?bugnote_id=1754#r896
2011-05-24 07:37unknownnaNote Edited: 0001754bug_revision_view_page.php?bugnote_id=1754#r897
2011-05-24 07:52unknownnaNote Edited: 0001754bug_revision_view_page.php?bugnote_id=1754#r898
2011-05-24 12:38Torr SamahoNote Added: 0001755
2011-05-24 21:16unknownnaNote Added: 0001757
2011-05-25 01:22Torr SamahoNote Added: 0001758
2011-05-25 02:07unknownnaFile Added: 2011.05.25_04.04.34_player_bridge_desync_test_02.cld
2011-05-25 02:10unknownnaNote Added: 0001759
2011-07-12 18:17unknownnaNote Added: 0001885
2011-07-13 00:28Torr SamahoNote Added: 0001894
2011-07-13 00:33Torr SamahoNote Edited: 0001894bug_revision_view_page.php?bugnote_id=1894#r949
2011-07-13 01:11unknownnaNote Added: 0001897
2011-07-13 23:56unknownnaRelationship addedrelated to 0000517
2011-07-18 06:35unknownnaRelationship addedrelated to 0000051
2011-07-18 06:36unknownnaRelationship addedrelated to 0000106
2011-07-18 06:36unknownnaRelationship addedrelated to 0000055
2011-07-18 07:50unknownnaRelationship addedrelated to 0000331
2011-07-18 07:51unknownnaRelationship addedrelated to 0000270
2012-04-26 18:45unknownnaRelationship addedrelated to 0000817
2012-06-09 13:22Torr SamahoCategoryGeneral => Bug
2015-06-08 21:49unknownnaNote Added: 0012607
2015-06-08 21:50unknownnaStatusfeedback => resolved
2015-06-08 21:50unknownnaResolutionopen => fixed
2015-06-08 21:50unknownnaFixed in Version => 2.0
2015-06-08 21:52unknownnaNote Edited: 0012607bug_revision_view_page.php?bugnote_id=12607#r7324
2018-09-30 22:55Blzut3Statusresolved => closed

Notes
(0000452)
unknownna   
2010-10-23 19:47   
(edited on: 2010-10-23 23:09)
Indeed, I've noticed this many times as well. Once you're connected and in-game, players standing on 3D floors will be displayed below/inside the floor. It synchronizes properly when said players standing on 3D floors move a direction, or crouch, or you shoot at their true position. Not only does it happen on 3D floors, but also on 3D middle textures as well.

The other issue is very related to this:'http://www.skulltag.com/forum/viewtopic.php?f=33&t=26721 [^]'

If you're in the "sweet spot" and then shoot the barrels, they'll desync for everyone in-game. You can reconnect to "fix" this. The barrels will then be displayed at their true positions. What happens is that the client mispredicts all the positions, hence the "lag" when bumping into the barrels. Because on your client, you're bumping into a SOLID object, but to the server, nothing is there.

EDIT:

Made an example WAD and a demo to it. You'll see both of the misprediction bugs in the demo. Demo uses 98c.

EDIT2:

Misprediction of your client's z-axis height also occurs when you're shot or bump into other players while standing/running on narrow 3D floors. Your viewpoint will suddenly be above the real floor instead of above the 3D floor.

(0001219)
Evo   
2011-03-29 12:27   
I was browsing to see if the issue of ones self appearing to be below the floor they standing on the edge of had already been reported. Looks like I found it here! :)

I'd class this annoyance as major, personally.
(0001746)
Torr Samaho   
2011-05-23 00:15   
(edited on: 2011-05-23 00:18)
> Made an example WAD and a demo to it. You'll see both of the misprediction bugs in the demo.

Can you make a demo with the latest testing binary?

(0001747)
unknownna   
2011-05-23 00:40   
> Can you make a demo with the latest testing binary?

Done.
(0001748)
Torr Samaho   
2011-05-23 00:53   
Since I can't post this at the corresponding forum thread and because the problems are possibly related, I'll just post it here:

I think I found out what's causing players to believe that they fell through a bridge thing when running into another actor (tested with player_bridge_desync_test.wad). This seems to fix the issue, but I have no idea if this breaks something else in the prediction.
(0001749)
unknownna   
2011-05-23 01:32   
> This seems to fix the issue

It looks like it fixed the issue. But it will still sometimes mispredict if you barely make a jump from a bridge thing to a solid floor (tested in ZDCTF MAP04). However, I tested this with an emulated ping of 600 ms.

BTW: Why does it start to lag whenever you jump on a bridge thing online?

> but I have no idea if this breaks something else in the prediction.

I noticed something: If I'm jumping when bumping into another player, the jump pattern will desync until I release +jump.
(0001751)
Torr Samaho   
2011-05-23 12:18   
> But it will still sometimes mispredict if you barely make a jump from a bridge thing to a solid floor (tested in ZDCTF MAP04).

Can you make a demo of this?

> BTW: Why does it start to lag whenever you jump on a bridge thing online?

Probably the prediction doesn't properly realize that the bridge thing should be considered as a floor. This is a wild guess though.

> If I'm jumping when bumping into another player, the jump pattern will desync until I release +jump.

Just to double check: This did not happen in 98d?
(0001752)
unknownna   
2011-05-23 20:32   
(edited on: 2011-05-24 01:50)
> Just to double check: This did not happen in 98d?

I tested 98d and it also happens there.

> Probably the prediction doesn't properly realize that the bridge thing should be considered as a floor. This is a wild guess though.

We desperately need to fix this, if possible.

> Can you make a demo of this?

Recorded a demo of it with 3259M.

Edit:

I managed to crash 3259M. It happened when I tried to enter a command before the demo started to play. But I don't know how to reproduce the crash.

> but I have no idea if this breaks something else in the prediction.

Moving floors (Floor_LowerByValue/Floor_RaiseByValue/Floor_Waggle) are very laggy now compared to how they are in 98d.

(0001753)
Torr Samaho   
2011-05-24 02:19   
I found and hopefully fixed two more more problems with jumping on bridges. Looks like jumping on bridges was seriously broken in 98d and probably all earlier versions...

Please test this new binary.

> Lowering floors (Floor_LowerByValue/Floor_Waggle) are very laggy now compared to how they are in 98d.

Hopefully the new binary will also take care of this, this needed an additional adaption and is pretty much untested.

> I managed to crash 3259M. It happened when I tried to enter a command before the demo started to play. But I don't know how to reproduce the crash.

Unfortunately I don't have the debug database of this build anymore, so I can't deduce anything from the crashlog.
(0001754)
unknownna   
2011-05-24 03:36   
(edited on: 2011-05-24 07:52)
> I found and hopefully fixed two more more problems with jumping on bridges. Looks like jumping on bridges was seriously broken in 98d and probably all earlier versions...

> Please test this new binary.

Excellent. No more lag/misprediction when jumping. It now only starts to lag when (tested with an emulated ping of 603 ms):

* You run into a monster while running/jumping on a bridge thing.
* You run into a player while running and jumping on a bridge thing (not really lag, but you skip a little).
* You're hit by hitscans/missiles while jumping on a bridge thing.

I suppose that this fix applies to all non-moving SOLID things, right?

But your z-height is still mispredicted if you jump after map starts. This is probably a separate issue.

> Hopefully the new binary will also take care of this, this needed an additional adaption and is pretty much untested.

I think it fixed the issues, but it will still start to lag if you jump. But this also happens in 98d.

Edit:

You can easily desync your jumping pattern when respawning.

Steps to reproduce:

1. Start a server with compat_instantrespawn and sv_forcerespawn set to 1.
2. Connect a client to the server with an emulated ping of 603 ms.
3. Join the game.
4. "+jump; kill" in the console.

The same effect can be observed when you run into other players.

(0001755)
Torr Samaho   
2011-05-24 12:38   
* You run into a monster while running/jumping on a bridge thing.
* You run into a player while running and jumping on a bridge thing (not really lag, but you skip a little).
* You're hit by hitscans/missiles while jumping on a bridge thing.

All of these things should also happen when you are on a solid floor, right? From what I can tell right now, this is because the clients can't properly predict the movements other actors will do in the future.

> I suppose that this fix applies to all non-moving SOLID things, right?

The fixes apply when the player is standing/jumping/moving/landing on another actor, e.g. a bridge thing. It does not solve any problems caused by the fact that the movement of actors can't be predicted by the client.
(0001757)
unknownna   
2011-05-24 21:16   
> All of these things should also happen when you are on a solid floor, right?

Yes, but your z-height is still sometimes mispredicted when you run into a monster.

> From what I can tell right now, this is because the clients can't properly predict the movements other actors will do in the future.

Indeed, and the consequence of this is that your jump pattern will desync.
(0001758)
Torr Samaho   
2011-05-25 01:22   
> Yes, but your z-height is still sometimes mispredicted when you run into a monster.

But you don't fall through bridges anymore, right?
(0001759)
unknownna   
2011-05-25 02:10   
You can still fall through bridges. I recorded a new demo.
(0001885)
unknownna   
2011-07-12 18:17   
> Zombie horde has barrels pushable by weapons and it can sometimes get out of sync.This happens anywhere, not only on 3D floors.

Did the new demo reveal anything?

* 2011.05.23_02.31.37_3dfloor_desync_test.cld

> But you don't fall through bridges anymore, right?

You can still fall through bridge things when you bump into monsters while jumping.

* 2011.05.25_04.04.34_player_bridge_desync_test_02.cld
(0001894)
Torr Samaho   
2011-07-13 00:28   
(edited on: 2011-07-13 00:33)
> 2011.05.23_02.31.37_3dfloor_desync_test.cld

I remember working on this, but I'm not quite sure if I really fixed the problem. Does it still happen in the latest build?

> 2011.05.25_04.04.34_player_bridge_desync_test_02.cld

I somehow overlooked this demo. I will need to look into this more closely.

(0001897)
unknownna   
2011-07-13 01:11   
> Does it still happen in the latest build?

It still happens in 3280M.
(0012607)
unknownna   
2015-06-08 21:49   
(edited on: 2015-06-08 21:52)
The main issues here are fixed.

Quote from kgsws
Zombie horde has barrels pushable by weapons and it can sometimes get out of sync.This happens anywhere, not only on 3D floors.

0000817: Thing x/y/z position desync between client/server

Quote from unknownna
Yes, but your z-height is still sometimes mispredicted when you run into a monster.

Quote from unknownna
You can still fall through bridges. I recorded a new demo.

I'm unable to reproduce this now, but I'm pretty sure it got fixed when Torr fixed a clipping issue when working on the wall-jitter issue.

Quote from unknownna
You can easily desync your jumping pattern when respawning.

Quote from unknownna
But your z-height is still mispredicted if you jump after map starts. This is probably a separate issue.

It got fixed when we worked on the teleporter/respawn issues.

The +jump issue is an ancient Skulltag issue. I'll create a separate ticket for it once and for all.