The Importance of Procedural Content Generation In Games
Gamasutra reports on a talk by Far Cry 2 developer Dominic Guay in which he discussed why procedural content generation is becoming more and more important as games get bigger and more complex. He also talks about some of the related difficulties, such as the amount of work required for the tools and the times when it's hard to retain control of the art direction. Quoting:
"Initially, the team created a procedural sky rendering approach based on algorithms — which led to a totally unconvincing skybox that was clearly inferior to what a hand-authored skybox would be. 'We considered it to be a total failure,' he said. He explained that a great deal of focus must be put on the tools that surround the algorithms, to allow the systems to be properly harnessed. In the end, the game shipped with a revamped procedural sky system that ended up much more effective than the first attempt."
If you've never made a game yourself, you'd be amazed at how much work it is to create content. Speaking as someone who has made a game (see Game! - The Witty Online RPG), I'll tell you it's way way more work to create content than it is to create game engines or anything else code related. Try looking at the credits for most any game created in the last 10 years and you'll probably find at least 5 content creators (artist, story editor, copy writer, map/model creator, etc) for every 1 programmer, if not more.
So, absolutely, procedural content generation is a huge boon if you do it correctly, much like the "social" aspect of Web 2.0 was a boon for the web, when done correctly. Of course, it's also tricky to do correctly, very few games are there at the moment, and it'll probably take awhile until we have lots of good examples.
Game! - Where the stick is mightier than the sword!
the vegetation is oblivion is procedurally generated:
http://www.barrys-rigs-n-reviews.com/reviews/2007/hardware/ev88gtx/images/game/oblivion01.jpg
Also, introversion is working on something: http://www.youtube.com/watch?v=yI5YOFR1Wus
Yes, the actual term is "procedural", as in procedural textures and procedural content generation.
No, this is not a discussion of procedural programming vs object oriented vs functional, etc.
... they generate buildings and clumps of grass and trees? And the textures on dirt have random mess on them to make less uniform and more believable? Something like that? (..) Are there screenshots of this?
Just for kicks: a nice example came out of the demoscene a few years back: kkrieger
I'd call it a 'proof of concept' 3D shooter. Nothing challenging, just a few levels you can easily walk through. Nothing exceptional on the graphics side. Runs on Windows like so many games.
But: a true HW-accelerated 3D shooter. Has enemies that jump / try to hurt you if you let 'em. A few big spaces to walk around in and admire the artwork on the walls. And all of this packed in an amazing 97,280 bytes! Hell, each screenshot on that site is already half that!
Ever look at a city from the sky? No, not some 707 that jumps to 30,000 feet in a matter of seconds, but in a small plane? Google Earth is an approximation - but you lose the depth of everything, and all you see is rooftops. Go up in a small plane at 2000 feet above a medium-sized city (100,000 and up) or bigger. As a private pilot, I get plenty of chances to do so.
One of the things that never ceases to surprise me is just how... fractal most cities are. Houses are lined up in neat rows along streets that are usually either straight or follow some landmark, EG: a river. Most towns (in California) have an older "downtown" that is always a grid with closely packed, multi-story buildings, alongside an "uptown" that widely spread out, grid-shaped buildings with large parking lots, surrounded by the "burbs", older homes on wide, grid-shaped streets and newer homes on windy, curved streets that tend to roughly follow landmarks. New cities (built in the last 50 years or so) don't have a "downtown", just an "uptown", but they all have an uptown.
Freeways mostly go between the downtown/uptown areas, and then spread out in a roughly bicycle-wheel shape, towards the nearest large community. Like I said, it's not a great substitute, but ste here's a stereotype California city.
I don't know, but these basic development patterns hold true down to the very substance of the buildings themselves... Older buildings use lots of brick or wood, newer buildings tend to be stucco and wood-based plywood paneling. Larger new buildings tend to be steel and concrete, larger old buildings tend to be... brick.
If you created a pattern based on the age of the parts of town, and then applied a fractal pattern based on age, you could probably come up with an extremely realistic-looking city with very little effort. Automatically, with roads that make sense (EG: don't lead nowhere) and houses that look like real neighborhoods, etc.
Combined with a bit of a "noise factor" and the results would likely be indistinguishable from a real city. Heck, you might not even need to save the actual city - if the results are generated by a fractal math function, you'd just need to store a seed, an integer or somesuch so that the city can be auto-generated on demand.
I have no problem with your religion until you decide it's reason to deprive others of the truth.
It's generally a three stage process. You have something like a perlin noise function as input. Then you have a mapping function, which turns it in to something in your problem space, then you have a weighting function, which makes some things more likely than others (often the mapping and weighting functions are combined).
The hard bit to get right is the weighting function. A perlin noise function and a mapping function will give you a universe, randomly selected from the set of all possible universes. Making universes which look good and are fun to play in more likely to appear is the tricky bit. This requires a lot of fine tuning. Often it's just a matter of tweaking a few constants when you have the basic algorithm implemented, but it can be really time-consuming to do.
I am TheRaven on Soylent News