Jump to content
Sign in to follow this  
terox

All about MinErrorToSendNear

Recommended Posts

All about MinErrorToSendNear

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

Useful Links

What the BIKI states

MinErrorToSendNear=<limit>;

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.

Introduced in ArmA 2 1.60, Default: 0.01

What is known

The engines runs calculations on objects comparing the perceived state of an object to the actual state 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 or server about the state 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).

The Minerrortosendnear defines the minimum error value that has to be returned by the error calculation on the object before updates are sent

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 MinErrorToSend

What you are trying to achieve

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

The default value is 0.01

How to test the value

You could perhaps test this by having a test mission where AI at failrly close distances, 50m perhaps are running across your path left to right and vice versa and view their movements through binoculars

Increasing the MinErrortosend from default until you start to see non smooth movement, then reduce the setting a little

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

MinErrorToSendNear
Means 
// ((distance ^ 2) * METS / 20)max METSN

// 1000m with default METS and METSN
(1000^2)*0.001/20=50 max 0.01; // ~50 m is the minimum error to send for 0.001 MinErrorToSend in 1000m
// 100m with default METS and METSN
(100^2)*0.001/20=0.5 max 0.01; // ~0.5 m is the minimum error to send in 100m

// 10m with default METS and METSN
(10^2)*0.001/20=0.005 max 0.01; // ~5 cm is the minimum error to send in 10m

// 1m with default METS and METSN
(1^2)*0.001/20=0.00005 max 0.01; // ~1 cm is the minimum error to send in 1m

 

All this does is limit the minimum amount of error required to send. 
1 cm is small. Try to move 1 cm in-game...

Best idea would be to test how much is the minimum amount you move by tapping W.
That would reveal how big this value could be. 


But the question still remains, how does this value matter when rotation comes to play.
Because it's important to see 

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  

×