Procedural Programing Resources

Started by
4 comments, last by JimmyDeemo 16 years, 11 months ago
So i'm probably as Hyped as the next person about Spore. But its got me really thinking about prodecural programming and i'd like to get into doing some myself. But i'm a bit stuck as to where to start looking. Does anyone have any links to articles or can you recommend a good book. I understand that a lot of Will Wrights ideas stemmed from the 64k demos, but those things look so hardcore i'm not sure thats where i should be looking first. Any help would be much appreciated.
Advertisement
Procedural programming is Basic.

What you're looking is "http://en.wikipedia.org/wiki/Procedural_generation".

Google should help you with the rest.
Procedural programming is not what you think it is.

What you're talking about is procedural content generation. No doubt it's called many other things as well, but calling it 'procedural programming' is just confusing.

As for where to get started, many techniques are used for many different things. For procedural modelling (eg, generating tree models, which has been done for a while now), things like L-systems are often used. Recently I've been looking into procedural generation of urban environments (eg, CityEngine), which seems to generally be split into generating the city layout, and generating buildings (the buildings in that system are generated with "3D shape grammars" which seem to effectively be a more advanced and controllable evolution of L-systems).
Procedurally generating textures is often based on combining 2D "noise" in various ways.
Procedural animation can be done based on physics simulations and inverse kinematics.
Sound effects can be generated procedurally by running simplified physical simulations (things like digital waveguide synthesis), or by generating or manipulating the frequency spectrum of the sound (I think there's been a thread related to this fairly recently, where someone wrote a very good post about ways of making sound effects; check the Music and Sound forum).
Even music can be generated procedurally.

But although many of the techniques share common roots, they really need a lot that's specific to what exactly they're generating. So, the first thing to do is decide: What do you want to generate?

John B
The best thing about the internet is the way people with no experience or qualifications can pretend to be completely superior to other people who have no experience or qualifications.
Ah yeah thats where i was getting confused. I do know that procedural programming, is a paradigm much like OO or Logical programming. But i was unsure about what to call the thing that i was interested in, but procedural content generation seems to make sense.

Hmmm i see what you mean. I think that i'd probably find procedural modelling more interesting. Do you kno of any resorces specific to this or would a quick internet trall bring up some good results.

Thanks for the help.
The problem is that procedural content generation is just a broad description.

Let's say I want to generate terrain heightmap procedurally. I'll just use a function of (x,y) to calculate height at given point. Bingo - procedurally generated terrain. Of course, f(x,y) = 10 will give boring terrain, f(x,y)=random(0,100) messy terrain, and f(x,y) = sin(x)*sin(y) a predictable one.

But this simply means that rather than providing fixed data, you provide a function. And this function isn't necessarily mathematical function.

So you cannot learn procedural modelling by example. It works the other way round - figure out what you want to do, look up methods to do it, then apply procedural methods to that.

If you want to generate 3D objects procedurally, then it's not even remotely a trivial task. First you need to figure out how you'll represent the geometry (in some 3D hardware friendly form of course), then what kind of objects you want to represent, then how to define parameters to that, then what you intend to do with it, and only then figure out what can be procedurally generated.

Keep in mind, that Spore was created by some of the people who've been doing this stuff for quite some time, have vast experience in all topics, and even then Spore had quite a few delays.

One place to start looking would likely be the demo scene. There's plenty of tutorials there how to do various effects. There's also plenty of academic articles on that, but they tend to be somewhat too academical (PhD works and beyond).

Lastly, there's a purely human problem to procedural content generation. Equations, methods, functions are all fine. But human psychology will decide what looks ok and what doesn't, and the only way to determine that is to experiment.
Ah i see where your coming from. Well maybe i will start with something like procedurally generating spheres, that i can then add some chaos to for asteroids and take it from there. I see what you mean about applying it as a method of implementation rather than using more conventional resource methods. I will see what i can find. Btw if you happen to have any links on some articles, even if they are a bit hardcore academia, i would still appreciate it. Thanks a lot.

This topic is closed to new replies.

Advertisement