Virtual worlds increasingly generated by software, not made by artists

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."

MIGS: Far Cry 2's Guay On The Importance Of Procedural Content (via /.)


  1. i just installed daggerfall (1996) again and i think it is a great example of this:
    (from wikipedia):

    “Daggerfall is the largest Elder Scrolls game to date, featuring a game world estimated as being 161,600 square kilometres (62,394 square miles or 40,400,000 acres) with over 15,000 towns, cities, villages, and dungeons for the player’s character to explore. According to Todd Howard, Elder Scrolls programmer, the game’s sequel, The Elder Scrolls III: Morrowind is 0.01% the size of Daggerfall, but it should be noted most of Daggerfall’s terrain was randomly generated. Vvardenfell, the explorable part of Morrowind in the third game has 15.5 square kilometres (6 square miles). The Elder Scrolls IV: Oblivion has approximately 41.4 square kilometres (16 square miles) to explore. In Daggerfall, there are 750,000+ non-player characters (NPCs) for the player to interact with, compared to the count of around 1000 NPCs found in Morrowind and Oblivion. It should be pointed out that the geography and the characters in these later games are much more detailed.”

    to compare, england (not the whole of UK) is about 50,000 square miles.

  2. The most fascinating thing, to me, about PCG is the opportunities it opens for independent game developers.

    The vast majority of the work that goes into a game is content generation – scenery, music, dialogue (text and audio), characters and motions.

    This situation only becomes more acute as the capability of the average gaming rig increases.

    I’d guess that there’s about five artists to every programmer on the average game these days.

    PCG could possibly bring back a bit of the old days, where two friends and a compiler could create a smash hit during summer break.

  3. “Geo-specific information will enable real connections between the digital world and the physical one, so that people can freely interact with virtual data in real spaces. An old friend from out of town is at the restaurant down the block right now; your dry cleaner is closing early due to the holiday, but he has your suit ready; and an apartment in the building you’re passing by just went on the market. As location-based mobile products and services increase in popularity, all these pieces of data become immediately knowable and useable in real time. ”

    The world as the interface – location data and the mobile web, Jonathan Follett in receiver magazine, Autumn 2008

  4. this is not so great news for my friends in the 3d art industry looking to get into the gaming scene. Guess they should brush up on their high end movie style modeling

  5. I tend to think that most of the procedural world generation is actually going to be fairly simple code. Please keep in mind that the halting problem says that it’s impossible to write a program which will predict the outcome of any arbitrary other program. However, it doesn’t mean that the outcome of a particular program can’t be predicted.

    If I write a program to generate a forest of trees, and I give each tree a random but limited branching effect and a randomly selected but not arbitrary leaf type and then I tell it to space the trees between 10 and 20 feet apart, then I’ll generate a pretty regular forest of those trees, whether or not I check every possible forest. That code might generate trees which make an unusual pattern when the light shines through them, but it isn’t going to create a forest of washing machines one time. It won’t even create an unexpected type of tree.

    So in practice, I think that most of this is going to be far less interesting than you think. It’s much more likely that the characters which inhabit the worlds might behave in an interesting way if they’re programmed to interact using a certain set of rules. Like the story about the Lord of the Rings movie simulation where groups of orcs started running away when they weren’t supposed to because they had been programmed to try to avoid dying. That’s where interesting emergent behavior issues are far more likely to arise.

  6. “worlds where software off the rails could generate impossible situations, upside-down worlds, treasure heaps, cowardly monsters and brave grass.”

    This doesn’t happen in art and fiction? See “Ringworld” for brave grass (Slaver Sunflowers), see Escher’s “Relativity” for upside worlds, Gollum for a cowardly monster.

  7. The issue with procedural generation is that it produces boring levels. Even if it’s very random, that randomness in itself is not random and the result is a boring level.

    So, to combat this, artists are brought in to make little oases of creativity, which can benefit things in some ways, but the result is making everything else look even worse in comparrison.

    FarCry 2 has this issue. They’ve creative a massive world that is 95% dull – pretty, sure, but not varied. Then they add some towns and villages in to try to make it more interesting (and provide locations for the story) but they just stick out like a sore thumb.

    I studied procedural level generation for my degree thesis and the result was basically the conclusion that it may have some uses, but the game needs to be designed very much with the down-sides of randomness in-mind (e.g. look at Left 4 Dead).

  8. #5 – it may not produce a forest of washing machines, but it may produce a tree (or a whole forest of trees) that looks uncannily like hands making one of the various rude gestures out there.

    Or a combination of trees that accidentally produce a bit of bad terrain that the procedurally distributed monsters and animals get their pathing regularly tangled up in.

    Or a tree (or series of trees) that look like the Virgin Mary from the right angle, but from the wrong angle look like a hand flipping you off.

  9. who programmed the “software to create worlds that had previously been hand-built by artists”?

    aren’t they artists too?

  10. Please never mind the oh-so-cool-soundingly named Halting Problem, and let’s think instead of the fractal. You can make the Sierpinski gasket by performing a procedure with some randomness in it iteratively:
    1. Take 3 points in a plane, and form a triangle
    2. Randomly select any point inside the triangle and move half the distance from that point to any of the 3 vertex points. Plot the current position.
    3. Repeat from step 2.

    Randomness does not always lead to total craziness.

    I agree that with all the complexity around, some of the maps generated might be unwinnable or too easy. Hopefully, if the designers and the QA guys are doing their jobs well, this will be kept to a minimum.

    The part of this that fires *my* imagination is if we moved away a bit from a world that’s generated only *just* as the player moves through it for the sake of the player to a world that’s generated and maintained simply for its own sake.

    *That* would then TRULY be a virtual world. That’s something that would be a lot of fun to explore. :-D

    Furry cows moo and decompress.

  11. @eai: The reason procedure is boring is that the player can tell there’s a procedure going on. Maybe not explicitly, he/she may not even know about the concept of procedural generation.
    But when a player looks at the endless forest of random trees, he/she very quickly detects a pattern: there’s a whole bunch of trees here organized in pretty much the same way without any notable variation. Once this pattern is picked up on, the novelty of the forest wears off very quickly because it has no more potential to be surprising. The player has figured out pretty much exactly what to expect the forest to be like at any location. Or, if there are differences, the player has become familiar enough with the similarities in the procedure that they can clearly tell when a parameter has been altered.

    However games, like theater, are designed to trick the audience. And if a designer can use procedure cleverly enough, he/she can implement procedural elements without the player ever realizing they were procedural.

    A sufficiently advanced procedure is indistinguishable from hand made content.

  12. It’s a shame that people aren’t working together on this kind of technology. Individual companies seem to be duplicating each other’s work and then keeping it to themselves. I think if the video game industry wants to lower costs and make better procedural content there needs to be some more coordinated effort on this type of work.

  13. Procedurally generated content always makes me reflect on our own (real life) universe – a la Thirteenth Floor…

  14. The article mentions Elder Scrolls: Oblivion and Elite as examples of procedural generated content, but there’s an even older and more well known example — Atari 2600 Pitfall use a polynomial sequence to determine the construction of each of its 256 rooms and River Raid used a similar technique. These early games did it for the same reason Far Cry does, to fit a mor content and a larger game world than the available storage space would otherwise allow.

  15. @7
    That’s very interesting. I am not a professional in the field like you, but as a gamer I am very excited about procedural generation. I would agree that at this point artists create much more engaging levels, but I am hoping that procedural generation in the future will be able to create, for example, a world like Oblivion that is much more vast and unpredictable than what human artists can create by themselves. Do you know, or does anyone else know, if this is a reasonable thing to hope for in the next 10 years?

  16. I think that the weak point in most large or huge games isn’t with the geography and the content, but with the characters. In Oblivion, for instance, there are only a certain fixed number of voice actors. In Fallout 3, this is even more readily apparent. Even if you have a massive, interesting world, the illusion is broken very quickly when you’re always talking to the same few voices that are supposed to be different characters. I’d love to see procedural content generation applied to the construction of characters, both in physical features and voices, so that NPCs do begin to appear to become more unique and individual. In the games I’ve played so far, it’s very easy to tell which characters are quest related, and which ones are filler. I want a game experience where that’s impossible to tell until you’ve exhausted the quests. Or hey, maybe you can apply the same sort of procedure to quest generation as well, so that you can’t run out of them. I admit, those are pretty tricky technical problems to solve and if they were all perfected, you could theoretically develop a game with a skeleton crew of employees. It’s something to think about though.

  17. @20: the quest generation has to be better than “kill/retrieve/find X number of creature/scientists/stores to receive health/weapon/ammo/karma” style. those are filler or delaying tactics. now, if you could ascribe motivation to each quest given (revenge, curiosity, knowledge) through character construction, it would at least be more realistic. simulating the interaction of these beings and their changing motivations (and your influence on them) would be a worthy goal. A town under attack, and you save them. Other towns nearby also need saving, so seek you out. Attackers gather more members before the next wave.

    I see hints of gaming systems like this. Many MMORPG have your character’s faction with different races, why not with different characters? If your character always sells to the same vendor, why not have that vendor cut you a better deal?

    Many scripted sidekicks stand around like robots while your character does all the selling work. Why not have the sidekicks do some of the schlepping of goods to the vendors for you? In Fallout 3 the dog can go find ammo or food, why not convince the other characters to do simple errands?

    Black and White has your pet learn to do things (which never worked for me). Some of that technology in your followers would be nice. In some of the atmosphere characters, having them learn to perform in-world tasks would be nice. At least a path for character development that is not scripted. We know the basic story genres, implement some of those as a backstory for the NPCs.

  18. Completely agree with Spazzm: I’m working on some procedural terrain generation for a largish (10k miles diameter) map. I’m one guy: as an indie, a map that size would be beyond my reach with non-procedural world building tools.

    Things bug me about the current systems, so I’ve worked out (on paper, or a forum post, at least) how to avoid some of them.

    * Virtual cliffs usually lack karst (fixing this should give me rocky beaches for free, yay!)

    * There’s typically no strata – everything’s typically eroded in a generic way, rather than being informed by underlying rocks. “widdling on sand”. Fixing this might even give me the worldbuilder’s ultimate goal: fjords!

    * Water tables, roads, blah blah… eh, I won’t bore ya, but I’ve waffled endlessly about it over on – if anyone’s interested, do have a read and get in touch.

    Since the project is intended to be all public domain (on Sourceforge, yay), I suspect the biggest challenge is going to be finding public domain 3D art resources, though I’ve been lucky to get a number of skilled volunteers to offer their talents.

    Long time before I’m in a state where I’ll be needing them though… :( Procrastination’s kicking my ass.

  19. @scuba sm: The non-scalable nature of voice acting is one of the biggest arguments against using it at all. I think a game like Oblivion would be only marginally worse if it had all the spoken dialogue removed – and it could be vastly better if the resources that went into doing all that voice acting instead went into writing dialogue or even designing rudimentary procedural systems for text generation. That last isn’t an easy task for sure, but it’s infinitely easier than doing the same thing convincingly with spoken language.

    In general, the less “multimedia” in a game, the easier it is to implement procedural algorithms and emergent gameplay. You can look at a game like ADOM ( or Dwarf Fortress, where graphics are basically nonexistent but the range of possible objects that can exist or ways they can interact is vast, because each object or interaction doesn’t have to be illustrated with sound and pictures, just described with text.

  20. I’ve long contemplated making an MMORPG out of Borges’ Library of Babel. The game would consist of a virtual “universe – that others call the Library – [which] is made up of an indefinite, perhaps infinite number, of hexagonal galleries.” You only need an artist to make one copy of the gallery, and after that the servers could generate and store new galleries, using a simple hexagonal tiling system, as the users explored them. All the books on all the shelves would be readable and perhaps annotatable, and each, as in the story, would be full of essentially random text. These, also, could be generated and stored in real time, as needed. Once a user discovers a new gallery or opens a new book its content is fixed in the universe forever, but up to that point in time it does not exist and occupies no disk space.

    As to what the hell you might do for fun in such a universe, well, you got me on that. There should be a special subroutine to handle jumping over the railing, because in that case the user will fall forever.

  21. The classic space trading game Elite from the early 1980s used algorithms to generate a massive universe on the tiny 8bit hardware, something crazy like 10,000 starsystems with unique names and planets etc, and it was the same every time you visited.

  22. @#8 posted by eAi

    For now it’s boring. Give it 5 years.

    #20 posted by Scuba SM + #21 Annon

    I think a good mid-way solution to the problem of ‘quest’ generation would be to implement a half-automated sort of system in place, not one that is half-written by algorithms and half by experienced game developers but one that’s written by users.

    Imagine a game that was not an MMO but more a world where users can create quests/goals/items/etc for download.

    You’re playing the game and you walk into a shop of which you’ve downloaded in some sort of patch (this could be even done in game somehow). Anywho you walk into the shop think to yourself

    “hmm I hate that shopkeeper, he was
    rude to me. I’m going to burn down his shop”.

    Then you set fire to his shop, and he runs out screaming (one of the random things that could happen), runs up to other characters and a group of them chase you out of town.

    You then decide that the whole situation was extremely fun and hit ‘re-wind’ the game takes you back to entering the shop and you enter the ‘generate quest’ mode.

    At this point you can run through your basic steps again and at certain points chose the outcomes (you don’t want the shop keeper to burn in his shop, because this will destroy the fun for other people doing your quest).

    Once you’ve worked through the quest a few times and make sure it all runs smoothly and works well you publish it online, send it to a couple of friends, word of mouth spreads and it goes to the ‘popular new quests of the day category’ which can be downloaded either from the site (might take some of the fun out) or it becomes so popular some administrators and volunteers create a character somewhere in the world that will direct you towards the quest at which point it will download automatically.

    3 days later whoever created the shop is sick of this and decides to create the ‘get revenge on the arsehole who burns down my shop quest’ which can be downloaded.

    Of course all of this is thought up by someone that has no game programming skill at all and is simply an idea I think could somehow work. Maybe.

  23. Here is how I see it. Only use procedurally generated content when necessary. How many of you explored ALL of oblivion, ALL of Far Cry 2, or even ALL of Daggerfall? I doubt ANYONE, even the developers, saw all of Daggerfall. There are a few problems with this:
    – Even if it’s procedurally generated, it’s still content people aren’t likely to see, and therefore wasteful
    – People don’t like to leave things ‘unfinished’- it’s in the human nature
    – It’s boring. yeah, sure, you can procedurely generate outliers, but even then you can tell a pattern. you need dedicated mappers. I prefer a small-ish map to a large one.

    I’ve seen nearly every foot of GTA IV- I can’t say the same thing about Daggerfall.


    I have seen pretty much all of Oblivion. One day, I took the time to walk around all the land borders, to see what was hidden near them. Another day I swam in the ocean out to the edge of the map. I’m working my way through all of the dungeons. This makes it sound like I have absolutely zero life, but I’ve been playing the same character in that map for close to 4 years, off and on. I fully expect Fallout to be the same for me.

    I agree that the any generated quests need to be more than just kill this, get this, or find this get this. If you can give more depth to all of the NPCs in some fashion, quests could “naturally” occur. Two people are feuding in a town, you have to mediate, or you’re hired by one to kill the other, or torch his shop, etc. If you have a metric for how outgoing each NPC is, and what their current opinion of another NPC is and roll it together with a randomly branching quest tree, you might be able to get randomly generated quests and a more immersive environment than you can right now.

Comments are closed.