Graphs

net_graph 1:

  1. FPS (frames per second) & Ping (latency to the server in milliseconds)
  2. Last received packet size in bytes / Traffic in kilobytes per second
  3. Last sent packet size in bytes / Traffic out kilobytes per second
  4. Ping graph. Height = ping, Red = loss, Yellow = choke. You want low and stable graph.
    Loss means a lost packet due bad connection and choke means your rates are too low
  5. Render graph. Graph staying below the white line is good.
  6. When interpolation turns into yellow and red like this, you are extrapolating (bad)
  7. cl_updaterate
  8. cl_cmdrate

 

net_graph 3:

  1. FPS (frames per second) & Ping (latency to the server in milliseconds)
  2. Last received packet size in bytes / Traffic in kilobytes per second
  3. Last sent packet size in bytes / Traffic out kilobytes per second
  4. Lost & choked packets per second (lower better)

 

Inside NS Engine

Your NS view is an image updated x times a second (Frames Per Second). Everytime a new frame is constructed the HL engine reacts to your mouse, keyboard and checks for new updates (rate defined by updaterate) from the server. On each frame cycle, NS will send also updates of your actions to the server (rate defined by cmdate). Then it redraws your screen.

In NS interpolation means predicting events between two situations. For example, when a skulk is falling down to a pit, but NS only receives three packets from the server about it, NS will predict the movement path using the data of only these updates making it as smooth as possible. Without intrapolation, there would be constant small warping. 

rate
Suggested: 15000
Rate controls maximum the amount of data (in bytes per second) you receive from the server. The current rate of traffic can bee seen on the 2nd line of net_graph 3. This variable is not really important as most of the time you will be getting below 10 000 bytes (9.7 kilobytes) per second anyway. Of course, if you have slow (eg. 12kB = 96kbit) or otherwise bad connection, you might want to turn this lower (so the server wont overflow your connection). Just as long as it is big enough to keep your choke off during intense fight, it is okay. Realistically anything over 15000 is just an overkill. 

cl_updaterate
Suggested: 30-101
This controls the amount of packets in seconds you receive from the server. This should be as high as possible the server allows. If you are extraploating (see 6. in net_graph 1) lower your updaterate until you have it under the gray line. Extrapolation can be caused by very small updaterate too. 

cl_cmdrate
Suggested: FPS + 5
This controls the amount of updates you send to the server (eg. cmdrate 100 -> 1000ms/100 = 10ms) per second. You want to send updats at maximum rate possible and it should be a bit above your FPS. If it is below your FPS, updates will be accumulated for deferred sending, which is bad. On each FPS cycle, the ns will check if enough (eg. cmdrate 100 = 10ms) time has passed since last update was sent, and will send an update if the time has been passed. Setting this notably over your FPS is pointless, since you cannot send updates faster than your game updates itself/reacts (defined by FPS). 

cl_cmdbackup
Suggested: 1-4
This determines the amount of backup packets (duplicates) are sent after each update (rate determined by cl_cmdrate) you send to a server. If you are experiencing loss, you can increase this but this also multiplies your upload traffic and "wastes" it (which can affect latency). 

ex_interp
Suggested: 0
This means how long can you interpolate before it turns into extrapolation. The unit is seconds (eg. 0.01 = 10ms). However set this to zero and NS will autogenerate the value for you (which will be 1/updaterate; eg. 1/100 = 0.01).

cl_lc and cl_lw
Suggestion: 1
This enables server-side lag compensation (cl_lc) and local firing prediction (cl_lw). Sometimes you might actually see incorrect hits being registered but it no way changes the actual hit registration but only what you might see. There is no real harm done since you probably use your crosshair to aim, not the visual bullet path. On the bright side you will see the most likely bullet registration faster. 

 

Date: 10/10/2007
Written by: jiriki
Credits for corrections: Anakin

Shoutbox
zeroplus: allow + and = sign in your name registration :D
dugi: OMG COPS WATCHOUT CITRUSKI
markoorrrr: l2p america doing their choke artist trick
JarO: All games died cause Diablo 3 has came..
hunter: hello??
sancezz: sup lagies???
sublime: y u no commentate when you're commentating NS2HD
Mulk: dugie unemployement gg y u no beacon

Shoutbox Rules

Fetching user info...
Be first to join the Gather!