State of procedural enviroment creation

Laa-Yosh

I can has custom title?
Legend
Supporter
Those who follow my posts may remember that I'm not exactly a proponent of procedural content creation - it's restrictive, limits your artistic choices, it tends to give a CG look to everything.

With that said, here's the image gallery of a veteran terrain generator's newest version:
http://www.planetside.co.uk/gallery/f/tg2

Very impressive. I wonder how much processing power is required to implement this in a realtime engine, although it's also obvious that a very advanced lighting and rendering engine adds a lot to the quality of these images.
 
With regard to trees, almost every game featuring trees these days is using SpeedTree. GTA4, R&C, COD, Oblivion, any Unreal3 game etc.

So I would say procedural enviroment creation is already very much here.

Generating the geometry/textures does not have to be done in real time. And performance wise they shouldn't theoretically perform any worse than hand made stuff.
 
Let us distinguish different methods here. There's a difference between generating stuff at runtime, and generating stuff in an editor and adding it in the game data as any other asset. The second method doesn't really count as procedural to me, because it only has an effect on the content creation pipeline and none on the actual rendering.

Now as far as I know Speedtree is an example for the later.
 
Laa-Yosh said:
Now as far as I know Speedtree is an example for the later.
Afaik it can be both - it depends on your own implementation/choice whether you want to use their generator equations at runtime or offline only.
Whether it's fast enough for runtime or not I wouldn't know though :p
 
I have great respect for shootmymonkey and sometime (if not my mystake) he said something like 40% of textures of total can be continously streaming or processed by procedural generation.
 
Well, I believe that for example the grass in oblivion is placed procedurally at runtime (given some information about roughly where it's supposed to be no doubt.)
I believe that things like that are great first (final?) steps of procedural generation, adding fine detail to scenes that would simply be too costly to store otherwise. It could obviously be taken further, having a more detailed procedural underbrush for the outdoor environments.

The bottom line is, with a game as big as oblivion or larger, the cost of storing the exact location of things like pebbles, moss or mushrooms might get prohibitive, even if you had enough artists to hand-place them.

Now, I'm a proponent of procedurally generating everything, but that's because
1: I'm a programmer and like doing things procedurally.
2: I enjoy ridiculously huge gameworlds (daggerfall is the only sufficiently large one so far, and it was indeed very much procedural). Judging by reviews, I'm quite alone on this point.
 
Some pretty cool stuff! The planet views remind me of the opening scene of Mass Effect, not that I'm suggesting that's how they're doing it. But it would be interesting indeed to know how much processing power was needed to create the results. The end quality doesn't have to be that insane, but the technology would seem to be a perfect fit for generating those environments and planets in Mass Effect.



It's certainly a step up from Roboblitz! ;)
 
Yeah! A next Mass Effect based on this tech! :)
And next TES, and why not all the games.
But, sadly I don't think we got it for this console generation (but we can dreaming, it's free!;)), may be the next. In fact I'm hoping to be wrong! :)
 
Let us distinguish different methods here. There's a difference between generating stuff at runtime, and generating stuff in an editor and adding it in the game data as any other asset. The second method doesn't really count as procedural to me, because it only has an effect on the content creation pipeline and none on the actual rendering.

Now as far as I know Speedtree is an example for the later.

In Oblivion the trees are generated while the saved game is loading and IIRC when loading new cells or distant cells.
 
Laa-Yosh said:
Let's not confuse tree/grass position and the assets themselves either.
That's kinda blurry area - eg. first 3 Spiderman games on PS2/XBox used realtime procedural building generation (not the whole city, but some parts of it). But yes - the procedural buildings used a set of pregenerated textures as building blocks to mix&match.
Afaik even stuff like SpeedTree uses some pre-made assets during tree-creation.

I do agree grass placement is not a great example of procedurals though.
 
Last edited by a moderator:
Other games with random dungeons have used procedural tile/asset placement. In that respect procedural content creation has been around as long as computers. There is a distinction between the two types of procedural content Laa-Yosh is wanting to separate from each other, but I'm not quite sure how to pin them down! I guess if all geometry is procedural at rendertime, that's 'procedural content'. When it's premade bits assembled, that's something else to the 'ideal'.

Of those example pics, the flying over the mountains pic represents the best scope for an in-game appearance IMO. It'd be nice to have a flight combat area that's comletely expansive, for example. The foliage examples would also be fabulous in some contexts, but i doubt the consoles could spare the horses for that much creation. The distant terrain is outr best bet. Or close-quarters stuff. That is perhaps the best target at the moment. There's loads of enclosed spaces in all the shooters out there, and the interiors are dull and repetitive. Procedural furnishings would go a long way to creating realism.
 
There's loads of enclosed spaces in all the shooters out there, and the interiors are dull and repetitive. Procedural furnishings would go a long way to creating realism.

A procedurally generated Doom 3 would have been pretty interesting, particularly in the latter half of the game. ;)
 
With regard to trees, almost every game featuring trees these days is using SpeedTree. GTA4, R&C, COD, Oblivion, any Unreal3 game etc.

