Get the latest Education e-news
 
  • Procedural Content Generation

    [02.06.07]
    - Introversion Software

  •  Scope

    For a company with limited staff, and no 3D Modellers, this is obviously a far more desirable option than spending months hand-crafting loads of models.

    Procedural content also allows you to vastly increase the scope of your game. Using the previous example, given the choice between a single hand-built city, or 100,000 comparable cities generated dynamically, the decision is obvious. Will Wright’s Spore is taking this to extremes – an entire galaxy, from whole solar systems right down to the microscopic life-forms on the planets in those solar systems, dynamically generated for every single player who loads up the game.

    Procedural content generation isn’t even a new thing either – in fact, most of the early video games used procedural generation as it was the only way to fit the vast amounts of data onto the relatively small mediums available at the time. Elite and its sequel Frontier are perfect examples of this – dynamically generated solar systems with dynamic missions and a whole host of other features, all created procedurally – an essentially infinite universe that can fit on a floppy disk.

     



    Of course, you can generate more than just static models and shapes procedurally. Textures, sounds and even animations can all be created at runtime algorithmically. Going back to a previous example, Spore features both dynamic animation and texturing of the creatures that a player can create. Animations are created dynamically based on the topography of a given creatures skeleton, allowing it to walk, run, eat and even dance. This creature can then be given a texture, which is dynamically applied to the body based on the location of its head, stomach, back and other areas of its body.

    A more extreme version of this is a demo called .kkrieger, a demo created by a team called .theprodukkt. .kkrieger is a First Person Shooter, in which everything is generated entirely procedurally. The level (it only contains a single level – it is a demo after all), textures, models, animations, sound – all created dynamically by the game at runtime. What’s even more impressive about the achievement is that, as well as some nice visuals (all things considered), the entire game is only 96kb – less than the amount of information you downloaded to read this article! If all of this data had been pre-made and stored traditionally, it probably would have taken hundreds of megabytes of space.

    Of course, there are some downsides to procedurally created content. For starters, if your entire game is created procedurally, it can be difficult to make areas look unique – it would be very easy to end up with level after level which, while laid out differently, would look very similar. This means that some human intervention is needed in order to spice things up a bit.

     


     



    Darwinia is a good example of this – while the landscapes in Darwinia are created procedurally from simple input strings, all of the buildings in the game had to be hand placed, and a number of scripted sequences written. While completely random and fully dynamically generated levels were attempted, it proved incredibly difficult to actually generate areas which were fun to play in this way.

    The other major disadvantage is the amount of time it can take to dynamically generate content. For example, it might only take a fraction of a second to generate a single building in a city, but once you are generating an entire city with hundreds of buildings, as well as road systems, it adds up to some fairly noticeable load times. This problem is especially evident with the aforementioned .kkrieger – there is a fairly long loading time at the start of the game while all of the content for its level is generated. This also means that a more powerful computer is required to run the game than if the data had been pre-made and stored normally.

    Despite this, procedural content generation is a vital tool for small developers, and, some might argue, the future of the industry itself. With development costs spiralling out of control, publishers are becoming more and more reluctant to risk money by trying new things, preferring to stick with tried and tested methods, instead of creating original games. By using procedural generation methods to drive down costs, developers could gain more freedom to test new ideas, and indeed, without procedural generation, small companies like Introversion probably wouldn’t even exist.

Comments

comments powered by Disqus