Cl_interp And You!

Net

Achievement Hunter
Originally posted at FFN

So I've been heavily involved in cl_interp calculations for years, I have come to a standard practice which generally results in near perfect interp values. I asked a few people on the 2fort server if they were interested in me posting a topic relating to this and they answered with yes.

What is cl_interp?
Cl_interp without getting to specific and complicated is essentially how the hitboxes are calculated and "Displayed" on a clients PC and how registry is sent to the server. To be more specific using the default interpolation settings your shot registry is processed as if you have 100ms ping. Interp is also largely based around various other network commands that are within the Source Engine.

People have argued for years that interpolation has little effect on gameplay while in Public Servers which is largely true due to high pings, but over the years servers have advanced to the point where people like myself can maintain 30ms pings from across the world.

What is the best setting for cl_interp?
The rule of thumb I like to use is interp should = half your ping +25% (rounded). This essentially breaks down into the following. (Make sure you use Net_graph 1 to calculate your actual ping and not the scoreboard).

30ms ping Interp Settings
1/2 of 30 = 15
25% of 15 = 3.75
3.75 + 15 = 18.75 (Rounded, 19)

Based on that the following settings, (Assuming you can maintain 66FPS Constantly) would be the following.

rate 100000 (This is whatever you're comfortable with, if you have a somewhat decent internet connection increasing this can enhance your gameplay).
cl_updaterate 67
cl_cmdrate 101
cl_interp 0.019 (0.1 = 100, 0.01 = 10)
cl_interp_ratio 2


What interp settings do you use?
I live in Canada and average 30ms to 100 tick (50ms average on FreeFrag servers) (It's a server "Hack" to enable 100 tick in TF2 and is not officially supported by Valve) so my settings are below.
rate "100000" // Change to your liking
cl_cmdrate "101" // Max Tick Rate for Team Fortress 2
cl_updaterate "101" // Max Tick Rate for Team Fortress (Don't dispute this, even if servers aren't running this particular modification it is still possible)
cl_smooth "1" // Try this command in-game, some people prefer smooth off and some people prefer it on. It only effects the delay between hit registry packets which is only 0.01 (.01ms)
cl_smoothtime "0.1" // This has to do with the above command.
fps_max "0" // I've capped the FPS at 300, you can uncap the FPS by setting this to 0.
cl_interp ".045" // This is better for people that are within 5ms - 30ms pings, I have found that if you half your ping that is the interp you should use. Example 50ms, 0.025 - 0.030.
cl_interp_ratio "1" // your mother
cl_resend 2 // Default is 6. Delay in seconds before the client will resend the 'connect' attempt. I prefer 2, if you want the default change this value.
My interp has been optimized to be perfect on FFN and servers that give me roughly 50ms ping, I can reduce my Interp to 0.033 but for me I find 0.045 is the perfect balance between registry and compensation.

What should my interp be?
Post what your average ping is and I can help you find out a perfect latency for you, what I have posted in this topic should be taken lightly. I am not an expert but I have done a large amount of research on this topic, interp values vary based on server FPS, Server Rate caps, Server Updaterate, Server Tick Rate.

PS: If people are interested I can also explain how to make it so these settings are automatically loaded through your Autoexec.cfg, it's not very difficult and saves you a lot of time. I've had my personal FPS configuration released to the public for over two years and this is what currently resides in it.
// Netcode Settings (Adjust To Preference)
rate "100000" // Change to your liking
cl_cmdrate "101" // Max Tick Rate for Team Fortress 2
cl_updaterate "101" // Max Tick Rate for Team Fortress (Don't dispute this, even if servers aren't running this particular modification it is still possible)
cl_smooth "1" // Try this command in-game, some people prefer smooth off and some people prefer it on. It only effects the delay between hit registry packets which is only 0.01 (.01ms)
cl_smoothtime "0.1" // This has to do with the above command.
fps_max "300" // I've capped the FPS at 300, you can uncap the FPS by setting this to 0.
cl_interp ".0152" // This is better for people that are within 5ms - 30ms pings, I have found that if you half your ping that is the interp you should use. Example 50ms, 0.025 - 0.030.
cl_interp_ratio "1" // your mother
cl_resend 2 // Default is 6. Delay in seconds before the client will resend the 'connect' attempt. I prefer 2, if you want the default change this value.

// Multi-Core Settings
host_thread_mode "1"
r_threaded_particles "1"
r_threaded_renderables "1"
snd_mix_async "1"
mat_queue_mode "2" // This enables Multiple Threaded Support, 2 = Dual / Quad Support, -1 is auto-detection and 0 is disabled
You'll notice my interp in what I posted above is largely for scrimming and competitive server matches where my ping is always extremely low. Remember what I said, take this post lightly, their are many, many, many theories and number crunches done that have had various outcomes, this is one of the more publicly acceptable methods of finding interp.

PS: Don't bother with Interp_ratio, this should only ever be altered by someone who understands completely how the ticket system in OBEngine is handled for network calculations.
 
Hello,
You seem to be very knowledgeable about this, I on the other hand am not so I was wondering if you could help me out.

I also live in canada.
Average Ping: I would say 40 but I'm not 100% sure on how to find you average ping.
Average FPS (w/ Chris's config): 70

If you or anyone else can help me, feel free to respond or add me on steam. http://steamcommunity.com/profiles/76561198042049326/
-Inky
 

Funding Progress To Date

VaultF4 on Steam


48186 Members
(6673 Online 365 In-Game)
Join the group
Back
Top Bottom