MantisBT - Zandronum
View Issue Details
0000803Zandronum[All Projects] Suggestionpublic2012-04-22 18:512018-09-30 19:51
TIHan 
TIHan 
highfeaturehave not tried
closedfixed 
1.0-beta 
1.01.0 
0000803: Reducing Monster Bandwidth Patch
This patch lets the server tell clients to use their last updated position on actors. This apparently decreases bandwidth usage by a significant amount.
'https://bitbucket.org/TIHan/tst/changeset/ba94e451c3f8 [^]'
I have provided a binary for testing.
'http://www.mediafire.com/download.php?1dczqx6b4iw2kcs [^]'

We need to test to see how monster client prediction works as well as this:
"<@Torr_Samaho> You'll need an example where the monster moves if the [A_Jump] is not made and stays stationary otherwise."
No tags attached.
related to 0000757new  Monster Bandwidth Mitigation 
related to 0001268new  Huffman optimization 
png Screenshot_Doom_20120422_213702_01.png (201,624) 2012-04-22 19:43
https://zandronum.com/tracker/file_download.php?file_id=570&type=bug
png
Issue History
2012-04-22 18:51TIHanNew Issue
2012-04-22 18:54TIHanDescription Updatedbug_revision_view_page.php?rev_id=1801#r1801
2012-04-22 18:58TIHanAssigned To => TIHan
2012-04-22 18:58TIHanStatusnew => needs review
2012-04-22 19:26Torr SamahoNote Added: 0003384
2012-04-22 19:29Torr SamahoNote Edited: 0003384bug_revision_view_page.php?bugnote_id=3384#r1803
2012-04-22 19:42unknownnaNote Added: 0003385
2012-04-22 19:43unknownnaFile Added: Screenshot_Doom_20120422_213702_01.png
2012-04-22 20:51TIHanNote Added: 0003386
2012-04-22 21:04TIHanNote Edited: 0003386bug_revision_view_page.php?bugnote_id=3386#r1805
2012-04-22 21:08unknownnaNote Added: 0003387
2012-04-22 21:10TIHanNote Added: 0003388
2012-04-22 21:19unknownnaNote Edited: 0003387bug_revision_view_page.php?bugnote_id=3387#r1807
2012-04-22 21:22unknownnaNote Edited: 0003387bug_revision_view_page.php?bugnote_id=3387#r1808
2012-04-22 22:28TIHanNote Added: 0003390
2012-04-23 01:37TIHanNote Added: 0003396
2012-04-23 01:37TIHanNote Edited: 0003396bug_revision_view_page.php?bugnote_id=3396#r1810
2012-04-23 10:49unknownnaNote Added: 0003399
2012-04-23 14:26TIHanNote Added: 0003403
2012-04-24 08:11unknownnaNote Added: 0003416
2012-04-29 02:33TIHanRelationship addedrelated to 0000757
2012-05-01 01:43Torr SamahoNote Added: 0003516
2012-05-01 01:44Torr SamahoStatusneeds review => feedback
2012-05-02 07:04TIHanNote Added: 0003555
2012-05-02 07:04TIHanStatusfeedback => assigned
2012-05-02 07:04TIHanStatusassigned => needs review
2012-06-24 10:23Torr SamahoNote Added: 0003834
2012-06-24 10:23Torr SamahoStatusneeds review => needs testing
2012-08-02 13:55WatermelonNote Added: 0004199
2012-08-02 19:13Torr SamahoStatusneeds testing => resolved
2012-08-02 19:13Torr SamahoFixed in Version => 1.0
2012-08-02 19:13Torr SamahoResolutionopen => fixed
2014-06-13 18:05WatermelonRelationship addedrelated to 0001268
2018-09-30 19:51Blzut3Statusresolved => closed

Notes
(0003384)
Torr Samaho   
2012-04-22 19:26   
(edited on: 2012-04-22 19:29)
Yeah, as discussed on IRC this should work fine. There are a two minor things I see in the code: I wonder if we should only add CM_REUSE_* if the corresponding ( ulBits & CM_* ) check is true since there is no need to sent the position unless ulBits tells us to. And instead of pasting the code in SERVERCOMMANDS_MoveThing and SERVERCOMMANDS_MoveThingExact it would be good to put it into a new function.

