Procedural Level Generation

  • Year 2019
  • Tools Houdini, Unreal Engine

My master thesis is about procedural generation, based on the level of a classic game.

Meine Masterarbeit beschäftigt sich mit der prozeduralen Generierung, insbesondere mit der Generierung eines Levels auf Basis eines Spieleklassikers.

The term procedural has become a synonym for limitless content throughout the games industry. But it stands for more than just an unlimited source of content.

We have reached a point where we have enough computer performance for massive digital worlds, but we need to fill them. Procedurals workflows can help to satisfy the demand for assets, details and more realistic graphics.

The idea behind my master project was to create an independent working procedural system, that translates a classic level into a contemporary look. 

 

Der Begriff Prozedural ist in der Games-Branche mittlerweile ein Synonym für grenzenlose Inhalte geworden. Prozedural steht dabei für mehr als nur eine unerschöpfliche Quelle von Inhalten.

Uns steht heutzutage genügend Computerleistung  zur Verfügung, um gigantische digitale Welten zu bereisen, aber diese Welten müssen auch befüllt werden. Prozedurale Workflows können uns dabei helfen die Nachfrage nach unzähligen Assets, Detailreichtum und realistischer Grafik zu befriedigen. 

Die Idee hinter meinem Masterprojekt ist es ein selbständiges prozedurales System zu entwickeln, welches ein klassisches Level in zeitgemäßer Optik erscheinen lässt. 

How far can one push a procedural system to create a new level out of a classic game?

Realtime footage, captured in Unreal Engine.

The texture pattern must be allocated to the corresponding surface type. After this step, the procedural system is working independently. All further steps don't need manual adjustments.

 

Original Tomb Raider level with checkerboard visualisation.

plg_cave

All the information about the original level is stored to build the new level out of it.

In addition, to create one version of the level, it is also possible to create different versions, by adjusting the value for the temperature inside Houdini or Unreal Engine.

In order to create the final level with all the details, I used different procedural methods.

The cave and icicles are created with an approach based on volumes, to create new unique geometry.

Plants and rocks are instances of premade objects which are distributed by a complex system that calculates the scattering.

plg_bricks

Adjustment of the temperature in realtime inside the Unreal Engine.

The material node graph includes functionality for different temperature situations.

The same scene at different temperatures.

plg_fly_through_000
plg_fly_through_001
plg_fly_through_002
plg_fly_through_003
plg_fly_through_004
plg_fly_through_005
plg_fly_through_006
plg_fly_through_007
plg_fly_through_008
plg_fly_through_009
plg_fly_through_010

The same scene at different temperatures.

Side by side comparison of the new and the original level.