Far from it. In fact, there's a backlash against it, I know of several medium to big projects which have moved away from it.

UE3 supports it - that means it's considerably easier for licensees of both to use SpeedTree inside their UE3 games - not that any UE3 game must have SpeedTree.
 
Let's not confuse tree/grass position and the assets themselves either.

I think the line here is pretty blurry. What if artist-generated moss is procedurally placed on the tree? A tree built procedurally using artist-generated leaves?

The defining thing, to me, is that artists don't have complete control of the look of the final scene.
 
I'd have to question whether, in alot of cases, one would really want complete control over the look of everything..?

In games with incredibly large, expansive worlds, IMO it doesn't make sense to expect artists to sit down & model every wall & every inch of carpent inside every building on top of the buildings themselves, road systems, parks, fields etc..

I think a good balance would be the best way to go IMO..

I would like to see a system whereby for example a city could be procedurally generated using a set of pre-defined parameters to provide information regards the distribution of buildings, population density, major roads, number & type of "attractions" or "interest points" (e.g. monument structures, hot locations like night clubs, churchs & shopping centres, cinemas, zoos, industrial sectors etc..) etc. off-line & then provide an artist enough scope to go in & create "modifiers" which essentially allow the artist to change what ever aspects of the generated world they like, adding bits here & removing bits there, & underneath, each modifier re-calculates the equation sets uses to build the generation instance.. What you would end up with is a set of data (or rules/heuristics/world grammar etc..) which in itself was first created procedurally but then later refined by the user to make it much more specific in detail.
This data set could then be loading into the engine which would use it to generate/recreate the world on the fly..
 
What's the point of a super large world if it's boring? Previous Elder Scrolls games had such cities, NPCs and dungeons and it couldn't entertain me, I've always preferred the smaller, but hand crafted and varied enviroments of the Ultima games.

Liberty City in GTA4 isn't procedural either, or at least it's been extensively tweaked by artists - and that's why it has character.
 
What's the point of a super large world if it's boring? Previous Elder Scrolls games had such cities, NPCs and dungeons and it couldn't entertain me, I've always preferred the smaller, but hand crafted and varied enviroments of the Ultima games.

Liberty City in GTA4 isn't procedural either, or at least it's been extensively tweaked by artists - and that's why it has character.

That's what I was trying to describe..

The whole point of procedural content from what I can see stems from two arguements:

"I want procedural content because it will free up more memory for me to use for other things"

&

"I want procedural content because it speeds up the time the artists need to invest creating the base aspects of the environment (whilst removing the need for repetition in geometry, texture detail etc..) & instead allows them to invest much more time in adding details & interest points to make the environment richer & more unique"

My idea was trying to fit into the middle by providing a balance of the two..

Granted a wholly procedural world can look boring if taken as is but if viewed as a sort of world canvas & with enough time invested it could be a great base to allow artists to create worlds which have all manner of interesting locales..



On another note..

One of the guys at work is working on procedural city generation for a game he's doing in his spare time (I'll try & bug him to do an update on his blog about it..)
He posted some really interesting links over at TCE which I'm sure some of you guys might find interesting hopefully..:-

First off, this fellow has written a fairly awesome paper researching various types of system in use by others.
http://www.gamesitb.com/proceduralcity.html
buildings http://www.gamesitb.com/automaticbuildings.html
paper http://www.gamesitb.com/SurveyProcedural.pdf
site http://www.citygen.net
video http://video.google.com/videoplay?do...01375473466577

Introversion are generating cities for Subversion procedurally.
http://forums.introversion.co.uk/int...opic.php?t=586
http://forums.introversion.co.uk/int...opic.php?t=733 - good bullets here

some guys using combination of voronoi and hand-drawing
http://pubs.cs.uct.ac.za/archive/000...arch_paper.pdf

the agent-based sim from the research paper
http://ccl.northwestern.edu/cities/p...aph.cities.pdf

generating floor plans - this is good for me as i need to model insides of buildings as well
http://wwwx.cs.unc.edu/~eve/papers/E...I3D-Martin.pdf

some presentation, seems less advanced than most of the other stuff here
http://www.cs.ru.ac.za/research/g03m...esentation.ppt

Real-time procedural generation of pseudo-infinite cities (also from the paper)
http://www.infinitylab.com.au/research/graphite2003.pdf

CityEngine, also described in the above paper. Very impressive
http://www.vision.ee.ethz.ch/~pmuell...tyEngine/Front
paper: http://www.vision.ee.ethz.ch/~pmuell...ggraph2001.pdf
Also seems to be the work on which Subversion's city stuff is based

The 'Decensor' engine builds cities:
http://www.binaryworlds.com/products.html

Gamr7 have a city generator:
http://digitalurban.blogspot.com/200...der-gamr7.html

Here's an open-source procedural city generator
http://pcity.sourceforge.net/

Also here's another great link with some interesting screens:-

http://senzee.blogspot.com/search/label/City Generation
 
Back
Top