cl_interp_ratio explanation

equk

New member
Since the newest patch valve seem to have removed cl_interp (well it's there but inactive). Not sure why they've opted for this new thing other than being able to set a max+min ratio. Altho it's no good without enforcing a minimum updrate.

You can work out the interp from a simple calculation ($cl_interp_ratio ÷ $cl_updrate = *interp*)

For the OC3D server at current - rates are enforced to 66 minimum

*cl_interp_ratio is 1 by default

*sv_client_min_interp_ratio is 1 by default

*sv_client_max_interp_ratio is 2 by default



So the min and max interp on the 66 enforced server would be 0.015 and 0.03. (u can go to 100tic on some OC3D so min - 0.01)

It's still quite a range tho.

It still doesn't lock down the interp command tho (unless you change the sv_ vars) and is a bit confusing.

The main thing to remember is if you (or a server) change(s) your updrate your interp is also going to change.
 
just found some data that makes more sense :)

cl_interp_ratio simply causes the interpolation delay to be calculated off the clients cl_updaterate (The amount of updates the clients receive per second. This will not exceed the servers sv_maxupdaterate or servers tickrate, which ever is the smaller)

The outcome for this is as follows:

cl_interp_ratio 1.0 cl_updaterate 30 interpolation = 0.033

cl_interp_ratio 1.0 cl_updaterate 35 interpolation = 0.029

cl_interp_ratio 1.0 cl_updaterate 40 interpolation = 0.025

cl_interp_ratio 1.0 cl_updaterate 50 interpolation = 0.020

cl_interp_ratio 1.0 cl_updaterate 60 interpolation = 0.017

cl_interp_ratio 1.0 cl_updaterate 66 interpolation = 0.015

cl_interp_ratio 1.0 cl_updaterate 75 interpolation = 0.013

cl_interp_ratio 1.0 cl_updaterate 80 interpolation = 0.013

cl_interp_ratio 1.0 cl_updaterate 100 interpolation = 0.010

cl_interp_ratio 1.5 cl_updaterate 30 interpolation = 0.050

cl_interp_ratio 1.5 cl_updaterate 35 interpolation = 0.043

cl_interp_ratio 1.5 cl_updaterate 40 interpolation = 0.038

cl_interp_ratio 1.5 cl_updaterate 50 interpolation = 0.030

cl_interp_ratio 1.5 cl_updaterate 60 interpolation = 0.025

cl_interp_ratio 1.5 cl_updaterate 66 interpolation = 0.023

cl_interp_ratio 1.5 cl_updaterate 75 interpolation = 0.020

cl_interp_ratio 1.5 cl_updaterate 80 interpolation = 0.019

cl_interp_ratio 1.5 cl_updaterate 100 interpolation = 0.015

cl_interp_ratio 2.0 cl_updaterate 30 interpolation = 0.067

cl_interp_ratio 2.0 cl_updaterate 35 interpolation = 0.057

cl_interp_ratio 2.0 cl_updaterate 40 interpolation = 0.050

cl_interp_ratio 2.0 cl_updaterate 50 interpolation = 0.040

cl_interp_ratio 2.0 cl_updaterate 60 interpolation = 0.033

cl_interp_ratio 2.0 cl_updaterate 66 interpolation = 0.030

cl_interp_ratio 2.0 cl_updaterate 75 interpolation = 0.027

cl_interp_ratio 2.0 cl_updaterate 80 interpolation = 0.025

cl_interp_ratio 2.0 cl_updaterate 100 interpolation = 0.020

Clients can have higher cl_interp_ratio values to accomodate for packetloss & choke.

There are 2 server side variables that limit how large a clients cl_interp_ratio can be, these are:

"sv_client_min_interp_ratio" = "1" replicated - This can be used to limit the value of cl_interp_ratio for connected clients (only while they are connected). -1 = let clients set cl_interp_ratio to anything any other value = set minimum value for cl_interp_ratio

"sv_client_max_interp_ratio" = "2" replicated - This can be used to limit the value of cl_interp_ratio for connected clients (only while they are connected). If sv_client_min_interp_ratio is -1, then this cvar has no effect.

The bottom line is this: interp is calculated off your updaterate. Change your updaterate and your interp will change, it is as simple as that!
 
Back
Top