Gamasutra: The Art & Business of Making Gamesspacer
View All     RSS
November 1, 2014
arrowPress Releases
November 1, 2014
PR Newswire
View All





If you enjoy reading this site, you might also want to check out these UBM Tech sites:


Opinion: Designing a 'Single Server' MMORPG
Opinion: Designing a 'Single Server' MMORPG Exclusive
May 12, 2009 | By James Portnow




[In a new Gamasutra-exclusive 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.

3. Production

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

2. Monsters

3. Natural Resources

4. Dungeons (instances)

Town Building:

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.]


Related Jobs

Twisted Pixel Games
Twisted Pixel Games — Austin, Texas, United States
[10.31.14]

Senior Graphics and Systems Engineer
Twisted Pixel Games
Twisted Pixel Games — Austin, Texas, United States
[10.31.14]

Mid-level Tools and Systems Engineer
Giant Sparrow
Giant Sparrow — Playa Vista, California, United States
[10.31.14]

Lead Artist
The Workshop
The Workshop — Marina del Rey, California, United States
[10.31.14]

Programmer










Comments


An Dang
profile image
This is how I wanted MMORPGs to be when I first started playing. Seeing as how I don't have that $100 million seed money, I can't do too much with this.

Matthew Woodward
profile image
Interesting read :) It is kinda frustrating that even in a basically universal article like this one, the assumption is still made that we're talking about a fairly standard fantasy context, but I guess that's the lingua franca of MMO discussion these days...



The one additional thing that immediately springs to mind as being worthy of mention at this level of discussion is the issue of player clustering. The more players you have in your gameworld, the bigger potential clusters (ie, big groups of players in one place) you need to consider. Ideally of course your server just deals with it, but, well... I'd be very interested to hear about the hardware and software configuration that doesn't have to worry about this sort of issue if you're shooting for 80k concurrency.



There's two distinct causes for this sort of thing that I've come across. The first happens where everyone realizes that a particular location is advantageous, and migrates there. The best areas for PvE, the richest resource concentrations and (particularly relevant given the discussions in this article about trade routes) the most connected areas for trade are all candidates for this sort of thing. Often the benefits are pretty marginal, but a lot of players care about that marginal benefit, and players will put up with a lot of indirect disincentives if they think they're getting the best bang for their buck. This issue is particularly thorny if it's something like a trade center causing the cluster, where the value of the site is in some respects increased as more people turn up (for a trade center it likely becomes a buyer's market in terms of pricing, but the volume you can achieve works in the seller's favor too if they can scale to take advantage of it).



I don't know of any silver bullet fixes for this - unless your benefit balancing is perfect (probably impossible), it's likely that this will always be an issue to some extent. It can be mitigated by thinking carefully about it when you plan your resource distribution and travel routes, and a lot of good can be done by acknowledging that it's going to happen and planning in multiple competing best locations in a way that your servers can handle. I suspect a lot of it will still come down to seeing what players do and reacting to it though, because beyond making incredibly accurate player-modeling software I'm not sure how accurately it's possible to predict such hotspots in advance, unless you're making them deliberately.



While the above tends towards long-term high-population zones, the other problem comes up when something happens that makes a lot of players come to a previously low-load area at the same time. Aside from horribly badly planned live events, the big driver for this that I've seen is player conflict, particularly when you're leveraging player-driven endgame PvP.



This again is a bigger problem as your concurrency goes up, and unless you're limiting the possible locations for conflict fairly heavily (which I'm not seeing as a good idea in principle, because by limiting the number of sites you're limiting the battlefield variety which is keeping your tactical-scale combat fresh) it's fairly difficult to predict where this is going to happen.



There is though an additional tool here which isn't available for more permanent clusters, which is that the size of a combat-driven cluster is limited by the number of people in the conflict. This is something that can be controlled to a certain degree. The easy, bad way is to enforce artificial caps in key places in the design (limits on numbers of players in an area, or limits on numbers of organizations that can be involved or what have you), which may (or may not, player ingenuity being what it is) mitigate the problem, but which will also probably infuriate your players no end.



The better, harder way is to have a good think about the social dynamics at play and massage your system to subtly encourage smaller, more localized conflicts. (This may also be desirable from a design perspective for other reasons besides load-balancing.) This is probably ultimately rooted in the kind of political/military/social/industrial dynamic you're instantiating in your player-driven experience, but I think there's a fair bit of common ground to do with stuff like Dunbar's number, organizational stability and general human nature. If you can figure it out, then it should (I think!) be possible to tune things such that the larger organizational structures needed to field local playercounts that threaten your stability aren't viable enough to constitute a persistent issue.



(If anyone else is doing "thinking stuff" in this general area I'd be very interested to hear about it, because there's not a lot of literature or theory that I know about.)





