Jump to content
  • 0

Always desync/rubberbanding/warping... How to fix?


IT07

Question

Hi peeps,

 

Now the time has come that I am requesting external help for an insanely annoying problem I am having for a while now:

ALWAYS desync on my own private test server. I have tried tons of different basic.cfg's and other tweaks but nothing helped.

Here is a video that shows what is actually happening:

 

 

In that video I am following an AI that is driving to a waypoint. Just look at the desync it is insane.

You do not have to watch the whole video to get the point though. I am just trying to show as much examples as I could give.

In the end there's a little funny moment though you should see it :)

While capturing that video I was alone on the server with the ONLY AI driving being that one I was following, about 200 vehicles on the map, no Epoch buildable stuff on the map, Server FPS was around 47 and very low network usage. CPU usage was also very low; about 18%. Also a little extra buildings put in via altis.h and that is about it for the details.

 

Anyone can assist me with this? I would really appreciate that. I have a certain set of coding skills so I might be able to help you with something in return ;)

 

Server specs:

CPU: Intel Xeon quad-core Westmere e56xx 2.2Ghz

MEM: 8Gb ECC 18756Mhz

SSD: 300Gb eSATA 1Gb/s

Network: 1Gbps uplink, 700Mbit down

OS: Windows Server 2012 R2

ArmA 3: 1.48, (.exe priority set to RealTime) with Epoch 0.3.0.4

 

Thanks in advance,

IT07

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

What are you MinBandwidth and MaxBandwidth settings set to in basic.cfg?
Our settings say:

MinBandwidth // Bandwidth the server is guaranteed to have (in bps). This value helps server to estimate bandwidth available. Increasing it to too optimistic values can increase lag and CPU load, as too many messages will be sent but discarded. Default: 131072

MaxBandwidth // Bandwidth the server is guaranteed to never have. This value helps the server to estimate bandwidth available.

 

I think our default ones were set to 100mbps / 1gbps. I've dropped our test server down a bit, and I dont seem to get many issues on there. Maybe that's worth a try?

 

Might not help, but just an idea :)

 

Edit: Also, just found this thread about the same sort of thing: http://forums.bistudio.com/showthread.php?163920-Bandwidth-settings-for-a-40-player-server

Link to comment
Share on other sites

  • 0

I've just changed ours and haven't test them yet (I'm in work atm), but I've set ours to:

// These options are created by default
language="English";
adapter=-1;
3D_Performance=1.000000;
Resolution_W=800;
Resolution_H=600;
Resolution_Bpp=32;


// These options are important for performance tuning

MinBandwidth = 10485760;			// Bandwidth the server is guaranteed to have (in bps). This value helps server to estimate bandwidth available. Increasing it to too optimistic values can increase lag and CPU load, as too many messages will be sent but discarded. Default: 131072
MaxBandwidth = 20971520;		// Bandwidth the server is guaranteed to never have. This value helps the server to estimate bandwidth available.

MaxMsgSend = 256;			// Maximum number of messages that can be sent in one simulation cycle. Increasing this value can decrease lag on high upload bandwidth servers. Default: 128
//MaxSizeGuaranteed = 512;		// Maximum size of guaranteed packet in bytes (without headers). Small messages are packed to larger frames. Guaranteed messages are used for non-repetitive events like shooting. Default: 512
//MaxSizeNonguaranteed = 256;		// Maximum size of non-guaranteed packet in bytes (without headers). Non-guaranteed messages are used for repetitive updates like soldier or vehicle position. Increasing this value may improve bandwidth requirement, but it may increase lag. Default: 256

MinErrorToSend = 0.002;			// Minimal error to send updates across network. Using a smaller value can make units observed by binoculars or sniper rifle to move smoother. Default: 0.001
MinErrorToSendNear = 0.02;		// Minimal error to send updates across network for near units. Using larger value can reduce traffic sent for near units. Used to control client to server traffic as well. Default: 0.01

MaxCustomFileSize = 0;			// (bytes) Users with custom face or custom sound larger than this size are kicked when trying to connect.

I set ours to 10-20mb the other day, then have just commented out the MaxSizeGuaranteed and MaxSizeNonguaranteed (to be tested)

Link to comment
Share on other sites

  • 0

@Brian:

Ok thanks for the tip I will do some testing and see how it goes.

Another issue I notice too: any command executed over the server has a very unstable exec time. For example: if I execute a little script that makes all vehicles jump, sometimes there is about 2 seconds delay but no server FPS drops or anything like that. What I do notice is that whilst having #monitor 1 on, exactly when the exec delay is happening, the monitoring stops and then after the stop it shows all the previous messages that were meant to be sent during the delay.

What to me sounds like some netcode/network issues.

 

But apart from that I will test your tip out, Brian. Thanks.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
  • Discord

×
×
  • Create New...