No Lag Guide

xxslashxx

Active Member
Joined
Mar 3, 2009
Messages
381
Minimum Lag Guide

So due to popular request, I am posting a guide to help you guys (hopefully) bring your lag down; and make you the best Insurgency players out there. The first thing however is to understand how the lag system works in insurgency.
There are several parts to this guide, if you would like please skip over to the required section.

Section I- What is lag, definitions and concepts.

Section II- Understand Net_Graph 3

Section III- Recommended settings.



Section I

Ok to understand what is going on when you play Insurgency, and why there is lag you need to understand the nature of it. It all comes down to what is popularly referred to as "Lag". Since all the people that are in the server are at different distances and with different connection speeds; it creates this phenomenon.
Latency is the time taken for a sent packet of data to be received at the other end (limited to the speed of light).
Ping is a tool that can tell you how long it takes for packets to make a round trip. It gives you a reading in ms (milliseconds).
RateThis is the max amount of data being sent to you from the server. With more people playing on the server, a player will be receiving more data.
ChokeTo explain choke the simplest form I can phrase this at is that it is server lag. This is a measure of how much data is not getting sent to the server. For instance, with high choke, it may not register that you moved three spaces to the right, or pulled out your knife the instant you click your mouse. The default in all Insurgency servers is set to 30 times a second. Many things can be tweaked to decrease it. Please refer below.
LossAs the name implies some packets get lost on their way to the server and back. (Sometimes through your internet provider, or through what I like to call the Internet cookie monster; he devours some packets of information - never to be seen again). This creates lag that is neither from your computer or from the server and there is usually not much that you can do. Be aware that Loss, unlike Choke, is tied to your ISP or an outside source.

Section II

Ok if you read the above information you will have an easier time understanding what the net_graph box is. If you have never seen one, then here is a picture (borrowed) and a short explanation of what those numbers mean. First of all you need to enable the developers console. To do this, go into options --> keyboard --> advanced. There should be a box that should be checked to enable the developers console. Once you have clicked this box and pressed ok; go ahead and open the console. The default key is ~ called the tilde. Once in the console my favorite display is "net_graph 3". This will display a small box on the bottom right of your screen similar to the picture below.
net_graph_3.jpg


1- FPS This stands for Frames per second; it means how many pictures in a second your computer can display in the screen for you. This usually depends on your video card, but some low outputs on console can give you a lower FPS than you could ideally have.
2-Ping This is how long it takes for packets to get to your computer to the server and back. As you can see it is measured in ms (milliseconds). Ideally a lower number is what you are aiming for, but is limited to the distance to the server.
3-Data This number tells you how many packets you are sending and receiving to the server. If the out number is exaggeratedly high it could create choke.
4-Kilobits This tells you how many kilobits per second your sending and receiving from the server.
5-Tick From valve "During each tick, the server processes incoming user commands, runs a physical simulation step, checks the game rules, and updates all object states. After simulating a tick, the server decides if any client needs a world update and takes a snapshot of the current world state if necessary. A higher tickrate increases the simulation precision, but also requires more CPU power and available bandwidth on both server and client. " What I take from this is how many calculations the server can make. (this is independent of your own computer)
6-Loss Is information lost to the Internet Cookie Monster. Ideally 0.
7-Choke How much data is not getting to the server. Ideally 0.

Section III

Depending on what numbers you see in your net_graph there are different steps you can take to fix it. I want to give you guys a rundown of what different commands can do.

cl_cmdrate The cmdrate is a measure of how many times per second your computer will send your position to the server per second. The default CMD setting is set at 20. This can have a profound effect on your choke, as choke is a measure of how much data is not getting sent to the server. For instance, with high choke, it may not register that you moved three spaces to the right, or pulled out your Makarov the instant you click your mouse.

The recommended setting for this is "cl_cmdrate 80". However depending on what you see on 5 refer below.

Raising the cl_cmdrate increases the amount of data sent
This is good if your connection can handle it. Thus, most cable connection are set at 80-100, with 100 being the best. However this might change again depending on your connection.

