Advertisement

How many servers?

Started by December 19, 2005 07:21 PM
20 comments, last by hplus0603 19 years, 1 month ago
Quote:
Original post by liorm
so now it comes from 2 sources - not only a number.. almost a fact!


It really does depend on your code. I would assume EVE's servers are well tuned by professional software engineers and designed to run with minimal memory footprint and CPU time. Your game might not be coded the same way.

All of this depends exactly on your code, and nothing else at all. Run some load tests and use that as a basis for comparison.
Thanks again. I didn't get upset at all, was good discussion. About our current game, its a web-server based one, so it wouldn't really tell anything about the action MP game coming up. About the question, asking for some numbers out of the thin air, as I said, I need to put a financial plan, so I just need a very raw number - based maybe on best optimized code. Of course in the real world we would design, write, optimize, test, load, rewrite etc. But I needed some assumptions to get started.
Advertisement
Honestly then on todays hardware try for 1000 per server.

"Those who would give up essential liberty to purchase a little temporary safety deserve neither liberty nor safety." --Benjamin Franklin

plan on spending anywhere from $10k to $30k a month.

Actualy, why dont you tell us this instead: What network middleware are you going to be using (if any), there ARE some numbers related to these. If your using torque for instance, tell us this. Also, where are you planning on purchasing the servers from, or what type of hardware do you want them to have. for instance a new dual xeon would be just as good if not better then 3 lower end machines, if not more.

You can come up with a more accurate number, but we need to know what your programming with? What type of game you are making? Some details on the game itself (we need to know what alls going through the line). Any network middleware? Etc.
Everybody looks at the "100,000" number, but that's not simultaneous.

Question: How many SIMULTANEOUS users do you need?
Question: How many of those will interact in one big clump? I e, how many other users can I potentially see on my screen at the same time?

Someone said "load testing" but the OP thought this meant "testing under load".

Question: Do you have synthetic load testing applications? I e, can you generate hundreds of fake clients, and log them into a server you have in your office?
Question: If you log in these fake clients, how many of them can you have logged in before the server croaks?

A single server might only be able to serve 30 players, if those players are playing Counter-Strike Source. The same server might be able to serve 3,000 players if those players are playing Ultima Online. The scalability really does depend on your code!

Answer these four questions, and we might be able to give you a much better answer.

If you don't have the software written yet (so you can't test it), then you need to figure out what number of players to aim for per zone/instance/server. You should also remember that game design will usually make it so that players are not evenly distributed (unless your game looks more like Counter-Strike than like, say, Planetside or City of Heroes).
enum Bool { True, False, FileNotFound };
I know a lot of people have tried to tell this to you, so I'll try and say it a different way.

The usage any certain application has on a server is completely dependant to that application. For instance, running a text based game I might be able to support 1000 users on a single server, but someone who runs a CS server can only support around 32 or so. Or even someone with another text based game might only support 500 users per server because his code isn't as optimized as mine, or he uses different methods in his code than myself. That's if all those different applications are running on the same specced machine.

I could run 1000 users on one machine with my text based game, but if I use a different server, I might only squeeze 750 maximum, due to the limitations of that server. Again, there is really no way at all to even give you a ballpark of how many servers you will need for whatever application you're using, because there are way too many variables to calculate even a rough ballpark.

If you would like though, I could throw some random numbers out for you, and you can choose which one you would like to go with for the number of servers you would need :)

5
62
57
24
82
33
95

But really, all joking aside, no one will be able to even give a ballpark that's worth 2 cents.

Advertisement
Quote:
I seem to recall 2500 TCP connections arent viable on one machine.


You recall wrong. They didn't change the UO client, so clearly they didn't change network protocols.

"Viable" is relative -- how much time do you want to spend in the kernel, versus how much time do you want to spend running your server code? Also, "viable" is relative to how you structure your program, and what particular hardware you're using (I seem to recall a fancy multi-processor server for that UO experiment).
enum Bool { True, False, FileNotFound };
hplus0603: Wow, I never said client, I said server. Please don't snap at me AND put words in my mouth, not on Christmas eve atleast...

Actually they made a server backend using TCP instead of UDP and it was like 7800 users on the one server. They used very modern, high end hardware too.

Here's the thread:
http://www.gamedev.net/community/forums/topic.asp?topic_id=328479

Edit: My bad, apparently TCP was used already so no switch happened. Read the article for more info.

"Those who would give up essential liberty to purchase a little temporary safety deserve neither liberty nor safety." --Benjamin Franklin

Quote:
Using udp instead of tcp for a stream protocol doesn't have much advantage


Obviously -- TCP is a stream protocol after all :-)

I think the point was that many games communications needs aren't actually all that stream-like, so the question to the OP (who long since seems to have fled the thread) was what his game was like.

If it's like Counter-Strike, the number is about 32.

If it's like Planetside, the number is about 500.

If it's like Ultima Online, the number is about 8000.
enum Bool { True, False, FileNotFound };

This topic is closed to new replies.

Advertisement