MantisBT - Zandronum
View Issue Details
0002913Zandronum[All Projects] Bugpublic2016-11-10 00:292016-11-13 16:58
Cutman 
 
normalmajoralways
closednot fixable 
MicrosoftWindowsXP/Vista/7
3.0-beta 
 
0002913: A_Warp is relatively costly on bandwidth
A_Warp causes a large amount of latency compared to other functions. The given wad supplies you with a weapon that spawns 8 projectiles around you that follow you around and explode when they come in contact with terrain. This effect can be stacked in order to test what would occur if a number of other players used it.
1) Load the given wad into a LAN server
2) Join the server and give yourself the weapon
3) Use said weapon a number of times equal to the number of players you wish to test using the weapon.
4) Execute the following command in the server console:
sv_measureoutboundtraffic 1; rcon cleartrafficmeasure; wait 350; rcon dumptrafficmeasure;

This command measures the bandwidth of all the active scripts and actors over the course of ten seconds.

The actor "WarpBall" should present an outstanding number of bytes in traffic.
No tags attached.
? WarperTest.pk3 (760) 2016-11-10 00:29
/tracker/file_download.php?file_id=1962&type=bug
Issue History
2016-11-10 00:29CutmanNew Issue
2016-11-10 00:29CutmanFile Added: WarperTest.pk3
2016-11-13 09:25Torr SamahoNote Added: 0016181
2016-11-13 09:25Torr SamahoStatusnew => feedback
2016-11-13 16:41CutmanNote Added: 0016185
2016-11-13 16:41CutmanStatusfeedback => new
2016-11-13 16:58Torr SamahoStatusnew => closed
2016-11-13 16:58Torr SamahoResolutionopen => not fixable

Notes
(0016181)
Torr Samaho   
2016-11-13 09:25   
Each A_Warp call that changes the position of an actor needs bandwidth, so continuously changing the position of many actors with A_Warp needs a lot of bandwidth. That's what you see in your example wad and I don't see anything we could do in Zandronum that would significantly change that. The experimental lz4 compression helps a bit (reduces the traffic by about a factor of 2), but that's still a lot of traffic.

To work around the problem you could split the actor in a visible CLIENTSIDEONLY actor that does no damage and an invisible SERVERSIDEONLY actor that handles the damage. They won't be perfectly in sync, but it will be hopefully sufficiently accurate and won't need any bandwidth for the A_Warp calls.
(0016185)
Cutman   
2016-11-13 16:41   
Yeah I figured as much. We'll play around with clientside/serverside stuff. Thanks!