4 ms·
> At the absolute worst, a room full of 32-players in Quake 3: Arena would be sending 120 kilobits per second to each player. OK I'll bite. Quake 3: Arena sup
by gafferongames 3mo ago
> At the absolute worst, a room full of 32-players in Quake 3: Arena would be sending 120 kilobits per second to each player.
OK I'll bite.
Quake 3: Arena supports 32 players. What if it supported 1000 players?
1000/32 = 31.25
theoretical quake 3 but with 1000 players (all visible) would be:
31.25 x 120 kilobits per-second = 3,750 kilobits per-second = 3.75 mbps sent per-client.
now make quake 3 more interesting by putting in 1000 NPCs in to interact with, so 2000 total objects -> double the bandwidth to 7.5 mbps per-client.
fill the rest of the bandwidth with weapon data (one shots), sounds, fx and other random events -> 10mbps is pretty easy to hit, maybe even go over, especially if a lot of stuff is going on in the level.
> Fortnite peaks at ~400 kbps during the initial 100-player drop and goes down from there.
Fortnite has 100 players.
Theoretically, if it supported 1000 players, then you would multiply bandwidth by 10 if all other players were visible, or if you had the 1000 players in the same size world, so on average you would see 10X more players than before with relevancy / culling by distance or LoS.
400 kbps x 10 -> 4000 kbps -> 4 mbps sent per-client.
Now make it more fun and add 1000 NPC characters to the level, 2000 characters per-level total.
8 mbps per-client for theoretical, 1000 player Fortnite w. 1000 NPC characters in the level.
> I understand that those are big budget games, but there is a lot of room for improvement in 10000 kbps.
This is simply not true. It would be really great if you guys would do some light math before making statements like this.
- axus 3mo agoWhy are all 1000 players visible to each other at once? The numbers I quoted were worst case, not a baseline. Streaming sounds and FX every single time and never caching is a choice that will lead to 10Mbps, but completely unnecessary. All you "really need" is initial state, the timestamps / inputs of the other players, and reproducible physics.
- deleted 3mo ago[deleted]
- gafferongames 3mo agoI really want to just stop here and ask you what you expect will happen if you take a multiplayer game with n players and increase it to have 10 times the player count (10n). Do you expect bandwidth sent per-player will: a) stay the same b) decrease c) increase ? > Streaming sounds and FX every single time and never caching is a choice that will lead to 10Mbps Nobody is suggesting streaming sounds and FX like this. If it helps you, completely ignore my comment about sounds and FX. Focus instead on how the per-player bandwidth has scaled up, eerily close to 10mbps per-client, when you take any of the classic games you mentioned, and scale their player count up to 1000 players and see what happens. > All you "really need" is initial state, the timestamps / inputs of the other players, and reproducible physics. Yes, this approach works for low player count games, but as player counts increase the probability that you'll be stuck waiting for the most lagged player to deliver input to the server approaches 1. So no, this is not all you really need. This approach doesn't work well for high player count games (I wouldn't use it for any game with more than 4 players personally).
- axus 3mo agoMy naive perspective is that bandwidth will increase linearly with the number of visible players. I get that the people doing the work know better than people who haven't, I'm open to learning more and can't make any ironclad statements. Eve Online could do large-scale player battles before 10Mbps connections were available to gamers. And somehow much more efficiently per/player than Q3: Arena. What were they doing that you are not?
- gafferongames 3mo agoEve Online has a much larger world and ships are scattered around much more in this space, so they only need to network ships that are close to you, so they can make their effective n smaller, eg. per-client bandwidth is now O(n), where n is the number ships close to you only, instead of n being the total number of players in the Eve Online system at any time. When too many ships get close together, the action slows down in "time dilation" (they slow the game down because they cannot keep up in terms of CPU and probably bandwidth as well). It's a smart design trick that made it possible for them to pull this game off much earlier than it should have been possible. I'm not doing any of that time dilation and everything plays like an FPS game or action game, just with n=1000 players all the time because it's 2026 and I can send a lot of bandwidth. Yes, I still have to work really hard to keep server CPU costs, client CPU costs and make all game code || and bandwidth down and optimize it, even to fit in this (seemingly high) bandwidth budget. But it's the right choice for an action game where time dilation is not an option, and all the action happens in one tight space, like in a Star Wars movie when there is a space battle.