views:

114

answers:

4

Hey S.O. guys, I was looking at some study i have to do in the future to do with procedural generation techniques and i was wondering what type of content you have:
Developed
Helped Develop
Seen implemented
Tried to develop

and what methods/techniques/procedures you used to develop it.
If you feel generous maybe you can even go into specifics of it such as data structures ad algorithms you have used to develop it.

If this needs to be put as community wiki because it is not me asking for a problem to be solved just let me know. This is not a homework thread because it is a research unit that i'm not taking yet ;)

+6  A: 

Introversion software, the makers of the games Defcon, Uplink and Darwinia (among others) have started working on a game about a year ago which extensively uses PCG for city generation, here is a video of their work, and you can read more about it on the development diary of the game (start from the first part at the bottom of the page!).

This immediately got me extremely interested, and seeing the potential for games I immediately started researching the technology. I have amassed a folder of 18 PDFs about the subject (research papers, SIGGRAPH presentations, etc). Here, I uploaded it for you.

The main approach is to use L-Systems, however, I never got around to understanding enough of that to make something out of this. I tried other, less successful approaches like using Voronois, recursively splitting a rectangular area into more smaller areas and shifting the boundaries a little to obtain a bit of randomness and polygon division.

The last method I had gotten from Mike's Code Blog's posts (here and here). The screenshots shown on his blog make me drool, it is my biggest programmer's dream to ever get something that looks like that. I emailed him to ask how he did it, and here is the relevant part of his reply, I'm sure he wouldn't mind me posting this here:

L-Systems is definitely one way to go, but that isn't what I'm doing. The basis of my method is polygon subdivision. I start with a simple polygon that represents the entire area of the city. Then, I split it (roughly) in half, and then split those two polygons, etc. until I get down to city-block size. At that point, the edges of all my polygons represent roads. I then use the same subdivision method to break the blocks down into building-size lots.

The devil is in the details, of course, but that is the basic method.

I for one still haven't managed to fully implement a solution of which I'm satisfied of, but it remains one of, if not my single biggest programmer's dream to ever achieve something like this.

Xeon06
+1 from me... nice resources!
Eric J.
+1 for excellent resource, i started L-Systems myself but got my matrix math mixed up so when i went into 3D things started to get a bit messy.http://failsource.com/Images/DragonCurve.jpgandhttp://failsource.com/Images/better.jpg are a couple of standard ones i did before i broke it :)
Craig
Wow cool stuff Craig
Xeon06
A: 

Here are a few of the leaders in procedurally generated terrain (and to a lesser extent foliage). If you don't get a detailed answer here regarding methods and techniques, you might want to look in / ask in their forums. I have seen some discussions of techniques there.

TerraGen 2

World Builder

World Machine

Natural Graphics

Eric J.
+1  A: 

Noone mentioned the demoscene that ONLY use procedural stuff?

So, go search for Werkkzeug, Kkrieger, MilkyTracker to start. Also you can visit the site pouet and see the wonder of well done procedural videos (yes, procedural videoclips! With music and graphics, all procedural!)

speeder
Love DemoScene stuff
Craig
A: 

Allegorithmic's products are used in actual shipping titles. These guys focus on texture generation (both offline and at runtime).

They have some very pretty screenshots and demos.

Justicle