So here's my situation. I was hoping to get some feedback as to what I'm trying to do is even possible, as I can't find info on it elsewhere (only found
this thread which seems relevant, but no useful info).
I'm working on this small multiplayer game. The game itself is 1v1, a chess sort of game. So I know for a fact that each game will only have 2 players in it. This works fine on a small scale. The problem comes when I want to be able to support a larger number of players.
Since each server only runs 1 game, I find that I have to run multiple servers to support multiple concurrent games. As you can imagine this adds up rather quickly. Even at just 100 players playing at the same time, that's 50 instances of the server. I'm worried about memory issues in the future with this.
What I'm wondering is if there is any way to have each server run multiple copies of the game?
I know that in regular FPS-type unreal games, the server can do 32, even 64, players in the same game. So it seems like a waste to me to run it with just 2 players each time.
Anyone have any idea? Or if this even possible with Unreal?
Replies
In case you are running servers through frontend, you need to switch to commandlines or you won't be able to get enough functionality out of it -> http://udn.epicgames.com/Three/CommandLineArguments.html
I am not sure if you'll manage to run 50 at the same time though. It is not a small 2D engine, the whole thing has a significant footprint.
Each server is 'Chess Hall', whenever people join their entering the hall, then players are matched up by your code and put into a game together with your code. Of course this means some minor changes to your team and player classes. It might also mean that there's some wasted networking being sent to every client but you might be able to optimize that out, that is if you don't embrace it.
The mindset flip of the fact you're writing a 'chess hall' will help you squeeze every drop out of a single UDK server. Cause now you can have 64 man servers supporting 32 games simultaneously.
Beaver, that sounds great, but I don't exactly understand.
So 64 players will join the server, and the game will pair them up into 32 games. This means that the game will spawn all 64 players in the same map, right? How would I separate them all out so it's only 2 people playing against each other?
Edit:
I'm also curious on how this is handled in the bigger games. Like say Gears of War, or Borderlands and those. So any time anyone out there wants to play with his friends, they start a new instance of the server somewhere out there? Wouldn't that mean that there could potentially be hundreds of copies of the server instanced at once?
(I'm moving and I lack internet sry)