servers for online games questions

Started by
5 comments, last by hplus0603 12 years, 5 months ago
hello guys well my question is about servers I know that big games use servers to connect the gamers right? how do they work and is a server of 169 dolars per moth enough to host an online game hmm for example with 300k people inside of it playing some any kind of online game
I want to create an online game so Idk how much will I need to host the gamers right? is like that how it works?
Advertisement

hello guys well my question is about servers I know that big games use servers to connect the gamers right? how do they work and is a server of 169 dolars per moth enough to host an online game hmm for example with 300k people inside of it playing some any kind of online game
I want to create an online game so Idk how much will I need to host the gamers right? is like that how it works?


No, a 169 dollar per month server won't handle 300k players unless its a very simple game, (For a game like wordfeud you should be able to handle 300k or even more players using fairly cheap hosting, for a MMO style game on the other hand the server and bandwidth costs can easily break $50k per month for that number of simultaneus players.

To be able to get more exact figures you need to know how much bandwidth you need per player on average and if you're renting the hardware you need to know roughly how many players you can handle per core on a reasonably modern CPU.
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!
Start small, and prepare to scale when you see player numbers increasing. Most games won't go from 0 players to 300K players overnight. Paying too much now will break your budget and you'll run out of money before you run out of capacity.

The number of players a machine can support is proportional to how CPU/disk/network intensive your game is. You should have a good estimate of that before paying lots of money for hosting. One option would be to run a short stress test on something like Amazon's EC2, where you can quickly put your game on a powerful machine and test it with many peers, to see what resources your game actually uses.

Until your game is at the point where you can realistically deploy it like this, you can often get away with hosting it on your home network on a always-on PC.

Start small, and prepare to scale when you see player numbers increasing. Most games won't go from 0 players to 300K players overnight. Paying too much now will break your budget and you'll run out of money before you run out of capacity.

The number of players a machine can support is proportional to how CPU/disk/network intensive your game is. You should have a good estimate of that before paying lots of money for hosting. One option would be to run a short stress test on something like Amazon's EC2, where you can quickly put your game on a powerful machine and test it with many peers, to see what resources your game actually uses.

Until your game is at the point where you can realistically deploy it like this, you can often get away with hosting it on your home network on a always-on PC.


It doesn't even have to be "always-on" , having it online during normal work hours can be sufficient early on.
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

hello guys well my question is about servers I know that big games use servers to connect the gamers right? how do they work and is a server of 169 dolars per moth enough to host an online game hmm for example with 300k people inside of it playing some any kind of online game
I want to create an online game so Idk how much will I need to host the gamers right? is like that how it works?


Typically, when you build a hosted game, you build it so that you can plug in more servers to meed additional demand. How many players you can put on one single server depends entirely on how demanding the game is. For example, a game of Battlefield 3 or something will likely top out at about 128 players per server. To get to 300,000 players, you need to plug in 2,500 servers, and find a way to distribute players across them. Also, in that system, players only interact with other players on the same server (level/match) (this is pretty common).
For something like EverQuest, if movement rules are simple, you can probably do 1,000-5,000 players per server. Again, players only interact within a given server (zone), except for "distant chat." Note: the $169/month server is unlikely to get to the higher end of this range.
For something like chess, or scrabble, where the game is turn-based, and the communications overhead is simple, you may be able to get 10,000-50,000 players onto a single server. Again, a $169/month server is unlikely to reach the higher end of this range.
If you have a beefy server and your players do nothing, just stay connected, you can get 1,000,000 players connected to a single server (check out the "comet server using erlang and mochiweb" blog series by Richard Jones) However, as soon as those users start sending messages, you end up overloading even the very beefy server he used (gobs of RAM and CPU). Not to mention the bandwidth cost.

Also, there is the "admin" part of players. The above discussion is about communications and simulation. There's also the question of persistency of user data and authorization -- is the user allowed to play? What's the high score? Do you store character progression? That all goes to a database of some sort, and again, the load on that database is entirely determined by game design and implementation. A single, beefy database server ($1,000 per month class) with SSD RAID arrays and gobs of RAM and CPU can probably do 300,000 simultaneous users, if the work is limited to authorization at login and the occasional checkpoint/storage of character data or a new high score or achievement. Meanwhile, if you want a small system, the same machine can do both game hosting and database hosting for a small MMO game up to, say, 1,000 simultaneous online users -- think "RuneQuest" or similar.

On a larger scale, the "how does it work" question is a pretty big question. People go to college for five years, and still don't know the entirety of that question. Then you get into industry, and after another 5 years, you probably know enough to build one, and after another 5 years, you maybe know enough to choose "best practices" for each of the separate components -- assuming you pay attention during the entire time, else your education and experience gain will take longer!
enum Bool { True, False, FileNotFound };

For something like EverQuest, if movement rules are simple, you can probably do 1,000-5,000 players per server. Again, players only interact within a given server (zone), except for "distant chat." Note: the $169/month server is unlikely to get to the higher end of this range.

For something like chess, or scrabble, where the game is turn-based, and the communications overhead is simple, you may be able to get 10,000-50,000 players onto a single server. Again, a $169/month server is unlikely to reach the higher end of this range.



Are you talking about 10,000 player simultaniously in a scrabble type game in a 169/month server?

Are you talking about 10,000 player simultaniously in a scrabble type game in a 169/month server?


Yeah, pretty much.

A quad core with 4 GB of RAM and a 10 Mbit port and 3.3 TB/month of transfer (the maximum limit for a 10 Mbit port, pretty much) is $129/month from ServerBeach.
Only a single hard disk, though -- you'd want a RAID and a backup solution somewhere. 1&1 has a similar set-up with dual drives (RAID 1) for $149/month.

On a quad core with 4 GB of RAM, you can quite likely write a long-poll COMET style application in Erlang or boost::asio (or maybe even Node.js -- but watch out for the 1 GB limit!) that serves 10,000 simultaneous users with a low per-user request volume. That's 2,500 users per core/GB, or about 400k per user.
enum Bool { True, False, FileNotFound };

This topic is closed to new replies.

Advertisement