Regrading the IRC quote, I think you misunderstood me there. With this kind of example wad you can see that the CM_REUSE_* mechanism is necessary (instead of just not sending the position). So we can add this without such an example.

(0003385)
unknownna   
2012-04-22 19:42   
I noticed something after a changemap map change in Hell Revealed 2. The Baron of Hell and the Shotgun guys start to glitch. It looks like their z position flickers between 2 points.
(0003386)
TIHan   
2012-04-22 20:51   
(edited on: 2012-04-22 21:04)
Here is an update.
'https://bitbucket.org/TIHan/tst/changeset/19b73c5378ad [^]'
Binary.
'http://www.mediafire.com/download.php?9b1tgj96s59fqb3 [^]'

Note:
This doesn't fix the flickering. Give me a moment to look into that.

(0003387)
unknownna   
2012-04-22 21:08   
(edited on: 2012-04-22 21:22)
> This doesn't fix the flickering. Give me a moment to look into that.

I was about to say that. Cacodemons/Pain Elementals and Lost Souls are broken now as well.

(0003388)
TIHan   
2012-04-22 21:10   
> I was about to say that. Cacodemons are broken now as well.

Confirmed, I'll look into this as well.
(0003390)
TIHan   
2012-04-22 22:28   
This takes care of our flickering issue.
'https://bitbucket.org/TIHan/tst/changeset/6f9230d041cc [^]'

Still digging into the cacodemons being broke, or any flying monster for that matter. Part of it has to do with the flying monsters being somewhat broken before hand too.
(0003396)
TIHan   
2012-04-23 01:37   
Well, I found out the problem. I'm an idiot.
'https://bitbucket.org/TIHan/tst/changeset/706a0e3d4f6d [^]'
Forgot to send info to the clients.........


Binary.
'http://www.mediafire.com/download.php?h91oz8y6a737bg6 [^]'

(0003399)
unknownna   
2012-04-23 10:49   
It seems to work now. Lost Souls are still desyncing like they did before. You can can reproduce this by firing a pistol shot at a charging LS to make it charge backwards. After firing the pistol shot, run up to the LS and touch it. It will then freeze on the client-end until it hits a wall/thing on the server end.
(0003403)
TIHan   
2012-04-23 14:26   
> Lost Souls are still desyncing like they did before.

So everything works exactly the way it did before? If that's true, then this patch is done.

> After firing the pistol shot, run up to the LS and touch it. It will then freeze on the client-end until it hits a wall/thing on the server end.

Hmm, maybe we could put MF2_THRUACTORS on client-side monsters. That may solve our desyncing issues.
(0003416)
unknownna   
2012-04-24 08:11   
> So everything works exactly the way it did before?

Yes, I think so, but I'm not completely sure about this.
(0003516)
Torr Samaho   
2012-05-01 01:43   
I started porting this (https://bitbucket.org/Torr_Samaho/skulltag/changeset/2a154eb5f61c) but noticed an issue in p_mobj.cpp: At first glance I'd say that the coordinates ix, iy, iz don't necessarily reflect the position where the actor is actually spawned. Since the server sends the actual position to the clients though this means that lastX/Y/Z can mismatch on client and server.
(0003555)
TIHan   
2012-05-02 07:04   
Please review this.
'https://bitbucket.org/TIHan/tst/changeset/c1df0b4ba2c1 [^]'
(0003834)
Torr Samaho   
2012-06-24 10:23   
Patch added, I just slightly simplified the sv_main.cpp part (CM_LAST_X/Y/Z shouldn't be needed for missiles, so this update could be merged with the MOM_X/Y/Z stuff for non-missile actors).

Would be great if this gets thorough testing when the next beta build is released.
(0004199)
Watermelon   
2012-08-02 13:55   
I think confirmed, I tested the bandwidth and noticed a decrease in output with lots of active monsters.

We will find out it's true potential when people play the new version with Zdoomwars though.