Interface: Pondering Procedures

I have an inchoate idea for a game design, riffing on some of the things I have talked about in the past, and I will be occasionally making posts about some of the ideas behind it for the sake of public brainstorming. Right now it’s best to think of this an a thought exercise for the development of a tabletop game… but how I’d code it is also something I’m thinking about, and indeed some of the elements would work dismally in a tabletop setting but would be invisible in a video game. For the moment, consider the whole thing “up in the air” as to what form the hypothetical finished product might take. The working title for whatever this is will be Interface.

So. One of the issues I finds most striking when talking about MMOs is the issue of scale. The world is a big place, and so a virtual world should be big, too. But how big? Obviously it can’t be as big as the real world, becuase of realistic limitations on computing power. Too, if it’s too big you spread players in a multiplayer environment out too much, which is undesirable… although you don’t want them confined in too small a space, either.

Let’s take a look at what is considered in the real world a small place: the island of Malta, which covers about 316 square kilometers. An interesting place historically (run at one point by the Knights Hospitaller,) but a tiny island off the coast of Sicily. Yet small as it is, it covers considerably more area than Azeroth, by one reasonably trustworthy estimate of around 100 square kilometers per continent. Such estmimates may well be off, but the point is made: virtual worlds are tiny. And it isn’t just Azeroth; the biggest overland world in an MMO I can think of is in Vanguard, and a similar estimate put Telon in at about 1068 square kilometers of land area, which is more than twice as large as Azeroth even including Outland and Northrend.

Yet Azeroth feels large, and the complaint is often made that Telon feels empty. In part this is because of excellent design on the part of the WoW team; the individual environments are varied and each feels just big enough. One wants scale and largeness but at the same time a little can go a long way.

In a science fiction game, particularly one of the sort that I envision, the problem becomes deeper. Your planets need to feel like planets — meaning they must be big — but if they are too big, or if you have too many of them, you run the risk of players encoutering one another too infrequently. (Outer) space can become an even bigger issue if it’s realistically sized.

So I think one has to consider very carefully what scale will do. If the game features interstellar travel and reasonably believable solar systems, the planets themselves will actually need to be pretty small. My off-the-cuff estimate of 20 square kilometers per average-sized planet sounds awfully small, but in virtual world terms it’s about a quarter the size of Kalimdor. If procedurally generated one runs the risk of make it very samey and fake-looking, but I think there are ways around that as well.

I’m a big believer in procedural generation and think it ought to be used more widely than it is in MMOs. At the same time, though, it can give you a lot of empty places that look the same. If you use it you need to have really good algorithms; see the endless array of procedural missions in City of Heroes for a counterexample.

So what I’m thinking of is a system that uses randomly-selected triangular map tiles, arranging each set of tiles into an icosahedron (think 20-sided die.) The exact number of tiles depends on the planet’s size, which can vary from a tiny asteroid of 20 tiles up to big planets of 2,000 tiles.

The tiles themselves could be hand-designed and set up to accomodate things like critter spawns, resource nodes and even settlements, and eventually there would need to be a lot of them, probably several hundred. But you could get away with a fairly small number at first. My thought is that each tile will have an area of approximately 0.25 km^2, roughly the size of Orgrimmar in total land area. So the (smallest planetary body) 20-tile asteroid will have an area roughly half as large as the Northern Barrens, while the (biggest) 2,000-tile planet will have 500 km^2 — over twice as big as pre-BC Azeroth.

That’s awfully big, offhand. Even the average planet in this schema comes in at 125-180 km^2, the latter of which is about the size of vanilla Azeroth. But the “dial” here is in the size of the tiles, which could easily be tweaked down to 0.1 km^2 or up to 1.0 km^2, or anywhere in between. Too, you wouldn’t normally consider predominantly water tiles to be part of the usable land area – but I have some additional ideas there as well.

The real trick, of course is not coming up with an algorithm, but in devising one that produces interesting results. If the output is all dull and samey, the resulting world will be lifeless; it should look organic instead of procedural. Which is why I think this kind of procedural generation needs several additional elements to make it really useful. And for that, we must again go back to Traveller.

2 responses to “Interface: Pondering Procedures

  1. I don’t have a lot to add here, as you are right virtual worlds are tricky unless you give the player the tools to slowly expand his control over the environment. That is the trick IMO – like all MMOs you have to start out in a simple area with little challenge and allow someone to gear up as they go. Then its up to the dev to provide a slowly growing challenge and complexity, overcome by gear upgrades and skill upgrades on the players part in order to overcome those challenges. And there are so many ways the dev can go here. Do they make the challenge on a micro level – housing/disease/hunger being the big issues here. Or do you take an overarching turn-based strategy with resource gathering and click to build set structure types being the gameplay style? No wonder its so hard to make a successful game these days – so many player types to appease.

    On a side note, never played the actual game Traveller but created chars and did mock battles quite a bit. Only had one friend i could get interested in it on a part time bases and all we did was roll characters (great char creation system!) and do the basic combat with them.

  2. Shamus over at Twenty Sided has a series of blog posts on procedural world generation. He used FUEL as a demonstration. I agree that MMOs could make more use of some procedural tricks.

    There was also this game I read about a while back that purported to be a sort of Wing Commander Privateer-ish game, but with procedurally generated planets, and you could fly down to surface level and look around. I can’t remember the name of it, but it sounded pretty cool.