Procedurally generating interesting levels in 3D video games

The level-design phase in video games represents a critical and
labour-intensive process, requiring designers to place objects meticulously within a three-dimensional (3D) environment. Traditionally, this task has been performed manually, which is largely why significant time and effort would be required for the task. This study seeks to streamline the level-design process by proposing an innovative solution that would employ procedural generation techniques, automating the population of game levels with structures in a coherent, interesting and visually appealing manner.

Minecraft was selected as the target environment of this project, on account of its widespread popularity and its voxel-based graphics, which allow expressive manipulation of the scenery. To achieve the desired automation, a custom tool was developed, capable of parsing an input paragraph describing a scene, (e.g., a tall oak tree near a brick house, on top of a mountain). The tool would interpret this description in order to generate the appropriate geometry within the Minecraft environment. To this end, a domain-specific language (DSL) was devised to allow for the definition of structures in terms of geometric primitives, other structures, and operations applied to and between them. This DSL not only streamlines the process of creating new structures but also provides a robust framework for generating complex and diverse environments.

A dedicated library was then implemented to enable the computation of geometry in terms of the positions and materials of individual voxels. This library would enable the efficient generation of intricate structures and landscapes within the Minecraft world, reducing the manual workload of designers, while maintaining a high level of quality and detail. In order to integrate the generated structures and landscapes into the game’s 3D environment, the Spigot Server application was employed, in conjunction with the MCPI Python Plugin. This combination allowed for seamless communication between the procedural generation tool and the Minecraft environment, ensuring that the generated scenes were represented accurately in the game world.

The system was tested using a variety of prompts, simulating real-world use cases and challenging the system’s capabilities. The resulting output was evaluated according to a range of objective and subjective criteria, including: the fidelity of the generated structures to their descriptions; the visual coherence and appeal of the scene; and the efficiency of the generation process.

The evaluation confirmed that by automating the creation of immersive and engaging environments, designers could shift their focus to refining gameplay elements, optimising performance, and enhancing the overall player experience. Moreover, the procedural generation techniques employed in the system aim to  contribute to a more dynamic and rewarding gaming experience, as the generated levels would exhibit greater variability and uniqueness.

Figure 1. Output of the system for the prompt that reads, ‘a tall oak tree next to a brick house, on top of a wide hill.

Student: Lukas Schimpf
Supervisor: Dr Keith Bugeja