Page 1 of 1

[Submitted](PCG) Procedural Content Generation

Posted: Sun Mar 18, 2007 11:24 am
by mirlix
I'm interested in PCG since half a year and read some paper about it, thought about uses for game devlopment and now i think it is quiet usefull.
I would love to create an addon for Ogre which enables the user to use PCG and the SoC is a great oppertunity for this.

This addon would includes some Randomnumbergenerator, different Noisealgos and some other Algos needed to create worlds combined in an simply interface/Manager.

With this i would writte following world generators to show the use of algos
-Landscape(Lakes,Hills, Mountains,etc.)
-Cities(Buildinges,Streets
-Universe(Planets,etc)

If there still more time, this points would be interesting
-Plants,Trees
-Textures
-Combining the Landscape,Cities and Univeres generators.

What do you think? Any more good ideas what could be done wiht PCG?

Posted: Sun Mar 18, 2007 6:25 pm
by sinbad
If I were you I would pick one of those above (Landscape / Cities / Universe) doing all 3 is (I think) unrealistic. Depth will almost certainly be better than breadth.

Posted: Sun Mar 18, 2007 7:35 pm
by mirlix
Then i think i would choose landscape, because this is the most interesting one, in my opinion, and maybe add the other one after the SoC using the same code base.

Posted: Sun Mar 18, 2007 10:45 pm
by Alexander
I agree that it's very interesting, but there's a plethora of off-line tools which do a fantastic job of this (World Machine comes to mind). I can't help but think that an Ogre version of procedural terrain generation would simply pale in comparison to what's already out there.

Posted: Sun Mar 18, 2007 11:38 pm
by Kencho
Alexander wrote:I agree that it's very interesting, but there's a plethora of off-line tools which do a fantastic job of this (World Machine comes to mind). I can't help but think that an Ogre version of procedural terrain generation would simply pale in comparison to what's already out there.
What makes you think that? Underestimating people's abilities is an error in my opinion. Take a look to Windward Mark's products and let's talk about Ogre capabilities ;) I've seen those results in realtime only in Silicon Graphics' stations before...
Procedural content is just another field where one's knowledge and imagination can show their true potential.

Also, generating it is not the final goal of this. This is about doing it in run time and with no disk space ;)

Posted: Mon Mar 19, 2007 12:22 am
by mirlix
Kencho wrote:Also, generating it is not the final goal of this. This is about doing it in run time and with no disk space ;)
This would be my final goal, using the project to create infinite landscape in run time, otherwise i think i need a really big harddisk :D. The hard part is not to create landscape, but make it look interesting and not all the same.

I think this project could be usefull for prototyping. The programmer can just fire up the landscape generator and implement the core gameplay features to test the game idea.

Posted: Mon Mar 19, 2007 6:51 am
by Alexander
Kencho wrote: What makes you think that? Underestimating people's abilities is an error in my opinion. Take a look to Windward Mark's products and let's talk about Ogre capabilities ;) I've seen those results in realtime only in Silicon Graphics' stations before...
Procedural content is just another field where one's knowledge and imagination can show their true potential.

Also, generating it is not the final goal of this. This is about doing it in run time and with no disk space ;)
As for underestimating, it's not a matter of ability but of time research and resources. There's no way that any single coder is going to knock out anything nearly as rich or robust as WM in the time SoC runs for, and with real-time constraints.

My only question is whether or not this is a needed feature for many users. I think we can agree that it's not going to be more effective than offline tools, but the question is whether it's needed for terrain. It seems very specialized to me. I didn't mean to imply that mirlix isn't capable, though! :D

Posted: Mon Mar 19, 2007 10:48 am
by pekar
I have some questions regarding this project.

Because it is breaking new ground for Ogre, what would the aim of the project be?

Is it to provide a demo, to show in which way the community can approach the topic in the future, or is it really aiming to provide a starting point for more functionality in the future?

What is the target environment?

I think the real value would be real-time capabilities, because artists already have a lot of off-line capabilities to generate procedural content. However, Blender 3d is lacking support of procedural content (if I'm not mistaking, it's all down to scripting). Maybe we can meet in the middle?

This argument is of course not completely valid. There is , of course some value in creating off line content if you think small file size for this content is important (and once Ogre makes the move to cell phones, this would be VERY important :) ).

Who is the target user?

Simply put, are we making a tool for the programmer, or for the artists (of course, often these two are one and the same person) ? I think this decision is still an important one, because it defines the interaction between the project and the user. Artists generally don't like playing with a parameter "cragginess", while programmers generally don't like to leave there IDE . :wink:

