Procedural Generation

Concept - Programming

Roman Wecker

The Backstory

This is a collection of projects from the field of procedural Generation. Especially through open world games, procedural level generation is becoming increasingly important. Here are a few examples that I have implemented in this area.

Procedural Road Generation

Through a seminar called 'Building an autonomous driving vehicle' we have been working in a group of 3 people on how to generate procedural roads. The aim of the seminar was to participate in the VDI and Carolo Cup competitions. These are competitions for self-driving cars on a scale of 1:10 or 1:8. In order to train the neural network well, we needed a way to generate countless circuits without having to create each one individually by hand. We have developed our own algorithm that makes it possible to generate any number of roads with the help of different types of noise and the A* algorithm. In addition, street signs are also generated procedurally. We have developed our own editor that makes it possible to make changes to the circuits afterwards and an exporter that translates the circuit into the OpenDrive format, which is supported by most simulation software, such as CarMaker or CARLA. The scientific paper can be found here.

Procedural Level Generation

In the subject 'Procedural Modelling' we had a project in which we generated an entire level completely procedurally. I used the tools that this C++ engine offers to generate a procedural level. The terrain was created using overlaid noise functions. The lantern model is a fully parameterisable object. With the help of 22 parameters, an unlimited number of variants of the model can be created. The lemon tree was realised with the help of an L-system. The building was constructed using a technique called hierarchitectural modelling. The objects were placed randomly in the scene.

Procedural Dungeon Generation

In this own project I implemented procedural dungeons in Unity. You can imagine the dungeon from a bird's eye view. A room can have up to 4 doors. The algorithm can be adapted to the needs of the game. You can define how big the dungeon should be and how densely rooms should be placed. There is always a path between the start room and the boss room and additional paths that encourage exploration.