PDA

View Full Version : Rates, if you don't know.



DoubleSb
9 May 2009, 12:53pm
rate sets the data transfer speed between the client and the server. 20,000 is the maximum rate, and should be used for all connections 256k and above.
rate 30000 ( Or 20000 I forget but Ithink 30000 should work better)

cl_cmdrate controls the number of packets sent to the server per second. This should be set to 100 (maximum) for LAN and broadband connections.
cl_cmdrate 100

cl_updaterate controls the number of packets requested from the server per second. This should be set to 100 (maximum) for LAN and broadband connections.
cl_updaterate 100

cl_interp_ratio is the new system for interpolating player positions on the server timescale. It is now based on a calculation with cl_updaterate and has brought the time gap between fast and laggy players closer together. On a 100 tickrate server, and a good client connection, this should be set to 1.
cl_interp_ratio 1

Personally, i like to keep everything even, and use fps_max 100 as well. If you send and receive 1 packet for every frame, i believe it feels smooth and has good bullet registration.
fps_max 100

Net_graph 3
This shows your fps, ping, bps, etc.


Btw dunno if this helps or not, tell me if this is right or wrong, found it in a fpsbanana tutorial
Here it is:
Rate

This is your download speed in bytes / second.
If you know your advertised speed in kbIps (like a 56k is actually 56kbIps), then all you have to do is divide your speed by 8 and multiply it by 1024.
Like this:


56 / 8 = 7 kbYtes/sec (1 byte = 8 bits)
7 * 1024 = 7168 bYtes/sec (1 kbyte = 1024 bytes)


Your rate would be:

rate 7168

You should know you will never download @7168, because thats the maximum theoretical limit. Instead, you should be realistic and take 90% of the theoretical limit to get the download speed you would get on most servers.

90% of 7168 = 7168 * 0.9 = 6451

rate 6451

That's about right, and should work best if you have a 56k dialup modem.


cl_updaterate

This is the amount of times you receive updates from the server per second.

In a heavy firefight the largest packets can be up to 180 bytes. (A packet is a bit of information that you receive).

If we divide our rate by the largest packet size, we'll get our cl_updaterate.


6451 / 180 = 36

cl_updaterate 36


We dont need to take 90% of the updaterate, because we've already done that in the rate calculation.

cl_cmdrate

This is like cl_updaterate only that it's the amount of times you send updates to the server. The largest packet size that you (the client) send to the server is something like 30 bytes.

So we should divide cl_rate by the largest packet size we send through:


14746 / 30 = ~491


Now, you can't send 491 updates per second to the server . It's almost impossible for the server to handle all those packets. What CSS has done, is limit cl_cmdrate to 100
So if you calculate cl_cmdrate and its bigger than 100, change it to 100


cl_cmdrate 100


That's more than fast enough for most ppl.

=============================================
=============================================

That was the first part, I think all I said there has been said before, and perhaps better than I explained it.

But now comes the bit everyone forgot to mention!

The server you connect to has maximum and minimum rates. It means that your specially calculated rates wont work properly and youll get choke and loss.

How should you fix this?

Well, currently you can only do this by looking up the max rates of the server, and recalculating rates after youve got the servers max rates.

Ill explain how:

1/ First connect to a server
2/ Open console with "~"
3/ Type: sv_maxrate
4/ Press enter
5/ You should see a message in console displaying sv_maxrate xxxx


Now that you've got the servers max rate, you know your own max rate aswell, the server limits your rate to his own max rate.

So now we have to adjust our own rates.

Lets say sv_maxrate was 10000

sv_maxrate 10000


Our rate should then also be 10000 (if your rate is less than sv_maxrate, you dont need to do any more calculations, you have the best rates for your connection). What we need to change is our cl_updaterate to avoid choke.

So we need to calculate cl_updaterate based on a rate of 10000

10000 / 180 = 56

cl_updaterate 56


That will be our new cl_updaterate.
After you've done that, you have calculated the best possible rates for the server you are on. All you have to do is type "cl_updaterate 56" in console.

If you still experience choke or loss, lower your cl_update and cl_cmdrate, not your rate.



Just for people that don't know what rates are and should be =P

Dirty Sanchez
20 Sep 2009, 11:57am
Thanks Double, this really helped =D

Tfrag
20 Sep 2009, 12:08pm
good post this helped alot

Spiffy
20 Sep 2009, 01:10pm
the max rate is almost always 25000 as that is the default, some bump it up to 30000. The scrim servers are set to 50000.

Allan
21 Sep 2009, 06:38am
Thank you for sharing this, hopefully this will clear it up for some people =).

Jaffa
21 Sep 2009, 06:46am
My fps_max seems to be set at 300, should i look to move this down to 100?

Spiffy
21 Sep 2009, 02:38pm
My fps_max seems to be set at 300, should i look to move this down to 100?

No, this is a server setting.

XeNo
21 Sep 2009, 03:55pm
People say max rate for cevo matches is 25k, I have no idea why on this. 25k I get constant choke, choke lowers registry.

Spiffy
21 Sep 2009, 04:34pm
People say max rate for cevo matches is 25k, I have no idea why on this. 25k I get constant choke, choke lowers registry.

That is the default in their config and I believe the minimum. I think it can be raised.

Shadowex3
26 Sep 2009, 08:31pm
Choke = server can't keep up or you're set to not recieve as many packets as you need.

This guide's seriously overcomplicated and in a few places inaccurate. You want fps_max, a clientside command, to be as high as possible because there's simply no reason to ever have it lower and CSS ties your graphical updates to your network shit. That's why setting fps_max to 30 caps your rates too.

If you look at the actual bandwidth requirements with net_graph 3 on you can see pretty readily that anyone and everyone with at least a 1megabit connection should just set everything to the game's max and let the servers automatically cap them. There's just no reason to have anything lower with modern internet connections, I've got a pretty crappy quality 3mbit connection and I can easily max everything out and have no choke and no loss on a 100tic server.

There's a LOT of myths about source networking, this guide looks like it was designed based around those instead of the real facts. For anyone curious as to how this stuff REALLY works here's valve's official documentation and the only other trustworthy one which just did all the math for you (whisper's):

http://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking
http://whisper.ausgamers.com/wiki/index.php/Source_rates
http://whisper.ausgamers.com/wiki/index.php/Tickrate