MantisBT - Zandronum |
View Issue Details |
|
ID | Project | Category | View Status | Date Submitted | Last Update |
0002255 | Zandronum | [All Projects] Bug | public | 2015-05-25 12:47 | 2018-09-30 21:37 |
|
Reporter | unknownna | |
Assigned To | Torr Samaho | |
Priority | urgent | Severity | major | Reproducibility | always |
Status | closed | Resolution | fixed | |
Platform | | OS | | OS Version | |
Product Version | 2.0 | |
Target Version | 2.1 | Fixed in Version | 2.1 | |
|
Summary | 0002255: Weapon desync regression |
Description | The weapon synchronization has been broken since 1.3. It's worse in 2.0 and 3.0. |
Steps To Reproduce | 1.3
1. zandronum -playdemo weapon_desync_1.3.cld
2.0
1. zandronum -playdemo weapon_desync_2.0.cld |
Additional Information | I checked every public version from 1.0 up to 1.3 and could only reproduce it in 1.3 and 2.0. I also found a 3.0 build here and managed to reproduce the issue there as well.
Now, there are still some ancient desyncs that we never fixed, but this issue is a regression. It worked a lot better before. |
Tags | No tags attached. |
Relationships | related to | 0000544 | closed | Torr Samaho | Client can't fire selected weapon after "changemap" map changes in COOP when being telefragged | parent of | 0001116 | resolved | Kaminsky | Client fires weapon too early after respawning | related to | 0002330 | closed | Torr Samaho | Additional Latency/Jitter with 2.1 |
|
Attached Files | weapon_desync_1.3.cld (54,000) 2015-05-25 12:47 https://zandronum.com/tracker/file_download.php?file_id=1506&type=bug
weapon_desync_2.0.cld (39,622) 2015-05-25 12:47 https://zandronum.com/tracker/file_download.php?file_id=1507&type=bug |
|
Issue History |
Date Modified | Username | Field | Change |
2015-05-25 12:47 | unknownna | New Issue | |
2015-05-25 12:47 | unknownna | File Added: weapon_desync_1.3.cld | |
2015-05-25 12:47 | unknownna | File Added: weapon_desync_2.0.cld | |
2015-05-25 13:01 | unknownna | Status | new => confirmed |
2015-05-25 18:24 | Catastrophe | Note Added: 0012391 | |
2015-05-31 19:47 | Edward-san | Note Added: 0012481 | |
2015-05-31 19:48 | Edward-san | Status | confirmed => feedback |
2015-05-31 19:50 | Torr Samaho | Note Added: 0012482 | |
2015-05-31 22:13 | Frits | Note Added: 0012485 | |
2015-05-31 22:45 | unknownna | Note Added: 0012486 | |
2015-05-31 22:45 | unknownna | Status | feedback => new |
2015-06-04 16:18 | Edward-san | Note Added: 0012511 | |
2015-06-04 16:56 | Edward-san | Status | new => feedback |
2015-06-04 17:08 | unknownna | Note Added: 0012512 | |
2015-06-04 17:08 | unknownna | Status | feedback => new |
2015-06-04 17:16 | unknownna | Note Edited: 0012512 | bug_revision_view_page.php?bugnote_id=12512#r7249 |
2015-06-04 17:41 | Edward-san | Note Added: 0012513 | |
2015-06-04 17:41 | Edward-san | Status | new => feedback |
2015-06-04 18:24 | unknownna | Note Added: 0012514 | |
2015-06-04 18:24 | unknownna | Status | feedback => new |
2015-06-04 18:57 | Edward-san | Note Added: 0012515 | |
2015-06-04 18:57 | Edward-san | Assigned To | => Edward-san |
2015-06-04 18:57 | Edward-san | Status | new => feedback |
2015-06-04 18:57 | Edward-san | Assigned To | Edward-san => |
2015-06-04 19:21 | unknownna | Note Added: 0012516 | |
2015-06-04 19:21 | unknownna | Status | feedback => new |
2015-06-04 19:23 | Edward-san | Note Added: 0012517 | |
2015-06-04 19:24 | Edward-san | Note Edited: 0012517 | bug_revision_view_page.php?bugnote_id=12517#r7251 |
2015-06-04 19:26 | Edward-san | Note Edited: 0012517 | bug_revision_view_page.php?bugnote_id=12517#r7252 |
2015-06-04 19:36 | Edward-san | Note Added: 0012518 | |
2015-06-04 19:36 | Edward-san | Status | new => feedback |
2015-06-04 19:42 | Edward-san | Note Edited: 0012518 | bug_revision_view_page.php?bugnote_id=12518#r7254 |
2015-06-04 19:57 | unknownna | Note Added: 0012519 | |
2015-06-04 19:57 | unknownna | Status | feedback => new |
2015-06-04 20:53 | Edward-san | Note Added: 0012520 | |
2015-06-04 20:53 | Edward-san | Status | new => feedback |
2015-06-04 21:04 | Edward-san | Note Edited: 0012520 | bug_revision_view_page.php?bugnote_id=12520#r7256 |
2015-06-04 21:13 | unknownna | Note Added: 0012521 | |
2015-06-04 21:13 | unknownna | Status | feedback => new |
2015-06-04 21:20 | Edward-san | Note Added: 0012522 | |
2015-06-04 21:20 | Edward-san | Note Edited: 0012522 | bug_revision_view_page.php?bugnote_id=12522#r7258 |
2015-06-04 21:28 | unknownna | Note Added: 0012523 | |
2015-06-04 21:35 | unknownna | Note Edited: 0012523 | bug_revision_view_page.php?bugnote_id=12523#r7260 |
2015-06-04 21:38 | unknownna | Note Edited: 0012523 | bug_revision_view_page.php?bugnote_id=12523#r7261 |
2015-06-04 21:43 | Edward-san | Note Added: 0012524 | |
2015-06-04 21:44 | Edward-san | Note Deleted: 0012524 | |
2015-06-04 22:14 | Edward-san | Note Added: 0012525 | |
2015-06-04 22:14 | Edward-san | Status | new => feedback |
2015-06-04 22:20 | unknownna | Note Added: 0012526 | |
2015-06-04 22:20 | unknownna | Status | feedback => new |
2015-06-04 22:21 | Edward-san | Note Added: 0012527 | |
2015-06-04 22:22 | Edward-san | Status | new => feedback |
2015-06-04 22:25 | unknownna | Note Added: 0012528 | |
2015-06-04 22:25 | unknownna | Status | feedback => new |
2015-06-04 22:31 | Edward-san | Note Added: 0012529 | |
2015-06-04 22:31 | Edward-san | Status | new => feedback |
2015-06-04 22:38 | unknownna | Note Added: 0012530 | |
2015-06-04 22:38 | unknownna | Status | feedback => new |
2015-06-04 22:42 | Edward-san | Note Added: 0012531 | |
2015-06-04 22:45 | Edward-san | Status | new => feedback |
2015-06-04 22:48 | unknownna | Note Added: 0012532 | |
2015-06-04 22:48 | unknownna | Status | feedback => new |
2015-06-04 22:51 | Edward-san | Note Added: 0012533 | |
2015-06-04 22:51 | Edward-san | Status | new => feedback |
2015-06-04 22:57 | unknownna | Note Added: 0012534 | |
2015-06-04 22:57 | unknownna | Status | feedback => new |
2015-06-04 23:03 | Edward-san | Note Added: 0012535 | |
2015-06-04 23:03 | Edward-san | Status | new => feedback |
2015-06-04 23:08 | unknownna | Note Added: 0012536 | |
2015-06-04 23:08 | unknownna | Status | feedback => new |
2015-06-04 23:09 | Edward-san | Note Edited: 0012535 | bug_revision_view_page.php?bugnote_id=12535#r7263 |
2015-06-04 23:10 | Edward-san | Note Added: 0012537 | |
2015-06-04 23:10 | Edward-san | Status | new => feedback |
2015-06-04 23:14 | unknownna | Note Added: 0012538 | |
2015-06-04 23:14 | unknownna | Status | feedback => new |
2015-06-04 23:22 | Edward-san | Note Added: 0012539 | |
2015-06-04 23:22 | Edward-san | Status | new => acknowledged |
2015-06-14 01:20 | WaTaKiD | Target Version | => 2.1 |
2015-06-14 01:21 | Dusk | Assigned To | => Torr Samaho |
2015-06-14 01:21 | Dusk | Status | acknowledged => assigned |
2015-06-14 04:07 | unknownna | Relationship added | parent of 0001116 |
2015-06-14 04:35 | unknownna | Note Added: 0012690 | |
2015-06-14 08:01 | Edward-san | Note Added: 0012696 | |
2015-06-14 08:10 | unknownna | Note Added: 0012698 | |
2015-06-14 08:31 | Torr Samaho | Note Added: 0012700 | |
2015-06-14 08:41 | Torr Samaho | Note Added: 0012701 | |
2015-06-14 08:49 | unknownna | Note Added: 0012702 | |
2015-06-14 09:00 | unknownna | Note Edited: 0012702 | bug_revision_view_page.php?bugnote_id=12702#r7415 |
2015-06-14 09:02 | Torr Samaho | Note Added: 0012703 | |
2015-06-14 09:12 | unknownna | Note Added: 0012704 | |
2015-06-14 09:13 | unknownna | Note Edited: 0012704 | bug_revision_view_page.php?bugnote_id=12704#r7417 |
2015-06-14 09:27 | Torr Samaho | Note Added: 0012705 | |
2015-06-14 09:40 | unknownna | Note Added: 0012706 | |
2015-06-14 09:47 | unknownna | Note Edited: 0012706 | bug_revision_view_page.php?bugnote_id=12706#r7419 |
2015-06-14 09:50 | Torr Samaho | Note Added: 0012707 | |
2015-06-14 09:58 | unknownna | Note Added: 0012708 | |
2015-06-14 09:59 | unknownna | Note Edited: 0012708 | bug_revision_view_page.php?bugnote_id=12708#r7421 |
2015-06-14 10:45 | cobalt | Status | assigned => needs testing |
2015-06-14 10:45 | cobalt | Steps to Reproduce Updated | bug_revision_view_page.php?rev_id=7423#r7423 |
2015-06-14 10:45 | cobalt | Additional Information Updated | bug_revision_view_page.php?rev_id=7425#r7425 |
2015-06-14 10:45 | cobalt | Note Added: 0012710 | |
2015-06-14 10:46 | unknownna | Note Edited: 0012708 | bug_revision_view_page.php?bugnote_id=12708#r7426 |
2015-06-14 10:47 | Torr Samaho | Note Added: 0012711 | |
2015-06-14 11:16 | unknownna | Note Added: 0012712 | |
2015-06-14 11:23 | unknownna | Note Edited: 0012712 | bug_revision_view_page.php?bugnote_id=12712#r7428 |
2015-06-14 12:50 | Dusk | Note Added: 0012714 | |
2015-06-14 14:40 | Dusk | Note Edited: 0012714 | bug_revision_view_page.php?bugnote_id=12714#r7432 |
2015-06-14 14:58 | Dusk | Note Edited: 0012714 | bug_revision_view_page.php?bugnote_id=12714#r7433 |
2015-06-14 15:05 | Dusk | Note Edited: 0012714 | bug_revision_view_page.php?bugnote_id=12714#r7434 |
2015-06-14 15:19 | Dusk | Note Edited: 0012714 | bug_revision_view_page.php?bugnote_id=12714#r7435 |
2015-06-14 15:20 | Dusk | Note Edited: 0012714 | bug_revision_view_page.php?bugnote_id=12714#r7438 |
2015-06-14 17:17 | Dusk | Note Edited: 0012714 | bug_revision_view_page.php?bugnote_id=12714#r7443 |
2015-06-14 17:36 | Dusk | Note Edited: 0012714 | bug_revision_view_page.php?bugnote_id=12714#r7444 |
2015-06-14 17:46 | Dusk | Note Edited: 0012714 | bug_revision_view_page.php?bugnote_id=12714#r7445 |
2015-06-14 18:16 | Dusk | Note Edited: 0012714 | bug_revision_view_page.php?bugnote_id=12714#r7448 |
2015-06-14 18:37 | Dusk | Note Edited: 0012714 | bug_revision_view_page.php?bugnote_id=12714#r7449 |
2015-06-14 18:38 | Dusk | Note Edited: 0012714 | bug_revision_view_page.php?bugnote_id=12714#r7450 |
2015-06-14 18:39 | unknownna | Note Added: 0012723 | |
2015-06-14 18:39 | unknownna | Note Edited: 0012723 | bug_revision_view_page.php?bugnote_id=12723#r7452 |
2015-06-14 18:51 | unknownna | Relationship added | related to 0000544 |
2015-06-16 09:57 | unknownna | Note Added: 0012739 | |
2015-06-16 09:57 | unknownna | Status | needs testing => resolved |
2015-06-16 09:57 | unknownna | Resolution | open => fixed |
2015-06-16 09:57 | unknownna | Fixed in Version | => 2.1 |
2015-06-16 09:57 | unknownna | Steps to Reproduce Updated | bug_revision_view_page.php?rev_id=7472#r7472 |
2015-06-16 09:57 | unknownna | Additional Information Updated | bug_revision_view_page.php?rev_id=7473#r7473 |
2015-07-08 23:12 | unknownna | Relationship added | related to 0002330 |
2018-09-30 21:37 | Blzut3 | Status | resolved => closed |
Notes |
|
|
Yeah, weapons like the SSG desync a lot for me when you hold fire as you are respawning. Of course only happens online. |
|
|
|
Sorry, can you explain how did you reproduce these? I see you used a ping emulator, but also other settings, like packet loss rate? |
|
|
|
Thanks for the report and nice to see you again, unknownna!
Can you post a detailed description on what exactly needs to be done to reproduce the sync problems? To fix this, we'll have to identify when this broken and thus need to reproduce the issue. |
|
|
(0012485)
|
Frits
|
2015-05-31 22:13
|
|
Yes, this has been happening so often since 1.3 to me. It's random at best but if a play a session of survival on BE it's bound to happen a couple of times these days while pre-1.3 it was more of a rare occurance. |
|
|
|
Quote from Torr Samaho Thanks for the report and nice to see you again, unknownna!
Thanks, it's nice to see you again as well. I don't have as much time to play/test Zandronum these days as I used to, but I still check the tracker and play online every now and then.
Quote from Edward-san Sorry, can you explain how did you reproduce these? I see you used a ping emulator, but also other settings, like packet loss rate?
Indeed, I'm using a ping emulator with an emulated ping of 251. No packet loss emulation enabled. I simply tap +attack while switching back and forth between the BFG and the rocket launcher, sometimes de-selecting a weapon before it has a chance to raise fully. It's incredibly easy to reproduce the issue.
I get the feeling that it might be caused by the implementation of the tic buffer and the subsequent re-ordering of packets that is now apparently taking place. But I could be wrong.
Quote from Frits It's random at best but if a play a session of survival on BE it's bound to happen a couple of times these days while pre-1.3 it was more of a rare occurance.
Keep in mind that certain desyncs that occur with custom mods, e.g. Complex Doom, are caused by instances of A_Jump* being called in the DECORATE code. The client can't predict those due to the way it currently works. |
|
|
|
|
|
(0012512)
|
unknownna
|
2015-06-04 17:08
(edited on: 2015-06-04 17:16) |
|
It also happens in that build.
BTW: It seems to happen particularly when picking up weapons for the first time after respawning.
|
|
|
|
|
|
|
It happens in both of those builds as well. |
|
|
|
|
|
|
It also happens in that build. If it happens in 2.0 and 3.0, wouldn't it be obvious that it also happens in 1.4 as well? |
|
|
(0012517)
|
Edward-san
|
2015-06-04 19:23
(edited on: 2015-06-04 19:26) |
|
Except that it happens with builds referring to a few commits after 1.3, which is strange. Are you really sure it doesn't happen in 1.3?
[edit]Okay sorry, I didn't read that you could reproduce in 1.3 as well.
|
|
|
(0012518)
|
Edward-san
|
2015-06-04 19:36
(edited on: 2015-06-04 19:42) |
|
|
|
|
I'd say that 1.3 and and 1.4 feel the same with 2.0 being the worst. |
|
|
(0012520)
|
Edward-san
|
2015-06-04 20:53
(edited on: 2015-06-04 21:04) |
|
|
|
|
|
|
|
Can you recheck the previous comment? There's also another build I added later.
|
|
|
(0012523)
|
unknownna
|
2015-06-04 21:28
(edited on: 2015-06-04 21:38) |
|
|
|
|
|
|
|
That one seems to be fine as well. |
|
|
|
|
|
|
|
|
|
|
|
|
That one seems to work fine. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(0012535)
|
Edward-san
|
2015-06-04 23:03
(edited on: 2015-06-04 23:09) |
|
|
|
|
That one seems to work fine as well. |
|
|
|
|
|
|
|
|
|
|
|
|
I stumbled upon an older report of mine and noticed that it actually started to break already in 1.0, which is a shame since we worked extremely hard on fixing the desyncs in the first place (the desyncs that occur without any mods loaded).
Quote from unknownna It changed somewhere between 3287 and 3298.
I can still confirm this.
So it started to break when respawning already in 3298, then it broke when switching weapons in 1.3 with the introduction of the tic buffer, and finally, it seemingly got worse (not too sure about this) in 2.0 with the re-ordering of packets. |
|
|
|
Speaking of weapon desyncs, I noticed that with complex doom, if I switch between weapons then I fire right away, sometimes the server doesn't fire at all, but the client does, desyncing the ammo. Can you check if this issue was already reported? |
|
|
|
I'm aware of the Complex Doom issues, but let's focus on the desyncs that occur without any mods loaded first, i.e., the desyncs that occur without any ACS/DECORATE. Also, let me repeat what I said earlier:
Quote from unknownna Keep in mind that certain desyncs that occur with custom mods, e.g. Complex Doom, are caused by instances of A_Jump* being called in the DECORATE code. The client can't predict those due to the way it currently works. |
|
|
|
Let me try to summarize the findings as basis to work on a fix. There seem to be (at least) three things that cause desyncs:
- something that was changed between the Skulltag SVN revisions 3287 and 3298.
- the addition of the tic buffer
- the reordering of the tic buffer
I'd say we should fix the oldest problem first. For this I could make a special binary where the tic buffer can be turned off. But can somebody go through 3287 till 3298 to isolate which of these changes caused the problem? I had a brief look at the logs and there are several things that can have an influence on the weapon sync in this range of revisions. |
|
|
|
Here is a 3.0 testing binary that can disable the tic buffer with "sv_useticbuffer 0". Can you check whether this fixes the problems that we assume to be caused by the tic buffer? |
|
|
(0012702)
|
unknownna
|
2015-06-14 08:49
(edited on: 2015-06-14 09:00) |
|
I'm able to reproduce the desync there as well when sv_useticbuffer is set to 0. Do you have to start the server with "sv_useticbuffer 0" or can you simply toggle it as you wish?
Edit:
It still happens when starting the server with "sv_useticbuffer 0".
|
|
|
|
You should be able to toggle sv_useticbuffer as you wish. Ok, then let's rule out the changes in 3.0 as additional source of problems. Here is a 2.1 beta build that supports sv_useticbuffer. |
|
|
(0012704)
|
unknownna
|
2015-06-14 09:12
(edited on: 2015-06-14 09:13) |
|
Quote from Torr Samaho Ok, then let's rule out the changes in 3.0 as additional source of problems.
Yeah, I must say that the weapon switching in general felt really weird and uncomfortable in 3.0.
Quote from Torr Samaho Here is a 2.1 beta build that supports sv_useticbuffer.
Yeah, that took care of the desync caused by the tic buffer.
|
|
|
|
While making the tic buffer optional, I had an idea how to possibly reduce the side effects of this buffer. Can you check if this binary has less sync problems caused by the tic buffer? |
|
|
(0012706)
|
unknownna
|
2015-06-14 09:40
(edited on: 2015-06-14 09:47) |
|
I was able to reproduce the desync there 2 times, but the behavior has dramatically improved from the former state. It rarely desyncs now.
|
|
|
|
Great, so we seem to be on the right track. Meanwhile, I realized that the testing binary would process up to three movement commands per tic instead of two. Can you test this binary to check whether the fix still works if we process at most two movement commands per tic? |
|
|
(0012708)
|
unknownna
|
2015-06-14 09:58
(edited on: 2015-06-14 10:46) |
|
It seems to work fine. I was only able to reproduce the desync once, but it seemed to correct itself. I think the fix still works fine with 2 commands per tic.
Edit:
Managed to desync it once more. It didn't correct itself this time.
And got it to desync 2 more times. But it rarely desyncs now.
|
|
|
(0012710)
|
cobalt
|
2015-06-14 10:45
|
|
|
|
|
I'm not sure how much further the side effects of the tic buffer can be reduced. After all, the tic buffer just tries to balance inevitable effects of delayed or reordered movement commands between the originator of the command and the other players. From your feedback it sounds as if the compromise is not too bad now.
Can somebody compile the old Skulltag SVN revisions between 3287 and 3298 so that we can isolate the cause of the other sync problems? |
|
|
(0012712)
|
unknownna
|
2015-06-14 11:16
(edited on: 2015-06-14 11:23) |
|
Indeed, I'd say that the regular weapon switching works reasonably well now, but it's not perfect. If I manage to reproduce the desync reliably in the future I'll let you know. I just hope it won't affect instances of picking up weapons at spawn.
Quote from Torr Samaho Can somebody compile the old Skulltag SVN revisions between 3287 and 3298 so that we can isolate the cause of the other sync problems?
Didn't we work on the teleporter/spawn/respawn prediction during those revisions?
|
|
|
(0012714)
|
Dusk
|
2015-06-14 12:50
(edited on: 2015-06-14 18:38) |
|
Here are the builds for the Skulltag revisions between 3287-3298:
- r3287
- r3288
- r3289
- r3290
- r3291
- r3292
- r3293
- r3294
- r3295
- r3296
- r3297
- r3298
Note that these have the G15 stuff disabled because it interfered with the building and I cannot be bothered to figure out how to make it compile properly.
|
|
|
|
|
|
|
|