Procedural Content

Post date: 04-Apr-2011 23:18:32

Just saw this post on BoingBoing about Minecraft world generation seeds, and was struck by the evolution we're seeing in virtual world content generation.

Hand-crafting content for virtual worlds is limited by the law of diminishing returns - it takes an exponentially growing number of man-hours from very highly trained artists to produce the landscapes and interactions we come to expect from our games and other forms of entertainment. But there's a sea-change happening - more and more developers are looking for ways to generate content procedurally, using algorithms that either mimic the natural processes being modelled, and/or using mathematical tricks that work around the unpredictability of the real world.

A good example of this is physics - rather than hand-animate the motion of objects we've handed control over to simulation mechanisms, and focussed instead on tweaking the rules to make the experience satisfying. These days even dinky mobile games like Angry Birds have a physics simulator in them (in this case the enormously popular Box2D) and character animations - usually the domain of serious hand animation or motion capture - are now handed over to ragdoll simulators, for more realistic tumbling and flopping.

Landscapes, too, get simulated - from a height-map modulated by perlin noise, to Dwarf Fortress' complex geological algorithms, there's lots of approaches being experimented with. My favourite currently is 'Dust', a new project from Eric Chahi (of 'Another World' fame) because it includes a stunning physics simulator that allows users to dramatically mutate the landscape. Internal terrain, too, can be generated - Sean Howard has some great ideas on the procedural content part of his '300 Mechanics' website, and Introversion Software's Subversion project is generating some wonderful procedural cities.

(This all has in interesting parallel to the real world (and here's where we come back to Minecraft): if all the rules of a system are fixed (like they are in, say, real world physics) then the state of the whole universe governed by those rules is determined by a small set of initial conditions and constants (just as physicists suggest our real universe is.) So in a sense a Minecraft 'seed' captures in one value the initial conditions of a universe - makes you wonder if there's a similar number for our universe, doesn't it?)

Giving players access to the mechanism that generates their game world is a great step for Minecraft, and got me wondering what else might be possible. Any place where a significant amount of content needs to be created (like quests for an MMO - a lot of them feel like they were written by a robot anyway) offers us an opportunity to experiment with procedural generation - and if we can capture stats on user's enjoyment of that content then we can even leverage the wisdom of the crowds to rank and prune contenders, allowing us to explore the space of potential quests for the ones best suited to our player base. The possibilities are endless, and I'm greatly looking forward to seeing what game companies do with this next.