Framework for Real-Time Editing of Endless Procedural Terrains
MetadataShow full item record
Procedural content generation is the act of creating video game content automatically, through algorithmic means. In online procedural generation, content is generated as the game is running on the consumer's computer. Online procedural generation of terrains has become an important feature in many recent video games. The technique enhances the replayability and vastness of virtual worlds by offering a unique and endless terrain for each play session. Procedural terrain generation is commonly achieved through noise synthesis. Adding, multiplying and filtering layers of noise at different frequencies and amplitudes, can lead to complex and realistic terrain models. This process of filtering and combining noise and other functions to create a final terrain function is usually done by issuing calls to a noise generating library in a programming or scripting language, such as C++ or Lua. The process requires a programmer to write code, compile the code, run the program, observe the results, and then start over editing the code. This is a tedious, non-intuitive and time-consuming design process. Consequently, game designers are often forced to accept sub-optimal results because of time constraints or lack of control over the generation process. Our framework, Noise Modeler, consists of a GUI application and a library for modeling terrains for endless-world creation. In this project, noise and other functions are composited through a visual flow-graph editor similar to the ones used by procedural shader editors and offline terrain generators. This novel framework enables non-programmers to edit models for procedural heightmap terrains while observing the effect of changes immediately in a real-time preview. Designed terrains can be serialized to human-readable text files, consuming only a few kilobytes. By using our library, a game engine can load these text files in order to generate terrain data on-demand on the GPU. To our knowledge the Noise Modeler framework is therefore unique in its cause. It may be limited in features, and rough around the edges in terms of usability, but it clearly outperforms existing noise libraries, and has terrain specific features and heightmap previews not present in procedural shader editors.