Procedural Forest Generation

Introduction

Content generation has evolved over the years into an ever-growing problem. Today’s “high definition” games require incredible amounts of highly detailed assets to keep up with users’ expectations. Unfortunately, while game worlds grow in size and detail, even the spiraling costs of game development cannot provide sufficient numbers of artists and level designers who would be able to produce models and textures in the order of magnitude of an Elder Scrolls IV: Oblivion (Bethesda Softworks, 2006).

Procedural content generation tries to alleviate the burden placed on asset creators by allowing them to create content automatically or semi-automatically. By utilizing different types of (pseudo-) randomness and noise, procedural generators provide artists and level designers with means of controlling the basic generation parameters. At the same time, these tools take care of the brute force creation necessary for widespread terrains, meadows filled with grass and lush forests teaming with trees of different shapes, sizes, and colors.

Games have traditionally shied away from displaying outside areas for a multitude of reasons. Not least of these reasons was the inherent difficulty of creating and rendering of convincing trees and foliage. Tools such as SpeedTree (Interactive Data Visualization, 2002) and Dryad (Stanford Virtual Worlds Group, 2007) have addressed the problem of tree and vegetation generation, their actual placement, and grouping of trees in forests, however, still remain in level designers’ hands. The game industry was recently witness to a popularity explosion of massively multiplayer online role-playing games (MMORPGs). These games prefer a fantasy exterior setting and as such require enormous amounts of landscape. Designers need to fill and populate this vastness or the game seems empty. This in turn calls for a new set of tools that would allow semi-automatic generation of whole forests while still utilizing procedural generation not only in the creation of the actual tree models but also in their placement.

The placement of trees and their grouping into forests is mostly a level-designer task in today’s game development pipeline. Only a few random map generators in real time strategy games offer automatic tree placement in a limited manner. The argument for not allowing the computer to simulate this repetitive task is that the woods are not just “eye candy” but serve a higher gameplay purpose – a purpose that no algorithm can simulate. While that is true, the reasoning behind this project is that it is easier to modify already generated content to facilitate gameplay, as it would be to create everything by hand.

The goal of this project is in developing a tool for controlled procedural generation of forests. The resulting forests do not strive to be botanically correct. Such amount of precision would be lost on most players and would require disproportionate effort to simulate. The results aim to be merely visually diverse, i.e. seemingly not computer-generated. The implemented tool is easy to use, providing the user with as much control over the procedural generation as possible. In addition, the tool allows the user to manipulate the result through direct interaction thus shaping the forest to her needs. Furthermore, the resulting forests are exportable in a variety of formats using plug-ins in order to help the user to import them easily into existing game engines as well as observe them in a preview window. The rendering pipeline is capable of displaying the forests from multiple perspectives. Nevertheless, the rendering of the forest is only ancillary to the main goal of forest generation.

The project tries to determine whether automatically generated botanical assets are suitable for direct use in game development, what the best methods of content generation control are, and if the results are acceptable for today’s gamers. The project addresses the continued viability of similar asset generation tools, especially in the area of natural content creation, as well.