0
\$\begingroup\$

For my client-server lockstep 16-player RTS game, I've calculated the maximum bandwidth usage per second to be 50KBs for hosting a game (though this value is closer to 20KBs practically). ~90% of this bandwidth usage is due to sending out packets and the rest, incoming packets.

To cut down on costs, I'd like to have players host games and official servers function in the background as backups (in case the player host drops). Is it reasonable to expect 1 in every 16 players is able to handle this bandwidth demand?

Note: The game will be on PC.

\$\endgroup\$
  • \$\begingroup\$ Are we talking about PC or Tablet or Phone game ? \$\endgroup\$ – Kromster Feb 14 '15 at 7:59
  • \$\begingroup\$ Ah, sorry about missing that crucial bit of information. This game will be on PC. \$\endgroup\$ – JPtheK9 Feb 14 '15 at 8:45
  • 2
    \$\begingroup\$ Just to confirm: when you say KB, I assume you mean KiloBytes (1024 bytes)? As opposed to KiloBits, typically abbreviated as Kb (1024 bits, or 128 bytes). Just wanted to make sure, since it's easy to confuse those two units in this sort of conversation. \$\endgroup\$ – Trevor Powell Feb 14 '15 at 9:24
  • \$\begingroup\$ Bandwidth requirements can also change depending on the protocol you use, by the way. If your network code can handle lost datagrams and re-sequence out-of-order datagrams, you can get by with lower network requirements using UDP than TCP. This may not be as big an issue with modern networks, mind you - my last experience writing an Internet-based game was circa 1998. \$\endgroup\$ – Andon M. Coleman Feb 14 '15 at 9:25
  • \$\begingroup\$ (Note that some folks will argue that a Kilobyte should be considered to be 1000 bytes, and that a Kilobit should be consiered to be 1000 bits (125 bytes), to match the standard metric usage of the 'Kilo' prefix. And that if one means 1024 bytes or bits, one should instead use "Kibibyte" or "Kibibit", which can be abbreviated as KiB and Kib, respectively. I am not one of those people, but it's worth mentioning.) \$\endgroup\$ – Trevor Powell Feb 14 '15 at 9:36
1
\$\begingroup\$

It depends a lot on what minimum requirements you want to have for your game, the worst case scenario would be dial-up modems, unfortunately they can only handle 33.6 kbit/s or 4.2kB/s in upload speed (they could still probably play the game as a non-host however).

Looking at the state of internet report from Akami Technologies you can see that the average speed in the world is 3.9Mbit/s or 487kB/s. Keep in mind that upload is usually much lower than download though, 10% is a good rule of thumb, which would put the world average at just underneath 49kB/s. If your requirement is only 1/16 having high enough upload speed then you would on average have 7-8 players that can act as a host.

But most likely people who are interested in an online game will have higher than usual bandwidth and/or come from countries with better internet speeds, so in reality you will probably find that nearly all players will be able to act as hosts with those requirements.

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ Thanks for the in-depth answer and the reference. I'll continue development with reassurance that the system will work. \$\endgroup\$ – JPtheK9 Feb 14 '15 at 22:48
1
\$\begingroup\$

50'000 bytes per second is absolutely reasonable for PC game.

You might have issues with number of packets though, knowing RTS games design, you should wrap packets in bundles (as discussed in your previous questions).

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ I've actually decided 10 waves of packets/second is the way to go. \$\endgroup\$ – JPtheK9 Feb 14 '15 at 22:48

Not the answer you're looking for? Browse other questions tagged or ask your own question.