spore's procedural programming

Started by
8 comments, last by Zellski 17 years, 10 months ago
Hey, I've been looking at the game "spore" which has the creatures created procedurally. I'm really interested in this technique but all I keep finding are websites related to procedural programming (as in the paradigm). Where can I find tutorials/information about creating and calculating in real time, like that in Spore? Thanks
Advertisement
I'm not sure if you'll have any luck finding this kind of tutorial or information because it's such a new technique. I'm sure there are white papers spread here and there, but the idea of almost 100% procedural content is rather new and groundbreaking, hence, there isn't a lot of info out there for it yet.

I'm guessing after Spore is released, this kind of information will be more readily available via GDC talks, new white papers etc. As of right now though, I'm not sure where you could look.

Wow, I totally didn't help you at all did I? Sorry, just not sure if this stuff has been around long enough for there to be a lot of tuts or anything on it. Good luck in your search, and post back here if you do indeed find anything useful on this subject.
http://www.vterrain.org/

Has a lot of interesting links about programming procedural environments (not only terrains :>)

ains.
Quote:Original post by Morpheus011
[...]it's such a new technique.[...]
It's new to mainstream high-budget titles, but not new to computing. Most similar work was done for 'demo competitions', and you can probably find a wealth of information on that (though that might involve more than typing phrases into google, such as emailing people with websites on the subject).

As a starting place, .theprodukkt has a bit of information.
"Walk not the trodden path, for it has borne it's burden." -John, Flying Monk
Quote:Original post by Morpheus011
I'm not sure if you'll have any luck finding this kind of tutorial or information because it's such a new technique. I'm sure there are white papers spread here and there, but the idea of almost 100% procedural content is rather new and groundbreaking, hence, there isn't a lot of info out there for it yet.


Procedural content has been around for aaaaages. [wink] I remember old C64 games that used to build their own crap while you waited to save a couple kilobytes off a floppy; it was used heavily in the demoscene as well for more or less the same reasons. I have a bunch of notes on procedural content generation using genetic algorithms that I was doing a year or so back; I'll see if I can dredge them up again one day.

The IK stuff in Spore (like the monsters' locomotion capabilities) is very new, and probably requires a greater understanding of animation systems than I currently have. My wager is that it sets up a rudimentary physical system and then uses that to do rigging (based on some hand-hacked "cues" for each part). However, procedural texture, music and map generation is more common than dirt and you should be able to find those resources pretty easily.
Quote:Original post by Extrarius
As a starting place, .theprodukkt has a bit of information.

Not only that, but .theprodukkt were essentially bought out by EA/Maxis to design/implement much of the procedural technology in Spore.
Thanks for the links. I was mostly hoping for information about the skeletal systems and such, but it's probably best if I start off the terrain/texture generation. Hopefully next years GDC has some info on procedural content on animations.
Quote:Original post by phi
Thanks for the links. I was mostly hoping for information about the skeletal systems and such, but it's probably best if I start off the terrain/texture generation. Hopefully next years GDC has some info on procedural content on animations.


I'm pretty sure that the creatures learns how to move by using genetic algorithms. You can search google for "robot movement genetic algorithm". Since the subject is rather hot, there is a lot of literature.

The main idea is to use genetic algorithm to find a good solution for the fast movement problem giving your creature skeleton.

HTH,
Quote:Original post by Emmanuel Deloget
I'm pretty sure that the creatures learns how to move by using genetic algorithms. You can search google for "robot movement genetic algorithm". Since the subject is rather hot, there is a lot of literature.


I am not very certain about it. Seeing the demonstration video and the speed at which the program computed the behavior of the newly created creature, I doubt it would have had the time to compute the hundreds generations necessary to achieve this through a genetical algorithm.

A co-worker pointed out that the "walking pattern" of the creature makes slight errors : the length of the legs sometimes vary a bit, the articulations sometimes auhtorize movements that should be impossible. But these are only slight errors not immediately noticeable, the whole behavior "looks okay".

I think the difference between spore and most GA simulations is that GA simulations are made with robotics in mind : create a program that could pilot a robot with real constraints, real physics, etc... whereas the task spore must achieve is simpler : make the most realisticaly-looking walking pattern for a given creature.

I wouldn't be surprise to learn that an expert system was in there, choosing different strategies when given an odd or even number of legs, a balanced body, etc...
Quote:Original post by Yvanhoe
I think the difference between spore and most GA simulations is that GA simulations are made with robotics in mind : create a program that could pilot a robot with real constraints, real physics, etc... whereas the task spore must achieve is simpler : make the most realisticaly-looking walking pattern for a given creature.


I don't know the first thing about Spore, really, but yeah, this is a pretty important distinction. Almost all previous research on generating motion for virtual creatures starts with the assumption that it must be physically valid (and high level constraints such as precise foot placement). The fact is that for entertainment purposes you can relax things a fair bit and things still look just fine, and take a fraction of the time to compute.

Fully physically compliant evolved controllers don't really look that hot. The top results in the research and commercial world, as far as I can tell, can all learn to do things like walk and pick up guns or whatnot, but it is an undeniable fact that they look like they've suffered minor brain damage at some point.

In terms of real grace, you can create vastly better motion with spacetime techniques, where optimization algorithms construct a path through the state space that minimizes something along the lines of 'metabolic energy consumed in the creature's muscles'. There is much literature on this subject, search for e.g. Witkin/Kass' paper on Luxo (that's the original one from 1988) or Michael F. Cohen's follow-ups through the early 90's.

More recently, in the vein of relaxing the demands for physical accuracy (the full equations of motions are extremely non-linear and very difficult to solve quickly), Zoran Popović et al have done a lot of interesting work in this area in the past few years, especially working with momentum conservation and the like. Take a peek at http://grail.cs.washington.edu/projects/charanim/ as an example.

The problem with these approaches in general is that they are basically 'offline' in nature, and of limited use for simulation. Once again, I don't know what Spore does -- this was just a general ramble . Feel free to PM/Email me if any of this stuff interests you...
zell@alyx.com (TMDA-protected)

This topic is closed to new replies.

Advertisement