I’ve been thinking a fair bit about randomness in game design recently and so, as it turns out, has Greg Costikyan. Greg did a presentation at GDC Austin this year giving the topic a good overview which you can read here. I want to talk about only a small part of the ground he covers here; namely the generation of an infinite variety of random content.
I spent a large portion of my youth playing Rogue on a grandparent’s ageing PC and an even larger portion of it playing Diablo and part of the reason I spent so long playing is because I was replaying them again and again with a different experience each time. Forget your Metal Gears and your Final Fantasies; to me these were the games really showing the edges of what was possible with computer entertainment. Infinitely generated content at the touch of a button, crafted not painstakingly by a human hand, but shaped into life by random numbers and algorithms. Though of course there is much careful work that goes into shaping the variables, algorithms and rules that do the content generation.
What’s bothered me slightly in the recent history of game design has been the semi-abandonment of this algorithmic approach to design and the rise in its place of a more hand-crafted movie like experience that seems to fly against the power of computers. Of course, there was much excitement when Spore announced it was going to make procedural and player driven content one of its unique selling points; but so far it doesn’t seem to have sparked much of a revival perhaps due to the games moderately poor reception.
The other piece of recent procedural design, that has been less heralded as such, is the AI director from Left 4 Dead. Here, unlike Diablo, the environment stays relatively static but the behaviour of the infected attackers is pulled together from a combination of the way the players act and a sprinkling of randomness – its essential in making Left 4 Dead work at all on repeated playthroughs. The upcoming Left 4 Dead 2 looks set to push the procedural generation increasingly into the environment with mazes and weather effects all being determined by the AI director.
For the indie developer procedural content is of more than just game design enhancing benefit its a somewhat essential tool in competing with the resources of the bigger developers. Here’s Chris from Introversion repeating most of what I just said again but in his own words:
Procedural content is a phenomenally powerful tool for game development, utterly crucial to companies like Introversion and basically ignored by the bigger boys in favour of banks of expensive artists. For those that have absolutely no idea what I’m talking about, Procedural content is basically content that has been generated automatically by a computer algorithm, rather than hand crafted by an artist. So for example I could hire an artist to sculpt a mountain surrounded by some hills, and he could work for hours carving out caves and rock faces and etching detail into the surface. The more detail I require, the longer my artist has to work and the more it costs me. As the years roll by, the bar is gradually raised and the amount of detail required for todays models is extraordinary – the time and money required goes up every year.
Alternatively, I could write a few hundred lines of code and generate the entire mountain and hills procedurally, using fairly easy to understand mathematics. I can control the amount of detail I am generating – more detail doesn’t cost any more to produce than less detail. As the years roll by and the standards rise, CPU power increases and higher and higher detail landscapes can be generated with exactly the same algorithms. Mountains and hills are good examples, because most landscape follows simple mathematical rules and can be easily approximated, but in reality most things can be modelled using algorithms – trees, streets, cities, planets, star systems. Darwinia made extensive use of procedurally generated landscapes – we designed the landscapes at an extremely high level (eg Mountain here, Flat land here, Water there) and the algorithms did the rest. Will Wright’s “Spore” appears to be blazing a trail – procedurally generating an entire universe from the galaxy level right down to the amoeba. The content generation in Spore is even guided by the players as part of the game – absolute Game Design Genius.
It’s not even a new method – procedural content generation used to be the only way to generate content for games, as storage space was so extremely low and it just wasn’t practical to store high resolution models and graphics in memory or on disk/tape. Ever wonder how Frontier fitted a whole galaxy onto a single floppy disk? This was one of the best examples of procedural content, generating each star system and planet in memory when it was required using simple algorithms. Now that storage space is no longer an issue Procedural generation has become something of a lost art, but I believe it is the secret weapon that most developers have yet to (re)discover.
I don’t think Chris’ words are strong enough(though he rightly highlights Frontier’s Elite as another procedural classic). For me this is where a large part of the interesting potential future of video games lies. Currently most of the algorithmic generation is tackling relatively easy cases – terrain, difficulty adjustments, galaxies and other easy to model simulations. When it gets really interesting is when we start to algorithmically generate things like the dialogue in an RPG. There is no physical reason why a computer can’t generate text that approximates human speech. Its tough, sure – but imagine if the dialogue could completely reflect the possibilities inherent in today’s virtual worlds. Imagine how much more immersive a game like Fallout could be if instead of reacting with only the canned soundbites, the possibilities that the designer predicted, a character was actually a character. You could speak with them about almost any topic in the world and they’d have something unique, to them personally, to say about it.
Thats probably enough verbiage for today but I expect to revist this topic in the future with further thoughts.