Lowering the cl_cmdrate decreases the amount of data sent
Lower settings are optimal for slower connections such as 56k. If too much information is sent through the connection line, choke may occur, thus inhibiting your ability to frag consistently. Be aware that the cl_cmdrate is also tied to your FPS. If you are still experiencing a lot of choke, consider reducing your cl_cmdrate to match the average FPS of your video card. The card may be having trouble displaying info from the server.

cl_updaterate The update rate is a measure of how often your computer asks the server for a players position per second. The update rate should be ? of the cmd rate for optimal connectivity. It is critical to adjust the rates in such a way as to keep this ratio constant. If there is a moment where you choke rises above 10, adjust your rates. The default value is at 20.

rate
Rate is the max amount of data being sent to you from the server. With more people playing on the server, a player will be receiving more data. The amount of data that you can receive is dependent upon your connection. Here are the recommended rates depending on your connection.
56k: rate 1800
Slow Cable/DSL: rate 20000
Fast Cable/DSL: rate 25000

For individual case by case scenarios
Play the game for a few minutes. You will need to make sure that area 5 on the net_graph is not being limited by the server. If it stays at 33.3 all the time, it means you should tweak this on a different server that allows for higher rates like ours which is 66.6. Once you find a server that is not limited, you want to make sure your rates are cmd 80, and update 60. Play on the server for a few rounds, and keep an eye on your CHOKE and LOSS.
If you are experiencing choke, you will need to change your rates lower. The correct ratio for update to command means cl_updaterate should be 3/4 of cmdrate (75% is good)-- *This means CMDRATE is higher than UPDATERATE by a pinch. So, lower your rates, keeping ROUGHLY the same ratio. If your choke is 30, lower your rates about 30 (but make sure you still use the ratio of 75%). This would mean cl_updaterate 35 and cl_cmdrate 50 (thats 70% ratio, close enough). Try the new settings, and adjust your rates as needed. You want to lower your rates until you get less than 2 choke in the middle of a round, and less than 10 at the beginning, and end of a round. (choke is higher at beginning and end of rounds while server does stats, and resets objects).
Once you get to 0 choke, and 0 loss (loss may not change if it is a network problem) you have your proper rates.

cl_interp
Insurgency mod lets you improve your lag even more. After your rates are set up correctly then you can use this command "cl_interp" is a measure that tells your computer how fast to interpret the player and object positions sent to you by the server. The interp depends entirely upon your updaterate and should be calculated as 1/update rate. So for example if your updaterate is 50 then your interp should be .02

fps_max
This command allows your computer to display more frames per second in your monitor. This increases the amount of pictures you can see on your monitor which gives you a more accurate and hopefully more lethal advantage. If you have the supporting video card then I would set this value to "fps_max 300". It is not likely that you will get 300 fps, but you will at least not be limited by this factor.

Good luck guys, any questions or comments I will be more than happy to assist! :w00t::w00t::w00t:


special thanks to Fish Tank Clan.
 
Last edited:
Great guide, I'd like to add a couple things very briefly. You guys can just google search this stuff.

With Source games there are 3 ways to customize your gaming experience. 1 is console commands which Slash was kind enough to share with us.

2: .cfg files. These are probably the most complicated, but also very effective. You can pretty much change anything. It is NOT recommended that you change the config.cfg file, but make an autoexec.cfg file which source games auto detect when you start the game. The .cfg files are found in Steam>SteamApps>[User Name]>[Game Name]>cfg

example: Steam>SteamApps>The Yeti>Halflife2>hl2>cfg

3. Launch options. here you can change the directx level, launch in windowed mode, change the resolution, disable intro videos, etc. All commands must be written "-[command]"
example: -dxlevel 70 -nosync -novid -sw -w 800 -h 600 -noborder -console -dev

note: when changing dxlevel after you launch the game the setting will be saved, however, remove it after that or your in-game graphic settings will be reset to the defaults everytime.

If anybody wants something more indepth and too lazy to google it, I'd be happy to post a complete guide. Just not right now at 0101
 
Hey Yeti thats great input; if you would like to elaborate a little more; I wouldnt mind putting that here on the appendix.:)
 

Latest posts

Back
Top