Experienced Points#29 – The Future is Procedural

By Shamus
on Aug 21, 2009
Filed under:
Column

For me, one of the most exciting games this year has been FUEL. I haven’t written about it yet, but I have a series coming at some point. (Most likely after the AI series and my series on The Path.) I want to pick apart the procedural methods used and compare it to some work I’ve done in the past. The technology is really exciting to a procedural content fetishist like myself. This week’s Experienced Points is a very brief analysis of the technology and some ideas on where I hope this tech is headed.

Enjoyed this post? Please share!



20424 comments. Hurry up and add yours before it becomes passé.

From the Archives:

  1. Gary Stewart says:

    Interesting article. I think we really do need to start looking for ways to reduce game development time. I don’t think this would even really impact jobs particularly other than to reduce the time that I need to spend, as a designer, in tedious things like path network layout and such.

    As an aside though Valve might hand place a bunch of stuff but they are obviously looking in procedural content for some stuff as shown by Left 4 Dead (even if that was Turtle Rock studios stuff originally).

  2. Yar Kramer says:

    I’m really excited to see time being spent on technology other than graphics.

    Hear, hear. Unfortunately (you guessed it!), due to the existing graphical requirements, my computer can’t run FUEL

  3. ZomBuster says:

    Procedural terrain is kind of boring tough, I’m more excited about Borderlands procedural weapon system

  4. Ryan says:

    The reason why SONIC team hasn’t made any good sonic games lately is because Sonic runs so damn fast that he eats up game world at a huge pace. They can’t design enough on a next gen system; even last gen systems. Or that’s what Sega says anyways.

    Maybe procedural content is what the old boy needs? Litter some pre-made content in the game so things don’t feel same-y and I think it would work.

  5. Daniel says:

    How does a game like Mass Effect fit in here? (I know, DRM is evil, but not all of us have your principles/willpower — and, besides, I got it on Steam.) In ME you have the core (hand-crafted) game but there are also a ridiculous number of proceduraly generated worlds. This is sort of the effect you mention for FUEL; the “filler” procedural content is there for those who want to explore it but it is not required to advance in the game. This seems like a good compromise in two directions. First (as you said) it’s a compromise between the quality of a Valve-like hand-crafted game and the scope of a procedurally generated one. Also, however, it’s a good compromise on size in general. It allows the game to be epic and lengthy to those who love it and want good value for their time. But, because players are not harshly penalized for skipping the procedural content (depending on the difficulty level) players with more limited time can also see the whole plot and enjoy the story.

    I think this compromise is key as gamers continue to age. This may be a little off topic, but I know the reason I never finished Neverwinter Nights 2 (well, other than the furstrattion with the absurd plot door ) was how much the game length was padded with extra combat. I’m sure I would have *loved* this extra value back when I had no money and a long endless summer stretching ahead of me, but these days I got bored and wandered off before ever finishing it. NWN2 would clearly have been a better game (for me and others like me) if some of the long dungeon crawls had been optional. However, it’s a lot to ask level designers to spend their time lovingly crafting areas that (many) players won’t see — and even more to ask publishers to pay for it. To come back to the topic at hand (finally!) I think this is one of the real strengths of procedural content: it becomes easy to add in extra gameplay without having to invest so much time that you become unwilling to let players skip the filler. In this way, designers can craft a game that can deliver solid value for a player who can devote hours upon hours and also remain accessible to the player who only has 20 or so hours for this game but still wants to see how the story plays out.

  6. ThVaz says:

    It’s a sin to write about procedural content and not write about Dwarf Fortress.

  7. Arquinsiel says:

    To be fair to Dwarf Fortress, it makes computers that can run multiple instances of Farcry bend over and squeal like a pig when it’s in the mood to. God-damned insanely CPU intensive at startup and then again at late game.

  8. Maldeus says:

    I’m kind of afraid people are all going to jump on the procedural generation boat before I have can get a college education in coding, go to work for a game development studio, then start my own based primarily on pinning this blog to the ground while ripping off every good idea it has. Oh, well, I can always go for broke on story and atmosphere and hope I’m as good at those as early indicators would suggest.

  9. rabs says:

    I’ve been very interested in procedural stuff since I discovered roguelikes over 15 years ago. I dreamed about a complete advanced world where everything would be procedural, including characters and “interesting” plots.
    Dwarf Fortress is the most advanced I now, but it’s already mentioned :)

  10. vukdolak says:

    If you’ll forgive a question asked purely in ignorance – is this not exactly what Oblivion did? The towns were obviously not procedural but the hundreds of caves, ruins, forts, mines and especially Oblivion gates were boring and samey. The terrain was beautiful though. So, if they were both procedurally generated it would suggest that it’s fine for terrain but can get very, very boring if used for dungeons/levels.

  11. Sheer_FALACY says:

    I think Mass Effect and Oblivion are the examples you should be bringing up to argue AGAINST procedurally generated content, not for it. The non-plot planets in Mass Effect sucked horribly – the car could drive up any slope, so the only thing that was affected was the time it took to get there. The “dungeons” weren’t procedural so much as selected from 4 possible layouts.

  12. Magnus says:

    Diablo 2 is still the king of procedural gaming in my eyes, with Daggerfall getting the silver medal.

    • Shamus says:

      I let out the discussion of Dwarf Fortress partly because I haven’t played it yet. (Hey, it’s your fault. You people kept warning me about what a potent narcotic the game is.) But I also left out Diablo, Nethack, and a lot of the tile-based stuff because I didn’t want to get dragged into a bunch of theory. I was talking specifically about making 3D worlds, which is a subset of generalized procedural tech. I’ll talk about this more once I begin my series on FUEL.

  13. rofltehcat says:

    Hm… how does FUEL feel?
    I imagine it could feel a bit empty, but then again I don’t really know what the game is about (well, except vehicles driving around in a giant world).

    I’m asking because the way the oblivion gameworld was designed sucked and I am reminded a bit about it when playing Fallout 3 for the 5th time (damn you, Shamous! :P ) although the Fallout 3 world is much better. I also played Spore, which is very entertaining in the first stages but gets very repetitive once you spent some time in the star travel age (blaaahrg we are generic religious fanatic species # 1338, bow to our god!!).

    I think if the procedural effect is done well it can be ok for some games but for some games it would be just the wrong thing. Let’s take your example of Episode 3: I think the Halflife series is so popular because it features a big variety of ambiences when you advance through the series.
    It would be much less popular and successful if it was about killing alien after alien after alien while walking through generic tunnels/towns/forests. This means you’d probably need different algorithms, testing etc. for every environment you will see ingame, which will then bump up the cost and effort needed.

    But I think for some games procedural created landscapes can be a good basis. Put some numbers in the generator and take the gameworld you like the most and then have your level designers change it so it is full of content and interesting areas that don’t feel like an infinite featureless plane created by a computer.

  14. someguy says:

    heh, I’ve spend quite some time recently with my third Fallout3 character (quote: “damn you, Shamus!”;) and just finsished driving around through FUEL’s demo. So, @rofltehcat: It felt like “Uh, what’s that ruined house over there on the horizon – I wonder what’s in it?” And then, sadly, remembered that I can’t leave my bike to, say, search for supplies, because, what the game is about: “vehicles driving around in a giant world”. Extraordinarily empty.
    (Still, I’m tempted to go out right now and buy it.)
    (What FUEL seems to be great for: Drooling over a potential Fuelout;)

  15. Amstrad says:

    Ahh, hate to break it to you folks, but having fiddled with the development tools actually used by Bethsoft (IE the very same tools they released to the public) I can tell you that the terrain in Oblivion and Fallout 3 was /not/ procedurally generated. It’s instead an example of good old bitmap based heightmap terrain generation with a whole hell of a lot of hand placement of everything else.

    As for the dungeon’s, caves and vaults seeming samey, that’s due to them being constructed out of cookie cutter sections arranged (again, manually) by the level designers. It’s not procedural, and I argue that if it were procedural there’s a pretty good chance it would’ve been /less/ repetitive.

  16. Doug Sundseth says:

    As far as procedurally generated terrain, the first important examplar I know of was Starflight (EA, 1986). For those not old enough to remember it, it was a major hit (and justifiably so) and had planetary surfaces generated fractally.

    The planets were samey, but given the constraints of personal computers in 1986, they were still pretty notable.

  17. Nathan Tramp says:

    You said that you wanted procedural tech to be used on a game like Fallout. I couldn’t agree more.

    There are a thousand different Fallout modders out there from God knows how many countries who all love the same 2 basic stories. They’re all struggling with the fact that Bethesda promised good storyline and only delivered good atmosphere. In short, they got the setting of the play just perfect, but forgot to put some Hamlets on the stage.

    Telling good stories like Fallout is really what humans were made to do. We make meaning though narrative. So, you’re right: a team of people working tirelessly for years to hand polish every element of a game world doesn’t deliver what we feel the effort ought to, since it is also possible to zip through that stuff in seconds, attempting to get what we’re really after: the next awesome event for our heroes; the next plot point or adventure hook. Hand placing artful rocks can’t give gamers good narratives, even if the cost works out the same for developers.

    How great would it be if development studios could focus their time and energy on hiring and honing designers and editors instead of having teams that are loaded to the gills with programmers and artists? I feel as though procedural generation has the potential to make game entertainment as a whole less automatic-feeling; less machine-like, and more creative. This sort of technology could free up humans to do what humans are really good at, being creative, instead of doing what we’re really poor at, being continuously reliable content manufacturers. I say, just let the machines do what they’re good at and, for the sake of gamers everywhere, let the humans be creative.

  18. toasty says:

    Its funny that you seemed to get a lot of comments on Escapist hoping that procedural tech WON’T become commonplace.

    I think I agree with you that graphics these days are overrated, by both gamers and developers, we’ve had epic graphics for the past 5 years now (KOTOR II, heck KOTOR I, look fine if you ask me. Though KOTOR I is a bit oldish looking).

    But that being said, we still do need those nice graphics. What I think people should be doing is focusing on other stuff now. Better AI, better physics engines. BETTER STORIES! (Super-warrior X fights evil minions Y gets boring after 20 years of it).

    I think that procedural tech does seem to show promise if it allows developers to create gameworld’s that LOOK good (and aren’t too repetitive) without a lot of work. I do think that procedural tech alone won’t make a good game because we still need a personal touch on different moments. However, I could see some hack n’ slash games being made via procedural tech with a personal touch on bosses, towns, ect.

    That being said I would love an RPG the size of Oblivion where everything (except the hero, of course. ;)) was proceduraly generated AND it was GOOD content. Random, but good. That would amazing.

  19. jubuttib says:

    One other game that allowed you to go for an honest to god Sunday drive was of course Test Drive Unlimited, which had pretty much the complete island of Oahu, third largest of the Hawaiian islands. Don’t know how that one was pulled of, but the game itself is pretty poor, at least from a sim racer’s perspective.

    By the way, does anyone know if The Elder Scrolls: Daggerfall with it’s 161,600 square kilometers of game world is procedurally or just randomly generated, mix of both, what?

  20. I have a couple of questions about procedural content… although I’m a programmer, I haven’t written anything procedural myself. I followed your PixelCity series and loved it though. Anyway, as I understand it, procedural content is generated on the fly, by a subset of rules. So does that mean that the generator would have to be seeded with data such as coordinates and calculate (not randomise) the detail (contours, surface texture, foliage details etc) for each area (similar to your Wavatars project), and then spread out using further calculated algorithms from there?

    My original understanding of procedural content was a cross between this and ‘random’ generations as well. But then that raises the questions such as “Wouldn’t the world be different each time the game is loaded (and landscape generated)?” and “What happens with online play? Does one player’s map get sent to the others?”

    As I see it, you’d need to make sure that the exact same landscape is generated every time… including if you start at bottom left of a map, then the right hand side should be exactly the same if you get there by travelling across the bottom then up the right, as if you went up the left, along the top then down the right.

    This has been bugging me for a while with other projects that mention procedural content as well (including Subversion from Introversion).

    Incidentally, the latest version of PixelCity always generates the same city for me, while all previous versions generated new cities each time they started up.

    • Shamus says:

      Rick Hambrook: You have discovered the answer to your own question. Pixel city picks a bunch of random numbers for the world each time. However, in the version you have, the random number generator is reset every single time, so it ends up picking the exact same sequence and “random” numbers. (It’s just one line of code. I put it in for testing. Forgot to remove it.)

      I’m sure FUEL does something similar. Now, it gets tricky, because generally procedural systems DO need SOME kind of input data. Like Diablo needed some pre-fab rooms and such, which were then stuck together.

      BUT, that data can itself be procedurally generated, using data that was further procedurally generated. Somewhere down the line you WILL need a human being to contribute artistic things either as art assets or code, but a good system can make those assets go a long way.

  21. Bryan says:

    You hit on a good point Shamus. I was thinking along the same lines.

    Also, with newer systems you have multiple cores with multiple threads per core. The procedure which checks your progress can send look-ahead data to the procedural generator. That generated data is sent to a comparative procedure which adds more details based on what area of the map you are in. (such as grass, rock color, items unique to this area, etc.) This in turn is sent to a timing engine to make sure the data is in place before you see it on your display. There is no need for video hesitation while the procedures are cranking away on different threads/cores than the one used for preprocessing the final display. I’ve heard of other games which use this type of video preprocessing. You just need to make sure the look-ahead is looking far enough ahead.

    EDIT: Myst 3: Exile is an example of a game which uses video preprocessing to tie all the generated and artistic elements together.

  22. Korivak says:

    Speaking of Dwarf Fortress, I just started playing around with the game again this week. I was tweaking the world gen settings to see what I could come up with. I was working with the smallest world — 17×17, which is still massive — for faster generation times.

    My most recent world has a big mountain range, a small mountain range, some foothills and a few pockets of forest. I started a map on an outcropping on the southern edge of the smaller mountain, and it turned out to be made almost entirely of salt.

    http://en.wikipedia.org/wiki/Salt_dome

    I’ve generated a lot of tiny worlds lately while tweaking world gen variables, and every little test fort is new and different. This is the first salt dome I’ve ever seen in the game.

    But the depth of the procedural world generation is incredible. It uses about six pages of variables to customize the world, three seeds — geography, name and history — to generate and simulate it, and even in the smallest world possible, you still get a grid of 17 by 17 of regions, each of which is divided into a 16 by 16 grid of blocks, and each of those is made up of 48 by 48 tiles (the size of one dwarf, although several can still stack within one tile). And then there’s still all the z-layers above and below you. A massive fortress takes up no more than a handful of blocks, which means that even in a tiny world you are still only seeing the tiniest little speck in each game.

    You can start fortress after fortress in the same world, each one with different geography, geology, plant and animal biology, and plenty of dirt and rock to explore. One good world (especially when using the significantly larger default size) would be enough not only for all the gameplay you would ever need, but likely also enough for every player of the game ever.

    A good world gen paired with fixed seeds could generate one shared world for every player, exactly like Shamus is talking about here, and free up humans and storage space for the more interesting stuff…like story.

Leave a Reply

Comments are moderated and may not be posted immediately. Required fields are marked *

*
*

Thanks for joining the discussion. Be nice, don't post angry, and enjoy yourself. This is supposed to be fun.

You can enclose spoilers in <strike> tags like so:
<strike>Darth Vader is Luke's father!</strike>

You can make things italics like this:
Can you imagine having Darth Vader as your <i>father</i>?

You can make things bold like this:
I'm <b>very</b> glad Darth Vader isn't my father.

You can make links like this:
I'm reading about <a href="http://en.wikipedia.org/wiki/Darth_Vader">Darth Vader</a> on Wikipedia!

You can quote someone like this:
Darth Vader said <blockquote>Luke, I am your father.</blockquote>