There are plenty of problems with game development as a business. But one of the biggest ones is the problem of the cost of “content”. Content is basically the assets used in the game, be it sound, character models, animation, textures, images or whatever. Essentially, this is the “stuff” that makes it possible to realize your imagined game world.

Now the problem of content is a thorny one. Because many people would have you believe that so-called “AAA” development doesn’t really have a constraint on content. But the reality is that content is a huge part of any game budget and as such it can hit hard on any development budget, be it AAA or indie.

So what is the problem?

In a nutshell it takes too much effort to produce.

The overall quality of content has been rising ever since games first started being played. Moving from single colour blocks in “pong” to sprites in “mario” to fully realized 3D worlds in “Gears” the cost of producing all that content has been rising. Not to mention the skill and time to produce it has been growing also.

As an indie developer, I’ve often been very tightly constrained by my lack of ability to produce my own content. To the point where I’ve looked for alternatives. So I thought it might be useful to enumerate some of the alternatives in this post.

Now let me get this point across before we start. I am NOT advocating that we can ever totally replace artist created peices. What I am suggesting is that there has to be a smarter way to produce *some* types of content. Or at least streamlining the content production process so that we reduce the burden of both cost and effort.

Procedural methods, a potential solution?

As others have talked about before. Procedural methods are a very good way of producing content. Not least because they generally have some designer feedback mechanisms to allow the artistic shaping of content, whilst also allowing the content producer to be vastly more productive.

Procedural methods seems to work best at producing content where there is some systemic structure to it. By this I mean that there are patterns of composition in the content that can be processed to produce variation. So for a simple example, texture synthesis seems like a good choice, because textures have a mixture of varying frequencies and procedural methods are good at handling variations on a theme.

There is a list of texture synthesis tools here

Texture procedurally generated with Mapzone

A good example of a texture synthesis tool (Mapzone) can be had for free.

Whilst texture synthesis seems useful. It can also be augmented by use of procedural blending to allow for more variation. So for instance, a perfectly normal sythetic texture can be aged by adding a procedurally generated “scratch map” texture to it. This layered approach is another key aspect of procedural methods. Adding layers of control into the content allows for variations in the mixing of those layers, again leading to more variation.

The point of most procedural tools is not to replace the artist, but rather to amplify their output. Or to allow rapid iteration on a basic theme in a way that allows artistic choice while handling much of the donkey work involved in the work itself.

Now of course, there are issues with entirely procedural methods. Mostly revolving around the problem of aesthetic quality (procedural methods are great where patterns and rules are involved, but no necasarily where artistic intent is involved) and of the “vision” of an artist being hampered by the synthesis tool. In effect, when you choose a procedural approach, you do give up some artistic direction because you are constrained by the algorithms represented in the tool.

Sometimes though, it feels like that is a reasonable thing to give up to allow for more variety. At the very least, it is reasonable to allow for artistically inspired procedural content generation. A very good example of this approach is apparent in MMO’s where they have character creation screens.

Have a look at some of the examples from this youtube search.

Makehuman example