[Question] Player Distribution in MMO Worlds
by St. · in Torque Game Engine Advanced · 03/21/2009 (12:47 pm) · 5 replies
Recently I was designing a theoretically perfect MMO server cluster structure and stumbled upon a question that I never thought about.
Let's imagine that we have one server per zone that communicate between each other. So that if, for example, our game consisted of five zones (zone1, zone2, zone3 etc.) we would also have five server instances launched.
Based on what we know about TGEA one server is capable of "holding" approx. 200 players so that in total we could have 1000 players distributed among five game zones.
But that is if all of them would be on different zones at all times. If because of any reason all players gather in one zone it would unavoidably lead to a server crash. If we create a player limit of 200 in the game (so that even if everyone gathered in one zone it would still be ok for our server to handle) that would solve the problem, but our possibly huge world will probably be unused, "uninhabited" and dead for most of the time. We could also make more than one server supporting one zone in the game so that when a player from zone2 enters zone1 where are 200 players located already he would be relocated to another instance of that zone being the first one there. The problem here is obvious: the world would seem somehow "unstable" as, for example, if I was to play with 10 of other players together each of us could be sent to a different zone instance upon every zone change. As we know from all modern MMORPGs such things never happen and the only place we could be sent to is a different world, but we wouldn't be allowed to join an already full world, to begin with (but *when* is it full is also a question).
And I have never seen anything similar to "You can't travel to %zonename as it is already full" in any game.
So... how do the well known popular games deal with that problem? Is there any common solution or is it really that complicated?
Let's imagine that we have one server per zone that communicate between each other. So that if, for example, our game consisted of five zones (zone1, zone2, zone3 etc.) we would also have five server instances launched.
Based on what we know about TGEA one server is capable of "holding" approx. 200 players so that in total we could have 1000 players distributed among five game zones.
But that is if all of them would be on different zones at all times. If because of any reason all players gather in one zone it would unavoidably lead to a server crash. If we create a player limit of 200 in the game (so that even if everyone gathered in one zone it would still be ok for our server to handle) that would solve the problem, but our possibly huge world will probably be unused, "uninhabited" and dead for most of the time. We could also make more than one server supporting one zone in the game so that when a player from zone2 enters zone1 where are 200 players located already he would be relocated to another instance of that zone being the first one there. The problem here is obvious: the world would seem somehow "unstable" as, for example, if I was to play with 10 of other players together each of us could be sent to a different zone instance upon every zone change. As we know from all modern MMORPGs such things never happen and the only place we could be sent to is a different world, but we wouldn't be allowed to join an already full world, to begin with (but *when* is it full is also a question).
And I have never seen anything similar to "You can't travel to %zonename as it is already full" in any game.
So... how do the well known popular games deal with that problem? Is there any common solution or is it really that complicated?
About the author
#2
I understand the concept of shards (or "realms"), but...
What I am trying to say is that one shard can consist of several server machines and I was curious about how the population of one shard is distributed among servers. As far as I am concerned WoW has one server per continent and one separate server for dungeon instances (and lets assume that each of those servers is capable of holding 500 players just for my example). So what if there are 500 players located in Kalimdor and 100 players in Eastern Kingdoms and I am trying to travel from E.K. to Kalimdor, will I receive the "Sorry, Kalimdor is full, please try again later" (or something like that) message? Or is there some kind of queuing for such things as well right inside of the game?
That's what troubles my mind. I hope you are still with me. :)
P.S. Thanks for the link, I'll check that in the morning (its 3:20 AM at where I live) as I'm too tired now...
03/21/2009 (8:21 pm)
Thank you for your reply, Ted.I understand the concept of shards (or "realms"), but...
What I am trying to say is that one shard can consist of several server machines and I was curious about how the population of one shard is distributed among servers. As far as I am concerned WoW has one server per continent and one separate server for dungeon instances (and lets assume that each of those servers is capable of holding 500 players just for my example). So what if there are 500 players located in Kalimdor and 100 players in Eastern Kingdoms and I am trying to travel from E.K. to Kalimdor, will I receive the "Sorry, Kalimdor is full, please try again later" (or something like that) message? Or is there some kind of queuing for such things as well right inside of the game?
That's what troubles my mind. I hope you are still with me. :)
P.S. Thanks for the link, I'll check that in the morning (its 3:20 AM at where I live) as I'm too tired now...
#3
So in that case they're using game design to hopefully make players spread out. In the case of an older game called Asherons Call, they had more complicated shard system and load balancing techniques. There's papers about this on Gamasutra.
Then you got the last category, which Everquest, Anarchy Online, Eve Online and Neocron all fall into. It's like WoW but each zone is on a seperate process or machine. These are not seamless, but at least in the case of AO these processes can be moved between machines if load gets too high or low. If there got too many players in one zone, the game was free to move people away from it (in the case of pvp) to be able to keep a acceptable framerate.
03/22/2009 (1:55 am)
In the case of WoW they're assuming that the population will be spread somewhat across the four different continents. You can clearly see what happens if most of the players travel to one spot, when there's Wintergrasp going on. 10 seconds ping isn't unusual.So in that case they're using game design to hopefully make players spread out. In the case of an older game called Asherons Call, they had more complicated shard system and load balancing techniques. There's papers about this on Gamasutra.
Then you got the last category, which Everquest, Anarchy Online, Eve Online and Neocron all fall into. It's like WoW but each zone is on a seperate process or machine. These are not seamless, but at least in the case of AO these processes can be moved between machines if load gets too high or low. If there got too many players in one zone, the game was free to move people away from it (in the case of pvp) to be able to keep a acceptable framerate.
#4
Thank you, Stefan, my question is answered.
03/22/2009 (6:06 am)
Hmm... I see. So it is as I thought: either you hope that your players will not be gathering in one place or allow them to be sent to the different zone instances during the game depending on the load (and have a less seamless world).Thank you, Stefan, my question is answered.
#5
i don't think it matter what server from every server my brother plays hes had lag in every town.
03/22/2009 (11:09 am)
ya you want to see a game that lags in one some areas because of to many people in silkroad. when your in town which is where everyone stands around to sell items you get more lag then you can ever imagine but outside of town then its lag free. :P even with my high end computer i get more lag then any other game in town i no longer play the game but you find to find a game with lag points because of so many people in same spot thats your game to pick. :Pi don't think it matter what server from every server my brother plays hes had lag in every town.
Torque 3D Owner Ted Southard
Now as for how many players TGEA can hold per server, that's a matter of how much data and processing you have going on for that server more than an arbitrary number like 200.
I have a thread on making MMOs here, which if you scroll down past the advice posting, will show you scores of links to discussions on networking and lots of other issues. Some of the networking discussions reveal some pretty nice numbers, but again, each game is different and because of that their populations are different, so no number should be considered gospel.
Hope the information helps.