Game Development Community

Ideal Server?

by Richard Bottoms · in Torque Game Engine · 03/17/2005 (12:08 am) · 19 replies

So what is the ideal Linux server configuration for the maxiumum users online at once? Is there a reliable formula for making that determination?

#1
03/17/2005 (9:15 am)
GG? How do you calculate server load please.
#2
03/17/2005 (9:26 am)
Server load is one of those huge "it depends" questions. It depends on how much data your downloading/uploading, persistent or burst connections, etc. There's so many variables that it's nearly impossible to evaluate without knowing individual needs.

Take a web server, for example. You can use a much smaller machine to serve static HTML, but if you're using PHP, PerlMod, ASP, JSP, etc, then you'll have to grow your expectations. When you add a database (especially on a small-scale and have it on the same machine), you have another determining set. Then you have to scale accordingly based on the popularity of your web space.
#3
03/17/2005 (9:38 am)
Well enough.

But GG, should be able to tell me what their own testing shown so I can extrapolate.

What's the maximum load achieved so far using a dededicated Linux server on an Intel box with X specifications? If you don't have this information, how about scheduling a day & time and have as many TGE users as possible attempt to join a game on a server you've prepared for such a test.
#4
03/17/2005 (10:34 am)
GG doesn't write games that require what you are looking for (maximum number of players on a server, etc.).

TGE Networking is also not designed for the type of concept you are describing. It is designed for several instantiations of smaller populated games, not massive amounts of players connected to a single game. If you want this type of functionality, you'll need to implement it. It's not that difficult, and you certainly can leverage stock Torque networking to accomplish the functionality, but it's not out of the box.

As David said, any "stock" benchmark like this is basically unusable even if it were to be done, because there are literally thousands of variables, if not more, since so many things are dependent on your game design, as well as your server architecture (both software and hardware).
#5
03/17/2005 (11:32 am)
I understand. My questions isn't why doesn't TGE support X concept of gaming. It's what is it designed to do based on how you have constructed it. Once I know that then I can make adjustments to deal with the uses I want to put it to.

Most of the references I've seen about TGE have not been specifically about a Linux based dedicated server. Which gets back to my question of what is it supposed to handle as a dedciated server in terms of user load as you have presently conceived it.

Then I'll determine if I need it to do something else. I'm not some disgruntled end user bitching about performance. I am trying to determine if I have to hire someone to get me to where I need to be.

As of right now everything I have wanted to do for the last two years is in TGE, I just need to know what I have to do now to customize it.

I'm not a spendthrift either. Before I start shelling out $50 an hour I want to make sure I've learned everything possible about how the software ticks, hence the many questions.



thx
#6
03/18/2005 (4:54 pm)
Demos are going pretty well. I really need some specs here about server performace please under Linux. Anyone?
#7
03/18/2005 (9:39 pm)
It depends.

Suggestion: Run a test server with a dozen clients and see how things perform, where bottlenecks occur, what your network bandwidth is, what the built-in profiler (see platform/profiler.h) says. That's what they did for Tribes 2, it ought to work for you.
#8
03/18/2005 (10:01 pm)
It always depends and I'll take a look at profiler.h.

I will try to make my request clear one more time. Please tell me a scenerio where the Linux dedicated server version has been tested by GG.

Describe the hardware used, the bandwidth you had available, how many clients were successfully on simultaniously, and any other details you can share about what happened. It would be particuarly helpful if the test was done using the stronghold or racing demos incuded in the current package.

Please.

I keep getting told test it yourself, and I am. However, I don't think it's unreasonable to also ask the manufacturer to tell me how their own tests went as well.
#9
03/18/2005 (10:07 pm)
And I've said this a couple of times, GG doesn't make games (or test scenarios) for something that the codebase wasn't expressly written to do.

TGE wasn't written to perform in the way you want it to perform, so why would they have run test suites on that type of use?
#10
03/18/2005 (10:25 pm)
Because as I've said several times, I am NOT asking you tell me how to make it perform the way I want it to perform.

I want you to describe how you tested the product in a mode you provide (Linux Dedicated) on whatever hardware you used, with whatever setup you had at the time so I can evaluate the results.

>TGE wasn't written to perform in the way you want it to perform, so why would >they have run test suites on that type of use?

Then where does the Linux Dedicated mode come from?
#11
03/18/2005 (10:54 pm)
I don't work for GG, I'm just another community member like you.

The "ideal linux server configuration configuration for maximum players" like you asked in your original post is a question that cannot be answered until you define dozens, if not hundreds of game parameters, and reconfigure TGE networking to be optimized for number of users, instead of the balance of physics, simulation speed, and minimized transmission loads that TGE is configured for. An example of what I mean is how the RTS-SK was reconfigured to maximize for total unit count in a mission: that is something you can measure and report on, because it's something that was part of the design criteria.

Since "maximum users" isn't a criteria that TGE was designed to meet, the question as it regards to stock TGE has no frame of reference for an answer to apply. An equivalent question might be something like "what is the lift over drag coefficient at max lift for an apollo booster rocket?"...that's not what booster rockets are designed for, so the question doesn't have any answer.

