Jump to content
Sign in to follow this  
terox

All about MinErrorToSend

Recommended Posts

All about MinErrorToSend

This thread is part of a much wider discussion on server bandwidth optimisation Tutorial: Server Bandwidth & Optimisation

Useful Links

What the BIKI states

MinErrorToSend=<limit>;

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 (was 0.01 until ARMA 2:OA version 1.60, ARMA 2 version 1.11 uses 0.01)

What is known

The engines runs calculations on objects comparing the perceived status of an object to the actual status of an object. The outcome of this calculation is an "error value"

When the error value is greater than the value set by MinErrorToSend data is sent across the network to update the clients about the status of the object

Typically the type of data that is being checked in the computation is velocity, vector, position and distance to the player object etc

To give you an idea of the amount of movement that can occur before these objects are updated by this monitor

For the default value 0.001, an object at a range of

  • 1 km can move 50 metres
  • 2km can move 200m

In reality the actual distance it moves before an update is sent is likely to be much less as the velocity, vector and other object data is likely to change forcing an earlier update.

The gaps between these updates are filled using a simulation based on last known values and smoothed by interpolation (introduced in 1.60, before that you could see the jumps caused by the estimated simulation not matching the real object position).

Increasing this value decreases the amount of data being sent across the network

Setting the value too high creates a "warping" effect where you see moving objects teleport instead of smoothly moving

Relationship to other settings

The calculation also takes into consideration another setting called MinErrorToSendNear

this setting, unlike MinErrorToSend is an absolute value and is not dependant on distance. So if the calculation for the error ireturns an error value less than MinErrorToSendnear, no update data is sent

What you are trying to achieve

Setting the MinErrorToSend as high as possible without seeing any teleporting and maintaining what visually appears to be smooth movement

How to test the value

You could test this by having a test mission where AI at various distances, 100, 200, 500m, 1km, 2km distance from you are running across your path left to right and vice versa and view their movements through binoculars

Increasing the MinErrortosend from default until you have the optimal setting

What we may need to know:

  1. Would this value need to be lower for PVP compared to COOP
  2. Would the optimum value change depending on the number of players that the server supports?
  3. Anything else else ?

Calculation Formulae

This is an internal engine calculation and not a calculation you would use to set your value

The formula can be derived as:

error*20/dist^2>MinErrorToSend

dist^2/20<error/MinErrorToSend

dist = sqrt(20*error/MinErrorToSend)

Edited by Terox

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×