Oh, and one other unrelated comment - if you've got a big, player-driven political landscape, "live events" of whatever flavor, where the activities of player organizations and developer-controlled organizations overlap, are I think for many reasons a very big kettle containing a pretty large number of fish. I would suggest that, while they're a good idea, they're also something that it's much harder to overthink than underthink.

Z Z
profile image
Instances ruin your entire idea. Instances are a shard within a world (a server is a shard within our world). If you're going to do this then there can't be instances either. Instances are the worst idea in the entire current MMO genre, and one of the main reasons I stopped playing them. They separate the community and inflate the world with items that should be rare which in turn makes everyone the same.

James Portnow
profile image
Carless!!!! No fair releasing my articles on days when I'm off to speak at a convention...



@Matthew I completely agree with you on the fantasy context. It's a shame but this is the context in which I've been asked to answer this question each time it's come up ;_(



Other than that, I agree clustering is an issue, I've tried to include some mechanics to help separate players into smaller, more permeable groups. I'm glad you further examined the issue, and I encourage others to do so as well. This article is a very high level overview and by no means a complete laying out of the problem.

Mike Schultz
profile image
The article briefly touched on Eve Online. If anyone wants to see a very good example of a single sharded world, you need to look at Eve. It has been online now for 6 years and just saw its subscribers jump %20 to over 300K with the release of Apocrophia. They have had problems that were discussed. Jita for example is the main trade system in the galaxy. It is not at all uncommon to see 800 to 1000 people in this one system at any given time. CCP (The developers of Eve) battled for a long time to alieviate the congestion in this system. Last year they introduced a Multi Terabyte ramdrive system that has had an amazing improvement in the game play. One other problem was that in very large fleet battles (Sometimes involving thousands of players) in 1 system would cause huge lag issues. CCP has also improved this drasticly. They have even gone so far as to have players inform them of an impending large scale battle so CCP can shift server resources to accomodate the increased load in 1 system.



I just think that anyone thinking about developing a single shard world really needs to look at Eve-Online and take notes.

Hrafnkell Oskarsson
profile image
Good read. Another thing to consider is the relation between social grouping and clustering. One of the reason why clustering happens is because one (or more) social group like to gather in one place rather than many. For instance, one of the key reasons why fleet battles in EVE see each participant gathering all their forces in one place is because it makes it easier to manage and control. So if we have a game that allows players to group together into guilds (or corps or whatever) of hundreds, even thousands, and we want to discourage clustering, then we need to not only encourage large guilds to spread out, but also support it through robust and powerful management tools for guild leaders. Tools for leaders of large player groups tend to be woefully inadequate in MMOs.

Rook Fischer
profile image
Great article. On the flip side, the more freedom you give your players to influence a single shard world, the more complex the game, and thus the steeper the learning curve for new players. Again, Eve Online is a good example of this. Some eve players have said that the learning curve of Eve Online is somewhat akin to running full tilt off a cliff. They have even provided illustrations. (http://mendax.org/2009/02/19/reassessing-eve-or-our-eve-experimen
t-mendaxeve/)



For any single shard world, a great deal of effort will need to be made to introduce the new player to the complexities of the game without overwhelming them and turning them off of the game.

Kit Eklof
profile image
So if it's to expensive to make an unsharded MMO, and you still want to create a game that fully involves the player in the story telling, what do you think are the positive and negative things about having 10 servers that all evolves into ten different stories and worlds?

Michael Rivera
profile image
Actually, so many of the ideas above rely on either procedurally or player generated content that I really don't think you'd need to worry that much about story development. It'd just occur naturally within the game systems, kinda like a MMO version of Dwarf Fortress.

Mark Colwell
profile image
If we look at ancient Biblical lore we see that languages were used to divide people and make it difficult for them to build a tower to heaven and crash the server. Language could perform the same functions in a virtual world making interactions with NPCs more difficult or impossible until Mastery of that language had been aquired. Nation States, cultures, racial/ethnic advantages and differant character skill sets could also make an area that is a "sweet spot" for one type of player and a nightmare for another.



Instead of creating entirely player driven economies/towns/government I believe it would make more sense to set up an NPC skeleton. A player can assume the role of village elder if he get's X amount of players to bind to/become members of a village... they can then complete quests and gain experiance helping the village grow into a town. Players can build houses, set up bussinesses, however most of the boring administrative stuff is done by NPCs unless a player steps into a role and replaces the retiring public servent.

Ryan Galkowski
profile image
If you want to keep the setting up of towns player dependent I a good method would be to have certain monsters aggressive towards buildings themselves. The town would then require money to repair from attacks, otherwise it would fall into ruin. This would make it easy for towns to spring up in areas where there are easy monsters or non-building aggressive monsters, but in more difficult areas towns would be harder to maintain so there would be fewer towns built, or more ruins from attempts. Invasion events would also cause the need to repair the towns in easier areas which would help serve as another money drain for the economy.



*I was out of town for the weekend... and goblins destroyed my house while I was out*


none
 
Comment: