Saturday, May 20, 2006

A game in 96K: procedural generation

Wow! This great-looking game is just 96 kB (about 1/100th the size of a small 3d game).

So how do you fit a game that looks better than Quake 3 into 96 kB? You use procedural methods to generate all of the artwork! Instead of storing and compressing the graphics -- 3d models, textures, animations, you store the instructions for creating the graphics, and have the game synthesize them at load time. It's like storing the DNA, instead of the whole organism.

Some of the folks behind this game were part of the Farb-Rausch demo group, one of the most famous groups of the demoscene. Their most popular demo is the wonderful "fr-025 the popular demo".

They've released their previous generation toolset: .werkzeug. With it, you create 3d meshes, textures, and even complete demos by linking together so-called operators. Each one performs a simple function, with well-defined parameters. A nice UI innovation is that instead of connecting the operators with arrows, you simply stack them. This means that complicated graphs don't get cluttered with overlapping arrows.

I've been interested in procedural methods for a long time, but these guys, along with the creators of Spore are really taking things to a new level.

Games are using more and more content, which is increasingly expensive and time-consuming to produce. Procedural methods, if they allow sufficient artistic expression and control, could be a way to reduce these costs. They could also allow the creation of larger worlds, as in the classic game Elite, with its randomly generated star-systems. Of course excellence relies on attention to detail, which can't be automated (yet). Procedural synthesis could minimize drudge work, to allow designers to focus on truly important detail.

0 Comments:

Post a Comment

<< Home