Here's Far Cry 2 technical director Dominic Guay talking about the importance of "procedural content generation" for massive online games — basically, using software to create worlds that had previously been hand-built by artists. It makes a lot of sense, but what fascinates me is the narrative possibilities for fiction about games: these procedural systems have or will shortly attain a level of complexity that makes it impossible to predict their outcomes. It's the Halting Problem — worlds where software off the rails could generate impossible situations, upside-down worlds, treasure heaps, cowardly monsters and brave grass. I'm thinking especially of abandonware worlds where only a few players remain and the gamemasters have stopped paying close attention. What odd maps might be drawn as the die-hards explore the outermost reaches of these worlds?
"Another big benefit [of procedural content creation] is that you end up being able to do stuff you simply couldn't do otherwise," Guay continued. "It opens up innovation fields. If you're creating things through code, you have a deeper understanding of what you're doing, and you can bake in some limitations."
"Our artists needed to be able to build not a random tree, but a type of tree," he said by way of example. "It's actually much closer to building a particle system than building traditional art assets. Artists play with parameters more than they play with vertices."
Creating those tools allowed artists to define trees based on characteristics gleaned from extensive photo reference, more than to create a number of discrete tree variants based on those references…
When a team member made a seemingly minor after-hours change to the ecosystem, it ended up increasing the asset density of the game world by 25 percent — resulting in more than a few headaches.
"If I'm tweaking a jungle procedurally, maybe I'll just tweak it in my test map," Guay said. "But when I integrate it into the game, somewhere in the 50 square kilometer game world, maybe in just three small areas, it might cause problems, and we won't find those problems until QA uncovers them."