Monday, September 29, 2008
The Generation of Procedural Generation
Video game music is taking a beautiful turn for the best as we witness the implementation of procedural generation in the new game "Spore" which was released on September 4, 2008.
From the creators of the "Sims" comes a new evolutionary based single-player online game. I haven't gotten my hands on it yet (although I plan to) in order to write a review. The game, according to wiki, "allows a player to control the evolution of a species from its beginnings as a unicellular organism, through development as an intelligent and social creature, to interstellar exploration as a spacefaring culture."
Here's a great interview with Spore's producer Thomas Vu.
Now, we have a unique circumstance here within the game that allows users to have millions of game play options at their disposal. How do you adapt audio to that kind of unpredictable spontaneity? Well, there is actually a very good answer to that question. Procedural generation.
Procedural generation essentially includes any form of media which is composed algorithmically or pragmatically. We see games employing this method through sound, image, character, surroundings, etc. outputing random compositions appropriate to the situation as they're randomly predetermined by the programmer. Whatever has chosen to include procedural generation as its means of construction, of course must have the ability to create thousands and thousands of possibilities, so that no two experiences create the same outcome. Headed by the infamous creator of "generative music," Brian Eno, we see Spore using this technique in their sound design. Here's an excerpt from a GameSetWatch article, "He [Brian Eno] was asked to do it, because the designers wanted sound that is just as procedural as the game itself, instead of the loops which are tied to certain stages or areas which we are used to experience in games."
Pure Data, a graphical programming environment, was used for these compositions. Script was written for different phases of the game complementing each players action in every situation, finally linking to Pd as external events. A great article on how Pd was used in Spore. It would be very interesting to see the patches the team wrote in order to create this generative technique and how they linked them to the game play. I haven't used Pure Data as a generative environment, but only for simple synchronous tasks like designing sounds, drum machines, samplers, etc. I'm now inspired to delve deeper into this technique of using procedural generation within music and implementing Pd as a means of doing so.