Remix.run Logo
JohnMakin 9 hours ago

You don't really ever stream games in normal situations in the same manner though. The content is mostly rendered client side, why does the server need so much bandwidth?

8 hours ago | parent | next [-]
[deleted]
gafferongames 9 hours ago | parent | prev [-]

If a normal game sends 2mbps, then 20mbps would be 10 times as many objects.

axus 8 hours ago | parent | next [-]

At the absolute worst, a room full of 32-players in Quake 3: Arena would be sending 120 kilobits per second to each player. Fortnite peaks at ~400 kbps during the initial 100-player drop and goes down from there.

I understand that those are big budget games, but there is a lot of room for improvement in 10000 kbps.

gafferongames 2 hours ago | parent [-]

> 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 an hour ago | parent [-]

Why 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.

frollogaston 8 hours ago | parent | prev | next [-]

That's what I'm asking, seems like this isn't a normal game, but what specifically about it makes the bandwidth requirement so high? I know RTSes send inputs instead of state, but that has its own drawbacks.

mvdtnz 8 hours ago | parent | prev | next [-]

Even 2mbps would be on the extremely high side. I doubt many mainstream games, if any, use this kind of bandwidth. Excluding games that stream video of course.

A 6v6 game of Forged Alliance (12 players each moving hundreds of units around, many with simulated projectile weapons) uses 0.3mbps.

bluefirebrand 8 hours ago | parent [-]

I was going to say this too.

Games don't need to send much data to sync game state across clients

thunderfork 8 hours ago | parent | prev [-]

If you're using stream compression, 20mbps would likely be a lot more than 10 times as many objects (and you shouldn't be serializing the whole state every update, and... yadda yadda)

You can fit a lot of game in 2mbit/s with a little bit of work.

gafferongames 8 hours ago | parent [-]

> You can fit a lot of game in 2mbit/s with a little bit of work.

And you can fit exactly 10X the game in 20mbps with the same amount of work, plus some AF_XDP magic.