natirips wrote:Well, I do have it set to 10KB/s and maxpackets to 30/s. I used to have both at minimum before, which wasn't far above 56K modem. However, it's way too much if you ask me. Regnum Online (just for example) takes <1KB/s both up and down even when there's pretty much the same amount of players near you. I understand that that game doesn't really require much hot action, however it's over 10 times the difference. I don't think all the keystrokes done by 45 players in a second would take 10KB (=10000 keystrokes??)... OK, I know, there are player coordinates and what they are wearing, but unless these stuff is being sent as strings with names of equipement, it really shouldn't get so much data. Maybe I am wrong, but it's still somewhat fishy to me. Maybe it's spyware? j/k
I've sometimes wondered how much bandwidth does Q3 use, so I made some research about it (to be confirmed).
A pity there is no way ingame to display up/down bandwidth usage. I remember CS displayed it, up/down bitrate were about 5kB/s 1.5 kB/s IIRC. I found values for Q3 but not for UrT so I checked it by myself (finally they are the same). I used tcpdump to get packets size, then I calculated the mean size of each packet for both up/down communications.
For downstream usage, Server ----> Client :I recorded packets from a game on algiers, 22 players, which is actually not far from the average number of players value on wurst (23.7 according to gametracker for this month), so I don't know yet how it behaves when number of clients grows. I used rate 25000 to avoid limitation : rate is the max server->client bitrate in kB, it doesn't mean you actually get this bitrate. sv_fps = 20 so I receive 20 packets/s, each one corresponding to 1 snapshot. Mean size I get for these packets = 103 bytes, min value = 30, max value = 431. That means 2kB/s if packet length are stable... really low value IMO. Next time I will log packets on suburbs 20v20, I'm quite sure the average value can double or triple, but still it wouldn't be so high...
Downstream usage depends on number of players/events on the server, and can not be altered except with the rate cvar which clips it, unlike outgoing packets.
For upstream usage, Client ----> Server :Number of outgoing packets depends on many parameters, so it's more complicated than S->C to evaluate. That's why I was mistaken and I wrote quite crap about maxfps settings (
forum-gameserver-support/bad-fps-performance-the-suburbs-t1034-10.html - update to come :p). Basically it's related to cl_maxpackets and to your current framerate (cl_packdup didn't change anything from what I saw, not sure about it). Let's say you actually send 30 packets/s (max value is 42). Packets size only depends on client events, nothing else. For normal playing I got an average value of 47 bytes/packet, min = 32, max = 66. Even when moving the mouse and typing on my keyboard like a psycho I barely exceeded 100 bytes peak. So that makes about 1.4 kB/s for upstream bitrate, which looks a very low value to me again...
I don't know Regnum Online, 1kB/1kB is really low, but I'm not sure the game is as hardcore and accurate as Quake/UrT.
About the 10kB/s being a high value : 10k means that each snapshot size is equal to 500 bytes. Imagine a 45 players server, if some data about 25 players is sent to you (assuming you don't get everyone's data), that makes 20 bytes/player, containing at least his position and direction, actions like reloading or healing, and I'm not counting non-player model events like an exploding grenade, dead body or weapon removing from the field, chat messages...
Position data are even converted from float to int to gain some bytes, this conversion being responsible for the 125fps Q3 bug/feature.
So to sum up : I think Q3 netcode is GREAT
(yeah yeah I'm defending the Q3 engine, I don't even get paid for that
)