Destroyed City

The versatility of the CGA Rules and the fact that every detail can be processed by hand makes CityEngine a rapid and effective tool for game development.

Christian Holzer, FH-Hagenberg

Project Goal: Procedural Game Level Design

To demonstrate the practical applications of his thesis revolving around the procedural generation of architecture in computer games, Christian Holzer and a team of five students decided to develop a 3D action role-playing computer game. In the course of the project they quickly realized that they wanted to create a gloomy post-apocalyptic central European city environment as the main game level. They set the following production requirements:

  • Due to the small team size the entire city environment had to be modeled in a limited amount of time
  • Destroyed buildings as well as mass distribution of destroyed assets
  • Stay within limited polygon budget

Solution: Procedural Modeling with CityEngine

It was clear that the particular environment Holzer and his team wanted to achieve needed a large central European city with a low polygon count that would be created in a short amount of time. In addition, they called for an efficient way to model the destruction, since over 60 percent of the city should show some, if not total destruction. Holzer was able to use the CGA shape grammar in a way that allowed him to implement the destruction of the architecture procedurally.

"Before creating the rules for the houses and parks we simply extruded blocks to investigate the effect of the architecture. For our project it was important to design a good balance between the narrow street areas and open spaces or parks. The player should have the ability to freely explore the entire level of the game ‐ yet have a special layout of streets, blocks and important buildings to serve as a guide to lead to the more competitive game areas. The CGA rules are very diverse, not only for generating buildings and streets but also for example parks with randomly distributed vegetation. With a little practice the time saved becomes quite evident especially compared to other methods."

Applied Production Workflow:

In a team of five developers, Christian Holzer was the lead level and environment artist. He used CityEngine and the CGA rules for the procedural modeling of buildings, parks and streets as well as for distributing the remaining models. All game assets were created and textured with Autodesk® Maya®. Here is his work flow:

  1. Concept drawing of basic building and street layout created in Adobe® Illustrator®, containing the streets as vectors paths.
  2. The street vectors were imported into CityEngine and used as the main street network, then using the street and lot edit tools to generate the smaller roads and subdivisions.
  3. Loaded obstacle map to assign the non-walk able areas
  4. Using CGA Rules to generate architecture and streets. ex. Varying street textures based on street length.
  5. Random automatic distribution of streetlamps garbage cans and other assets.
  6. City model exported from CityEngine as FBX® format, using merge by materials. Model imported to Maya® for fine tuning (see image).

CityEngine was used to generate the entire game level along with distributing all assets. The parametric destruction of buildings was also implemented using CGA rules written in CityEngine. The final game level was eventually exported from Maya® to use with the Ogre3D-Engine.

Production Facts

  • Software used: CityEngine®, Maya®, Photoshop®
  • Time of procedural production all included: 200 man/h
  • Procedural generation time of whole area in the CityEngine: ~25 Seconds
  • Area procedurally generated: 10km2
  • Total number of final produced procedural polygons: 300K
  • Number of buildings and individual features in the terrain: ~50


Procedural Modeling: Christian Holzer
Team: Stefan Grassberger, Ivo Brunnbauer, Lukas Meindl, Nico Harather und Christian Holzer
Project: Bachelor Thesis, Dark Realm Game, FH Hagenberg