May 14, 2009 4:00 PM | Simon Carless
[In a new opinion piece, designer and Divide by Zero Games founder James Portnow looks at design approaches to unsharding MMOs, in order to create more immersive, integrated game worlds.]
We won’t be able to provide meaningful stories in MMOs until we can allow the players to affect the world they play in. Currently, this is impossible because of the nature of “shards”, “mirrored worlds”, or, as they are best known, “servers” (though this last term is somewhat inaccurate).
The reason for this is: If players on Server A can make choices that differ from those made by players on Server B and those choices actually impact the game world, on the development side you soon end up with a fracturing storyline and so much content to develop that you’ll be fast on your way to learning a lot about bankruptcy court.
There are many ways to solve this problem, my favorite of which is a largely instantiated world tied together with an overarching story structure (I know that’s a dense sentence – come to one of my talks, you’ll find out exactly what I mean by it – but, as it doesn’t really affect the rest of the article, I’m not going to steal more of your valuable time by parsing it).
But I’ve been asked time and again by major companies and interested designers how to build an unsharded MMORPG with a single, vast world space that all the players can play in (for some reason people seem to like to do things the hard way). Well today you’ll all get to hear my answer.
Just to be absolutely clear about what we’re discussing, imagine a game like World of Warcraft, but instead of all the players on different servers they all play on one server. I’m sure your designer brain is reeling at all the problems this presents. You’ve probably already spat out this list of issues, but here’s what I see as the major hurdles to overcome if you are to build such a world.
1. Population Density:
a. Getting enough physical space for all of your players to play in.
b. Making sure towns/areas of interest aren’t over populated.
c. Allowing players to traverse quickly enough between areas of interest.
2. Varied Content:
a. Providing all the players something compelling to do.
b. Having a world that feels cohesive to the players.
a. Creating the game economically.
b. Ensuring scalability and cost-effective ongoing content creation.
So now that we’ve identified some of the problems, what will you need to make your Unsharded MMORPG? Well first you’re going to need about 100 million dollars. You’re going to be technology heavy, because you’re going to need a robust backend plus some sophisticated world building systems... What can I say, big world MMORPGs aren’t cheap (and building infinitely extensible ones are even more ‘not cheap’, we’ll be doing a lot of tricks to get it down to 100 mil).
Assuming you’ve got that 100 million. What will you need to do with it? Well, first off, you’re going to need an infinitely extensible world. Clearly you can’t build such a thing by hand without going bankrupt, so what can we leverage to help us create this world? Procedural Content and User Generated Content.
World Enough and Time
In order to create the incredibly immense world you’ll be building you need to create a procedural terrain generation system. This system has to be able to create a varied environment on a large but limited set of assets. How varied? Well remember that we’re talking a world that is potentially unending.
At its very least this world should be about one hundred times bigger than the current World of Warcraft world (this calculation was done with some very rough back of a napkin estimates on how much “space” an MMO player needs to thrive in a virtual world -- which were in turn based on the fact that the peak concurrent on a heavily populated WoW server is about 4000 and that a game of this nature would have to be design for peaks of at least 80k, accounting for differing nature of this type of game).
Your system also has to allow you to scale your world and push the edges of the world out as your populous continues to migrate and explore. Additionally it has to generate a cohesive and traversable world.
There are lots of articles out there on how to procedurally generate terrain, so I’ll skip the specifics. Let’s see what else we need to do.
Works of Days and Hands
Okay, so now we have a world. Now we need to put some stuff in it. Let’s talk about what ends up in an MMO world, because really there isn’t that much, there’s:
1. Cities and Settlements
3. Natural Resources
4. Dungeons (instances)
Well, first let’s discuss cities and settlements. For the most part we aren’t going to want to build these either…so let’s let the players do it. This leads to a more dynamic world with more player ownership. It also means that the towns will naturally sift out to be where the players need them in your procedurally generated world. Of course this means building a robust and, more importantly, fun, town building/management system. It also means giving players a reason to build and manage towns. Looking at EVE Online’s station management system here is a good guide.
EVE has taught us that player built locations can encourage social interaction, drive player conflict and take some of the burden off developers. How did they do it? By properly incentivizing station building. Rather than being an afterthought – as it is in most MMOs that even include it – ‘town’ building in EVE is an integral part of the design. Player who build stations get economic resources otherwise unavailable, thus highly encouraging structure creation (and defense). This is essential if we are to rely on player created towns in our game.
Additionally this sort of town building gives us one further benefit: it broadens our audience and allows for a new form of play. There will be players who do nothing but manage towns and help build the world. Some of these players will end up being some of your best evangelists, rather than simply washing out of an ‘all grind’ game.
So what sort of system should town creation be? Sadly it is going to require building a totally different interface than your standard MMO controls. This is expensive, yes, but not as expensive as building all the towns of the world. The key to this system is that it be simple to use.
I recommend going with a top down “gods eye view” perspective for your town building, this allows players to see all the buildings in an area in relation to one another and allows you to do basic usability enhancements like outlining buildable plots of land. Building buildings should be as simple as having the resources, clicking on what you’d like to build and where you’d like to build it.
For the most part players should be able to build a single building in a town, let it auto-manage itself and receive income based on the usage of that building (with occasional trips back to upgrade it) if so desired.
This should be completely separate from town management (which we’ll talk about below). On the art side, buildings should be based off simple templates with modular segments for player customization (obviously simple re-colorizing is the cheapest and goes a long way but, if you’ve got extra cash in grip, building finishes will really make your world more vibrant).
Now about town management. There should be a system where certain players can manage an entire town or section of larger cities in order to keep things cohesive. For doing so those players should receive income based off the use of all the buildings in their town (can even be a tax system with a neat slider!) which can only be used to upgrade the town and some sort of personal incentive based off the success of their town.
If you really want to mix things up and incentivize player politics, which we’ll talk about below, allow a “graft” system where players controlling towns or areas can skim some of those funds for their personal use.
How players get to control towns is up to you. Depending on your game you might want it to be a conquest system, or democratic elections, or both.
This system will give your MMO a much needed ‘elders game’ and will allow you to have meaningful player interactions at the high end. This is important since in an unsharded world standard high end raid content becomes much less vibrant as it will be much more diffuse, so anything we can do to create interesting high end gameplay without having to handcraft raids will help a great deal.
But before we can examine that we need to give player’s a reason to congregate in certain areas.
Socially Designed Procedural Resource System
Just because much of our game is procedural doesn’t mean that it isn’t a directed experience. We want players to have the best experience possible, so this means creating “smart” procedural systems that take into account more than just mathematics; we need to build systems that account for human behavior. We’ve just talked about the town creation system. Now we have to consider why people build towns.
For the most part humans build towns around trade routes or natural resources with some minor consideration for defensible terrain. In pre-industrial societies, towns located around natural resources tended to grow until slightly past the point where the per capita access to resources was less in the town and surrounding area than it was in the wilderness.
Trade route cities obviously grow and die with the trade routes they exist along. Major economic centers tend to occur at the confluence of multiple trade routes, so long as that location has some access to independent resources and some natural defenses.
So now the question becomes: how do we allow for this behavior with our resource system? Well first off I’d encourage you to have a designer who has a lot more background in how humans choose to congregate than the above paragraph (fascinating topic, I could go on about it for hours, luckily for you, I won’t…), but just using the above brief information, there are several keys:
1. Remember that monsters ARE resources.
2. Have a weighted distribution system that makes "resource lanes" and "resource nodes"
3. Allow for resource thinning over time
First and foremost, I’ve met a few MMO designers who seem to forget that monsters are their number one resource. Players will tend to congregate in good spawn areas. It’s amazing how quickly even marginally advantageous spawn areas get discovered and exploited. This means your spawn placement and natural resource placement systems should be viewed as one holistic system rather than two disparate entities.
Once you’ve got that overarching view of what your resource system should be, how should you implement it in order to best take advantage of natural human grouping instincts?
Well, first off, you’re going to need to view your world as a grid. You’re going to start off with a group of “resource nodes” - heavy resource concentrations - that will form your starting towns. These towns will have to be built by you, the developer, to give the players a place to start from; luckily the town building system you’ve already implemented should make this cheap.
Once you have these nodes, you’ll have to set the content around them. You will basically be creating "newb zones". This will serve as a seed for your procedural system. Your system will take into account the difficulty of the content in the neighboring grid squares in order to place similar content next to it, getting more difficult as it moves away from the initial nodes.
It will also have to take into account the amount of content in neighboring grid squares in order to algorithmically generate channels of resources that guide players to further resource nodes (where you can expect players to create cities).
It’s important to remember that resource spawning takes place over the lifecycle of your game rather than simply being established when you launch the server, so your spawning mechanic should be able to adjust dynamically as your gameworld/player distribution changes.
It needs to be able to factor in social elements such as what the average level of players in the area and how long an area has been player dominated (so that long held territories become more peaceful, encouraging players to explore and disperse).
I won’t take the time here to go into the specific algorithms to do this, but consider your system to be a cellular automata in the vein of Conway’s Game of Life (if you don’t know what I’m talking about you should immediately stop reading this and Wikipedia Conway’s). This should help contextualize your thinking on how to distribute natural resources, monsters and instances.
Monsters and Instances:
Ok, so far we’ve created the world, we have resources distributed around the terrain so as to direct the players to congregate in specific areas and we have a town building system to facilitate their doing so... now we have to contemplate how to make the actual game fun.
Combat in Fantasy MMOs is well established and many cleverer individuals than I have opined on how to improve it, but it’s not unique to an unsharded world, so let’s skip past that part and talk directly monsters and instances. In an unsharded environment we have to look at monsters and instances fundamentally differently than we do now.
Right now the paradigm is to spawn individual ‘mobs’. To keep things feeling fresh in an environment of this size you should instead be spawning encounters. Some simple scripting will allow your battles to feel more vibrant and get more millage out of a limited amount of content so:
Instead of spawing some orcs, spawn “some orcs fighting some elves” or “some orcs attacking a wagon train” or “some orcs attacking a wagon train with some elves defending it”. In these sentences the terms “orcs”, “elves” and “wagon train” are all variables: they can be plugged in with any monster, humanoid or ‘stuff’. This allows you to create more interesting encounters for your players to stumble upon and while repurposing content to keep costs down.
To re-illustrate: running into orcs sitting around a campfire or elves sitting around a campfire is more interesting than running into a randomly spawned pile of orcs or elves, moreover in both of these scenarios we can reuse the campfire without creating any new assets.
This is important because it will give your world the feel of a vibrant, living environment without handcrafting specific encounters for specific zones (which you won’t be able to afford to do in a world of this magnitude). If you layer on top of this a function in your resource system which tries to deploy a similar set of creatures in any specific geographic region (with these creature sets blending into one another on the boarders) you will have created a cohesive world.
Instances will also have to be largely randomly generated. Handcrafted instances will provide too much incentive for players to group in any specific area, so instead you can distribute entrance points to random instances across your world as it is being created.
Each of these “random” instances should be pseudo-random. They should have attributes such as: difficulty (expected level range), environment/theme, monster types encountered, loot types dropped, etc. Most of these attributes should be set by your procedural spawning system.
What Man Has Made of Man
It is growing late and I grow weary (as probably do you, this is like six pages... of reading... words…), so I’ll try to keep the rest of this brief. There are two major boons that unsharding provides
1. Player interactions can have real meaning.
2. Players can affect the world they play in.
These things may at first seem similar, but I assure you, their distinction is important. Player interactions range from political interactions to the economy of the world where as when I say, “Players can affect the world they play in” I mean that you can give player’s real agency over what occurs in your MMO. There is a vital interplay between the two, but they are separate ideas.
It’s important to focus on both of these things because otherwise, why unshard?
This means that:
A. You should focus on the strength of your MMO: the number of players.
B. Create opportunities for your players to affect the world.
Normally I talk about these two points in great detail whenever I discuss unsharding MMOs, but as that would meander into another several pages of text which would not be directly relate to the practical problem of building a single world, shared story space, fantasy MMORPG I’ll leave you to think on these two points and offer simply this:
In a game of this nature you are not going to have the high end raid content a person might expect from a standard MMORPG, so you have to find other ways to encourage top tier player retention. The two ways to do this are to allow for a thriving player society, where player empires rise and fall, trade monopolies are gained and fortunes are made then lost and to allow player deeds to have a permanent effect on story and game play.
The first way mentioned is sort of the high end PVP aspect of your game, and, if I’m going to give you any advice here on it, it’s to write it into your story. Let player guilds and player wars become part of the lore of your land. Let player factions ally with your NPC groups and influence the future of your game. Patch for things they do and let them engrave their names on part of your world. You’ll get higher retention from this than from a thousand well built instances.
The second is your sort of your PVE. It is events, crafted by you the developer, which take in the whole scope of your world and allow players to decide how they want their world to grow. This can be anything from upping the rates on Goblins spawning and having players fight off the “goblin horde” until finally they unlock the power behind it, to turning in medical supplies to stave off a horrible plague.
Of course, to do this well you have to let people ally with the goblins or the dark forces secretly spreading the plague…and those forces can’t be de facto evil. And you have to be willing to patch differently depending on whether the goblins win or forces opposing them. If you do that you give players a chance to say “I was there”. When they pass by the town ruined in the goblin invasion or the plain haunted by those dead of the plague, they’ll have an unprecedented sense of ownership of the world they are in.
If you want a longer diatribe on how to do this, feel free to email me (my email address is at the end), but simply put, if you are going to do this, remember why you went to all this trouble in the first place.
Flights of Angels
Take this, run with it. I hope it does some of you some good. More importantly I hope it gets us a little closer to delivering the kinds of worlds and the kinds of stories that our medium has long promised. If you use it, I would simply ask that you find the time to share something you learn.
[James Portnow is a game designer, formerly of Activision, and now at Divide by Zero Games, where he is also the founder and CCO. He received his master's degree in Entertainment Technology from Carnegie Mellon University.]