Hacker News new | ask | show | jobs
by gafferongames 27 days ago
> Again, this games claims to send 10-20mbps per client. The quadratic part would be the full outgoing from the server, those numbers are not the full outgoing. The full outgoing is claimed to be 10-20 gigabits per second.

Per-client bandwidth -> O(n), where n is the number of players. 10 - 20mbps for this game per-client. Let's say n=1000. O(n) because each client needs to receive state for n other players (yes, each client also receives state for its own local player too)

Total bandwidth sent from server -> O(n*n), where n is the number of players. Since the server sends 10-20mbps per-client, and there are 1000 clients the total bandwidth sent from the server is 1000 * 10-20mbps -> 10-20gbps.

Where the quadratic comes in: When you increase from n=100 to n=1000, per-client bandwidth increases by only 10X, but total bandwidth increases by 10*10=100X O(n*n), because packets are now being sent to 10X the clients, but ALSO and the bandwidth sent per-client is 10X (because each client now has 10X players it needs to receive state for).

Thus quadratic. FIN.

2 comments

This is getting tiring, so I'm only going to try to clarify one more time and I'm not going to bother replying again.

We agree that the total bandwidth is quadratic. However, that was NOT THE DISCUSSION. It is irrelevant to the discussion because it was NOT THE DISCUSSION.

I'm specifically, replying to the comment up thread that brought up the 10-20mbps number from your article, which then got replied to calling it quadratic. This 10-20mbps number is the PER CLIENT bandwidth. I am not talking about the 10-20gbps number. The PER CLIENT bandwidth is not quadratic, since it scales linearly per player.

Thus, the PER CLIENT bandwidth is not quadratic. FIN.

Also:

It should have read like this:

Let's say typical games send 1-2 megabits per-second *per-client* for first person shooters with 100 players or less (in some cases it's more, some cases it's less, but let's assume this is at least reasonable to do in 2026)"

It's correct elsewhere. Sorry it did not include the per-client in the mention above in this thread. I can see this is what threw you off.