Posted: Mon Mar 19, 2007 2:16 pm
by mirlix
pekar wrote:Is it to provide a demo, to show in which way the community can approach the topic in the future, or is it really aiming to provide a starting point for more functionality in the future?
There would be a demo, but the demo would only be used to present the result. The main part of the project is a "starting point". This means i create a set of classes needed for PCG.

The frist step would be to write a Manager for Randomnumbers and Noisevalues. This Manager would create and update these generator, every generator would have a one update rate to enable the user to use different frequencies, needed by many PCG algos. Also combining some of the generators in one value would be needed and managed by the Manager.

The next step would be to write a Landscapegenerator. These generator can be configured with some value to modify the output and the textures.

One import fact is that Procedural Content doesn't replace all the content greated by artist, this is just unrealistic at this moment and would result in very boring gameworlds. Procedural Content should replace the "fill" content created by artist to fill the world with object, but aren't importend to the game. The best way is a symbiosis between both, procedural and artist made, content. One Example would be that the Artist creates a Model of a City and places this in the landscape generated by the computer. I think this is the good way to dealing with PCG, because you can create a unique gameworld but save work using because you dont have to create everything.
One good paper about this is from intel
http://www.intel.com/cd/ids/developer/a ... /20247.htm
pekar wrote:Who is the target user?
Controlling the landscapegenerator over parameters in the code will be the first possible way, but enabling the generator to read a xml file isnt that difficult and using this xmlfile for an editor should be possible. But i dont now if i make it in the SoC project or afterwards, depends on the time which is left.[/url]

Posted: Mon Mar 19, 2007 2:43 pm
by tuan kuranes
libnoise does a very good job at generating procedural content for landscape.

Perhaps you should go another step further and propose a tools based on libnoise that generates landscape + complete nature coverage (with some user parameters as in libnoise tutorials), all that exported in ogre compatible formats.

Posted: Mon Mar 19, 2007 2:50 pm
by pekar
Wow, great link. I can't think of any reason this couldn't be reused. This could really help to make the scope of the project larger.

Posted: Mon Mar 19, 2007 3:16 pm
by mirlix
libnoise looks really great. in the next days i will take a deeper look at libnoise, but it looks helpfull. Using this libary i can focus the project more on the real generation of content and not at creating noise generators.

Posted: Mon Mar 19, 2007 3:52 pm
by pekar
Finally, it arrived! It's pricey, but from what I can tell by skimming it, it could be an excellent resource. It's been called the 'bible of procedural generation', and I'm not arguing .

Texturing and Modeling : A Procedural Approach

I think I want to be alone for a while now :P .

Posted: Mon Mar 19, 2007 3:53 pm
by Aladrin
There's 2 views of this so far... Creating a starting point for a scene, or creating a scene intended to be used right-away, without human interaction before-hand.

libnoise creates great terrain for the pre-generated type... It's a great starting point.

But any realistic scenes would also have to take into account other things, such as the natural smoothing effects of weather, water, wildlife, people, etc. There would be an awful lot to take into account, even for the relatively 'simple' job of procedural landscapes.

I'm not arguing against the project, just adding my $.02 worth. I would love to see a whole slew of PCG utilities. Pre-generated and realtime-generated both.

Posted: Mon Mar 19, 2007 4:15 pm
by mirlix
Damn you pekar, because of you i have another computer science book :D
thx for the tip

Posted: Mon Mar 19, 2007 4:29 pm
by pekar
If you don't mind, I'll really annoy you:

On generating planets:
http://www.gamasutra.com/features/20060 ... l_01.shtml
http://www.gameprogrammer.com/fractal.html

A surprisingly honest development diary on Introverion's Darwinia. It also shows how they used procedural generation
http://www.darwinia.co.uk/extras/development.html

Will Wright discusses Spore (requires registration)
http://www.pqhp.com/cmp/gdctv/
Outdated now, (doesn't show texturing, but incredible): Will Wright gives a Spore showcase
http://video.google.com/videoplay?docid ... 98&q=spore

And a simply amazing collection of links
http://www.efg2.com/Lab/Library/Simulat ... .htm#Games

Goodbye time off :P

Posted: Mon Mar 19, 2007 4:36 pm
by mirlix
thx now i have something to read, besides my papers for my written exam on thursday :( . Some of this papers i have already read, but there are some i didnt find yet.

pekar: have you already done something with procedural content?

PS: I have submitted my proposal.