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.