
These screenshots represent the first weeks work in writing a procedural City Generator. Just a few incredibly simple rules govern the growth of roads in these prototypes. By making small changes to those rules, you can vastly change the result. Encouraging roads to run North-South or East-West results in Manhattan style street grids, whereas encouraging roads to circle population centres results in lovely radial street patterns. These are obviously very early prototype shots but I wanted to show the incredible power (and beauty) of procedurally generated content, even at this early stage.

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.
Here’s a video showing the algorithms at work in realtime. (xvid codec)