I'm not trying to be obtuse here, or obstinate or anything, but the question just doesn't have an frame of reference for a sensible answer.
#12
03/18/2005 (11:01 pm)
"linux, dedicated" mode is designed to provide a smaller footprint so that you can run many instances of servers, not one server to provide maximum user count. This lets one server for example support many versions of a game, say 10 copies of the stronghold mission, or 10 different missions using the same underlying engine.

Yes, it removes things like rendering, audio, and other player specific functionality, but again, not to necessarily increase the total number of concurrent users (although this is certainly an area that can be increased with the dedicated build, if you optimize other areas as well).

How many game servers you could set up on a particular linux platform? That's not a test I personally have performed. It's possible that GG or others have, but again it very much depends on so many factors that you wouldn't have anything to compare against.
#13
03/18/2005 (11:02 pm)
-----
#14
03/18/2005 (11:10 pm)
>"linux, dedicated" mode is designed to provide a smaller footprint so that you can >run many instances of servers, not one server to provide maximum user count. This >lets one server for example support many versions of a game, say 10 copies of the >stronghold mission, or 10 different missions using the same underlying engine.

Which is EXACTLY the type of information I was looking for.

How was it envisioned that multile instances would be achieved? I assumed such multi-instance support was possibe, and figured the way to make it happen was to chang the port settings either in the source or by script.

My vision of how I am using the product is a social interaction setting that would have many users on a master server. The users then break off into small groups who share an instance on the same server but with 5-10 users max on at one time.

Seems like you do exactly that.

(One way to minimize load is to make sure that the client is updated from an update server before the user is allowed into the main area so the main traffic is location updates and chat, not content download ingame if possible.)
#15
03/19/2005 (12:19 am)
Richard,

Chill, dude. :)

As I said - the last major set of performance testing was done on the Tribes 2 project. A P3 1Ghz machine could support 60 players comfortably. It required about 2kbps/player network bandwidth. Tribes 2 was a game done by Dynamix, before the rights to Torque were transferred to GG. A lot of this info is up on Tribes 2 sites - they've probably analyzed it in more detail than I have.

Since then the code has been significantly modified, probably for the better. Given your game mechanics you might go higher and lower on CPU usage and higher/lower on bandwidth usage.

For the scenario you're describing I have a really hard time imagining you're going to run into any problems with well-written code. 5-10 users is just not very many.

As for "how you test it" - you run the app, then you check your CPU usage using ps. You might also want to use some sort of network monitoring app to see how much bandwidth you're using. Turn off other stuff while performing tests. It's pretty simple! :)
#16
03/19/2005 (7:37 am)
Ok, now we're talking! I apologize for not being able to answer your original question, but now that we have a better feel for what you want to do, we can hopefully answer some stuff!

For setting up multiple "game servers" on one server platform, yes--all you need to do is to change the port number they will listen for connections on, and provide them a new directory structure for the files that are written to by a server (prefs.cs for example). I would imagine that you will be wanting these servers to run different missions as well, so their startup commands will be different.

Now, you'll need a way to redirect players to those "game servers" based on things that happen in game. Fortunately, there is a resource that provides for triggers that will redirect you to another mission (server, in the sense of "game server"). I will do some poking around and see if I can find it, but please don't wait for me...start searching in the resource area yourself as well. It is not, however, part of stock TGE--but does drop in, and from what I understand, many have used it. Keep in mind that the original purpose of the trigger code that does this was (I think) to send players to an already started server, not create a new one for them with a specific Port Number to listen to and mission to run.

Regarding your thoughts about being on the main server:

Quote:
(One way to minimize load is to make sure that the client is updated from an update server before the user is allowed into the main area so the main traffic is location updates and chat, not content download ingame if possible.)

This isn't really an accurate statement, because the majority of network load for players in game is not "content download", but the location updates that you mention, believe it or not. While TGE clients do have an "initial download surge" while the server is sending all of the "ghost Always" objects, as well as datablocks, during game play pretty much the entire network traffic is updates of objects within the game, along with any game mechanics based traffic you send (chat messages, etc.).

Yes, if you have only a few updatable objects in your "main area", then there won't be that many objects that are moved, and therefore need updates--but you will be sending update traffic for each and every player that moves to other players that can observe that movement. Torque uses a concept called scoping that checks to see if a particular update should be sent to a particular client based loosely on if they can observe that object or not. (onCameraScopeQuery if you are curious about that). Adjusting what is and isn't scoped is one area to work on optimizing performance, but only one.

As a final side note, this type of game server to game server player flow is one of the core functionalities of the MMOG Starter Kit Project that David Dougher is leading, but don't hold your breath for that, because it is in the early design phases right now.
#17
03/19/2005 (8:11 am)
Thank you.
#18
03/19/2005 (10:41 am)
Can anyone who has run a dedicated T2 server tell me what their monthly bandwidth usage was, on average?

Cheers.
#19
03/19/2005 (6:45 pm)
Might try checking some T2 forums - there are probably lots of hard core T2 server admins that never jumped over to GG.