Monday 2 November 2009

Servers, What's the Point (Part 3)

On Wednesday I talked about the splitting of MMORPGs into various servers ("sharding") and why it is done. In Thursday's post - which nobody read, incidentally, go do it now - I pointed out reasons against sharding.
Now, creating a single-server world for millions of people isn't easy. Not only do people have different interests, as pointed out in part one, but the world would also, quite literally, get too full. Imagine World of Warcraft's Dalaran (or worse, Ironforge in vanilla WoW) with a hundred times as many players or more. Or imagine the amount of loading time for your capital city in Aion several times more personal shops around than there are already. Below I'll discuss several ways to alleviate this problem, to actually make single-server worlds possible.

Channels
Ixobelle called this "the worst thing" in his comment on part 2 - creating instances of zones within the same game world that players can switch between. Aion uses this model (although it uses traditional sharding as well) for its questing zones. If a zone is too crowded for your taste or your quest mob is currently dead you can select a new channel from a drop down menu, wait a few seconds and voilĂ , you're in a different instance of the same zone.

In Aion, this has various advantages, especially if you are doing outdoor group quests. In WoW, one guild killing an outdoor raid boss means that other guilds can't do it. If you do a quest and another group just engaged the mob you have to kill for it - bad luck, wait for the respawn and hope nobody else tags the mob before you. With a channel model you can just switch to a less populated channel and play on as normal there. The big disadvantage is of course that you might be in the same spot as another person (say a friend you want to meet) but you can't see each other because you are in different channels. Ixo sees this as a big problem, I'm not convinced it is all that bad. In playing Aion I ran into it a few times (once myself and then a couple of times when grouping with other people.) Each time it was resolved by one person telling the other about the channel system.

Now Aion is a small fish in this regard since there are only (as far as I have seen) five channels per zone, no channels in the major cities, switching channels is manual, and there still is traditional sharding as well. In a massive single server world things would have to be different. For one, allocation of channels must be partially automatic. Upon entering a zone, the game would assign you to a channel according to a set of rules. These can be very complex and include factors such as the channel your party members are in, the channels your friends and guild members are in, the population of the channels, and personal settings. Under no circumstances would I include a Tabula Rasa like selection whenever you switch zones. Channel allocation should be intelligent and automatic unless the player actively chooses to switch channels manually.

Unless you carefully craft such a system into your game lore (say, a game centred around parallel dimensions and players travelling between them), channels will always be somewhat immersion breaking and not even an extremely intelligent system will be able to completely prevent "why can't I see you" moments from happening. It has some advantages though, aside from un-crowding a massive world. If permitted by the game design, players could use the system to separate themselves from others by creating private channels or to find like-minded players to play with. Players could dedicate channels to role-playing, newbie experience, or PvP for example. This way, tightly-knit subcommunities could be created within your world, while still allowing players to play with everyone they'd like to play with and experience different styles of gameplay whenever they want to.

Another huge advantage to a dynamic channel system would be its ability to even out the population of zones. If a zone is not very popular it would simply use fewer channels and therefore still give you the feeling of a populated world. High density zones would use more channels so it isn't too crowded.

Spread it
MMORPGs hold a couple million players at most, the real world has six billion people. While some areas might be a bit crowded - I'm looking at you Japan - the world somehow handles a huge mass of people without sharding. The main reason for this is obvious; the real world is much larger than any MMO I know. That does not mean, however, that "simply" increasing the size of the game worlds will allow you to host more players in one world. People are spread out all over the real world, kept in their locations by various factors. Travel is expensive and time consuming, work, family, friends, and language bind people to a single location, and locations aren't strictly superior to one another.

Compare that to a MMORPG, let's say WoW. Travel is cheap and fast, it's not a big deal to be in Dalaran one minute and in Blackrock Mountain five minutes later. Most locations are only of interest for a short time (i.e. levelling zones) while a select few will always be interesting for everyone - for example transportation hubs like Dalaran and trade hubs like Ironforge. Theoretically there are four such trade hubs on each faction since the four capital cities provide essentially the same services. Still people flock to one or two of them because those have been established in the community as trade hubs and there is no reason to go to another one.

In order to accommodate masses of players in one world without sharding you need to make sure they are spread around the world and don't bunch up in a single place. Imagine a small change to WoW in which banks are no longer linked and bank space is rented on an auction basis. Getting space in the Ironforge bank as it is would be much more expensive than the same amount of space in Darnassus. This would quickly lead to people buying bank space in Darnassus instead, spreading the population around. This would just be one small change, but is an example of what would have to happen to achieve that effect. Give different players reasons to be in different parts of the world and make sure no part becomes overly popular. Obviously this goes for levelling zones as well, in fact it would probably necessary to add a long-term draw to those levelling zones so they don't get abandoned as the server population matures. I hear real estate in Desolace is pretty cheap these days.

Summary
Finding a better solution than sharding for handling MMO population isn't easy, but it definitely seems possible to me. Having a huge game world with a spread-out player base is preferable to channels but can be very hard to do. I have yet to see an MMO that manages to evenly spread its population around the world - even EVE's trade hub Jita can be quite overcrowded at peak times.

Existing channel systems are quite bad, but that doesn't mean that one should discard the entire idea. I remain convinced that an intelligent channel system can be designed that is good enough to not completely confuse newbies and requires only a limited amount of suspension of disbelief from the players. "Additional instance servers can't be launched at this time." isn't exactly keeping the fourth wall intact either and still millions of players play and pay for WoW.

What are your thoughts? What did I miss? Is there a perfect system out there already that I just don't know?
Comments have been disabled because the blog has moved to procrastinationamplification.com. Please head over there, bookmark the new site and comment away :)