This is actually something that’s been ticking away at the back of my head now for years. Having server clusters and instances just didn’t make a whole lot of sense to me: it produces games that are only “massively” from a back-end perspective. If you’re going to do instances, just throw the server cluster concept away entirely. You can scope player names with a Second Life like approach, but then everything else you just instance.
But to avoid that resulting in a mess, a chaotic world of one-time encounters with no chance of community, I’m suggesting a relational index to allow community – or isolation – of the instances that different player characters might see… Virtual shards.
Your core gameplay is still going to be the tradition run around in a shared world; that’s where you put all your rewards and etc. But if you do away with the server cluster concept, then there is absolutely no harm in providing the potential for other gameplay styles to co-exist. I mean, if ShadowClan members decide they want to play in a world populated exclusively populated by other like-minded roleplay guilds… Why not?
The first step is to make player characters completely independent, capable of existing anywhere on the network and moving around completely freely.
Somewhere you would have a pool of identifiers that associate different instances with a particular set of attributes and provide a way of scoping which zone instances are visible or accessible to any given character. This relational identifier I choose to call a “shard ID”.
Straight off, you could use this system to recreate the traditional server experience by having your shard ID be (or relate to) a human readable name which players select when creating their character. If your rules say the player can’t change the shard ID of a character and they can only see/join/create instances of zones that have that shard ID then … voila. You have recreated the present day server solution for the end user.
What’s possible becomes beyond that is a matter of policy, not technology.
You might allow players to change instances and you might allow them to pick instances from other shardIDs – equivalent to letting them jump server for a while. Or you might let them select a home shard so that most of the time they have a server-like experience but the system is free to shift them to an lesser populated instance from a different shardID when they zone into an overpopulated zone.
For any given zone you could have unlimited instances for a player to switch between, or you could have strongly defined limits or you could get old school and have shards with one instance per zone, you could even have just one instance of your entire world per shard ID.
Perhaps you want to make it possible for people to bring their table-top D&D group into your game, hopefully as a compliment to playing regularly most of the time, but providing the luxurious opportunity of creating characters who will only ever exist in a private little shard of their own.
Perhaps private shards might allow invitations for PvP or co-op play; perhaps characters could be created that got to play the entire game as a single player experience where mobs never respawn, quests never repeat, zones never reset, it’s a simple, single-player playthrough.
“But why wouldn’t you just make a single player game for those guys” – because I’m offering up a menu of possible possibilities, the fundamental gameplay is still the multiplayer shared experience, and for a massively world to be successful you need to fill the aisles, which means keeping more people online.
Even in PvE games, players are content. In PvE games, however, players are also often bad content – farming, griefing, competing for PvE resources, etc.
That’s what crafting and gathering and collection quests are good for. Strictly speaking, those people aren’t playing the game. Take those things away and your average online times will go down. Lower online times means lower population density amongst the same number of people playing. Lower population density means less socialization and less interaction.
It doesn’t matter if those people are tucked away in crafting instances, what you want is people logged in and online. If they’re online they’ll show up in guild rosters and friends lists and provide socialization content if not immediate interactive content. Logging in to find your guild offline is a bigger negative than logging in to find they are available to chat. Maybe not by a lot, but enough to bump people’s online times by enough of a percent to get a good snowball effect going and to get the more social activities picking up.
Battleground Europe doesn’t have much else for a player to do; so during our low pop periods if the fights are spread too thin the options for “something to do” tend to weigh heavily towards “play something else”. If we had crafting or squad instances or in-game mail or in-game discussion or something, people would have cause to linger while not playing the game which means that when their buddy logs in 5 minutes later, they would have a friend online. Even if they only communicate rather than interact in gameplay, both of their online times will be extended and total player population will rise, creating a snowball effect. (This is why we reduced the low-pop AO limit, feeding a good fight is necessary to bring up that ultra-low phase session duration even though a lot of our players during that phase claim to want small action; small action needs a platform of larger action to keep the wheel turning)
So, having players soloing in their own private universe yet still in your game is worth at least considering as an alternative to stuff many players won’t persue like mindless material combines.
It has the advantage that, if I’m off in my own instance playing an alt, my main isn’t getting separated from my buddy groups and, like crafting or gathering, I’m not immersed in a more social activity that might keep me from wanting to join my buddies. Plus it is something distinct from ordinary game play so that when my buddies log in and ask if I want to group up, they will be offering me something different. Consider: If I log into WoW and my buddies aren’t going to be on for an hour, so I log an alt on. I happen to get a full group. Then one of my buddies logs on half an hour later. I have to chose between leaving a full group to hook up with him and kill a half hour till the other guys log in, or leaving him to hang until the full group is on and we can do something together. If I’m off doing my solo thing, then joining him is far more likely to be an upgrade in activities. It potentially makes me more readily available as content to keep the buddy player online and so contribute to population accumulation.
Making the core gameplay attractive shouldn’t be overly difficult. Each category of gameplay can have its own pros and cons, variety adding to longevity and the depth and breadth players perceive the game as having. From achievement systems to storyline to king of the hill laddering.
Virtual shards gives you immense flexibility. It’s not without technological challenges to achieve scalability, but I don’t think they are overwhelming as long as you don’t simply build your game design straight off the backs of the existing generation of games. Start with a blank slate and measure the concepts you choose to bring across to your game against the implementation you mean to persue.
Edit: I’ve actually been mulling over this concept of Virtual Shards for quite a long time, but I’ve sort of sat on it because instancing seems to be so unpopular. It’s just taken me a while to realize that the problem is people think of instancing in terms of a means to further divide up the inhabitants of a server. Naturally, that turns an MMO into an MO.
So, again, throw away the server concept and using instancing solely as your compartmentalization, and then use the shard ID as your means of re-aggregation for people who want more Ms in their O.