HOME

TheInfoList



OR:

In computing, procedural generation is a method of creating data algorithmically as opposed to manually, typically through a combination of human-generated assets and algorithms coupled with computer-generated randomness and processing power. In computer graphics, it is commonly used to create textures and
3D models In 3D computer graphics, 3D modeling is the process of developing a mathematical coordinate-based representation of any surface of an object (inanimate or living) in three dimensions via specialized software by manipulating edges, vertices, an ...
. In video games, it is used to automatically create large amounts of content in a game. Depending on the implementation, advantages of procedural generation can include smaller file sizes, larger amounts of content, and randomness for less predictable gameplay. Procedural generation is a branch of media synthesis.


Overview

The term ''procedural'' refers to the process that computes a particular function.
Fractal In mathematics, a fractal is a geometric shape containing detailed structure at arbitrarily small scales, usually having a fractal dimension strictly exceeding the topological dimension. Many fractals appear similar at various scales, as illu ...
s are geometric patterns which can often be generated procedurally. Commonplace procedural content includes textures and meshes. Sound is often also procedurally generated, and has applications in both
speech synthesis Speech synthesis is the artificial production of human speech. A computer system used for this purpose is called a speech synthesizer, and can be implemented in software or hardware products. A text-to-speech (TTS) system converts normal languag ...
as well as music. It has been used to create compositions in various genres of electronic music by artists such as
Brian Eno Brian Peter George St John le Baptiste de la Salle Eno (; born Brian Peter George Eno, 15 May 1948) is a British musician, composer, record producer and visual artist best known for his contributions to ambient music and work in rock, pop an ...
who popularized the term " generative music". While software developers have applied procedural generation techniques for years, few products have employed this approach extensively. Procedurally generated elements have appeared in earlier video games: '' The Elder Scrolls II: Daggerfall'' takes place in a mostly procedurally generated world, giving a world roughly two thirds the actual size of the British Isles. '' Soldier of Fortune'' from Raven Software uses simple routines to detail enemy models, while its sequel featured a randomly-generated level mode.
Avalanche Studios Avalanche Studios Group is a Swedish video game developer and publisher based in Stockholm. It is a parent company that includes Avalanche Studios, Expansive Worlds, and Systemic Reaction. Founded by Linus Blomberg and Christofer Sundberg in Ma ...
employed procedural generation to create a large and varied group of detailed tropical islands for ''
Just Cause Just Cause may refer to: * Just cause (employment law), a common standard in United States labor arbitration, and a reason for termination of employment. * ''Just Cause'' (film), a 1995 legal thriller starring Sean Connery * ''Just Cause'' (TV se ...
''. '' No Man's Sky'', a game developed by games studio Hello Games, is all based upon procedurally generated elements. The modern demoscene uses procedural generation to package a great deal of audiovisual content into relatively small programs. New methods and applications are presented annually in conferences such as the
IEEE Conference on Computational Intelligence and Games The Institute of Electrical and Electronics Engineers (IEEE) is a 501(c)(3) professional association for electronic engineering and electrical engineering (and associated disciplines) with its corporate office in New York City and its operat ...
and the AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment. Particularly in the application of procedural generation with video games, which are intended to be highly replayable, there are concerns that procedural systems can generate infinite numbers of worlds to explore, but without sufficient human guidance and rules to guide these. The result has been called "procedural oatmeal", a term coined by writer Kate Compton, in that while it is possible to mathematically generate thousands of bowls of oatmeal with procedural generation, they will be perceived to be the same by the user, and lack the notion of perceived uniqueness that a procedural system should aim for.


Contemporary application


Tabletop role-playing games

Using procedural generation in games had origins in the tabletop role playing game (RPG) venue. The leading tabletop system, '' Advanced Dungeons & Dragons'', provided ways for the "dungeon master" to generate dungeons and terrain using random die rolls, expanded in later editions with complex branching procedural tables. Strategic Simulations under license from TSR released the ''Dungeon Master's Assistant'', a computer program that generated dungeons based on these published tables. '' Tunnels & Trolls'', published by Flying Buffalo, was designed primarily around solitary play and used similar procedural generation for its dungeons. Other tabletop RPGs borrowed similar concepts in procedural generation for various world elements. Many online tools for Dungeon Masters now use procedural generation to varying degrees.


Video games


Early history

Prior to graphically oriented video games, roguelike games, a genre directly inspired by ''Dungeons & Dragons'' adopted for solitaire play, heavily utilized procedural generation in the same manner that tabletop systems had done. Such early games include ''
Beneath Apple Manor ''Beneath Apple Manor'' is a roguelike game written by Don Worth for the Apple II and published by The Software Factory in 1978. Higher resolution "Special Editions" were released in 1982 and 1983, through Quality Software, for the Apple II and ...
'' (1978) and the genre's namesake, ''
Rogue A rogue is a person or entity that flouts accepted norms of behavior. Rogue or rogues may also refer to: Companies * Rogue Ales, a microbrewery in Newport, Oregon * Rogue Arts, a film production company * Rogue Entertainment, a software com ...
'' (1980). The procedural generation system in roguelikes would create dungeons in ASCII- or regular tile-based systems and define rooms, hallways, monsters, and treasure to challenge the player. Roguelikes, and games based on the roguelike concepts, allow the development of complex gameplay without having to spend excessive time in creating a game's world. 1978's ''
Maze Craze ''Maze Craze: A Game of Cops and Robbers'' is a 4K cartridge for the Atari Video Computer System (later renamed the Atari 2600) developed by Rick Maurer and published by Atari, Inc. in 1980. In ''Maze Craze'', two players compete to be the first ...
'' for the Atari VCS used an algorithm to generate a random, top-down maze for each game. Some games used pseudorandom number generators. These PRNGs were often used with predefined seed values in order to generate very large game worlds that appeared to be premade. '' The Sentinel'' supposedly had 10,000 different levels stored in only 48 and 64 kilobytes. An extreme case was ''
Elite In political and sociological theory, the elite (french: élite, from la, eligere, to select or to sort out) are a small group of powerful people who hold a disproportionate amount of wealth, privilege, political power, or skill in a group. D ...
'', which was originally planned to contain a total of 248 (approximately 282 trillion) galaxies with 256 solar systems each. However, the publisher was afraid that such a gigantic universe would cause disbelief in players, and eight of these galaxies were chosen for the final version. Other notable early examples include the 1985 game ''
Rescue on Fractalus ''Rescue On Fractalus!'' is a 1985 first-person shooter computer game created by Lucasfilm Games. It was originally released for the Atari 8-bit family and the Atari 5200 games console. It was also ported to other popular platforms of the day, ...
'' that used fractals to procedurally create, in real time, the craggy mountains of an alien planet and '' River Raid'', the 1982 Activision game that used a pseudorandom number sequence generated by a linear feedback shift register in order to generate a scrolling maze of obstacles.


Modern use

Though modern computer games do not have the same memory and hardware restrictions that earlier games had, the use of procedural generation is frequently employed to create randomized games, maps, levels, characters, or other facets that are unique on each playthrough. In 2004, a PC first-person shooter called ''
.kkrieger ''.kkrieger'' (from ''Krieger'', German for warrior) is a German first-person shooter video game created by German demogroup .theprodukkt (a former subdivision of Farbrausch), which won first place in the 96k game competition at Breakpoint in Ap ...
'' was released by a German demo group. It is entirely contained in a 96 kilobyte executable for Microsoft Windows that generates hundreds of megabytes of 3D and texture data when run. According to one of the programmers, "it was a complete failure as far as the game side was concerned (mostly because no one involved really deeply cared about that aspect)." Naked Sky's ''
RoboBlitz ''RoboBlitz'' is an indie puzzle action video game for Microsoft Windows through Steam and the Xbox 360 through Xbox Live Arcade. The game was developed by Naked Sky Entertainment and released on November 7, 2006. It was the first Unreal Engine 3 ...
'' used procedural generation to maximize content in a less than 50 MB downloadable file for Xbox Live Arcade. Will Wright's ''
Spore In biology, a spore is a unit of sexual or asexual reproduction that may be adapted for dispersal and for survival, often for extended periods of time, in unfavourable conditions. Spores form part of the life cycles of many plants, algae, f ...
'' also makes use of procedural synthesis. Procedural generation is often used in loot systems of quest-driven games, such as
action role-playing game An action role-playing game (often abbreviated action RPG or ARPG) is a subgenre of video games that combines core elements from both the action game and role-playing genre. Definition The games emphasize real-time combat where the player h ...
s and massive multiplayer online role playing games. Though quests may feature fixed rewards, other loot, such as weapons and armor, may be generated for the player based on the player-character's level, the quest's level, their performance in the quest, and other random factors. This often leads to loot having a rarity quality applied to reflect when the procedural generation system has produced an item with better-than-average attributes. For example, the '' Borderlands'' series is based on its procedural generation system which can create over a million unique guns and other equipment. Many open world or survival games procedurally create a game world from a random seed or one provided by the player, so that each playthrough is different. These generation systems create numerous pixel- or voxel-based biomes with distribution of resources, objects, and creatures. The player frequently has the ability to adjust some of the generation parameters, such as specifying the amount of water coverage in a world. Examples of such games include '' Dwarf Fortress'' and '' Minecraft''. Procedural generation is also used in space exploration and trading games. '' Elite: Dangerous'', through using the 400 billion known stars of the Milky Way Galaxy as its world basis, uses procedural generation to simulate the planets in these solar systems. Similarly, Star Citizen uses the technology for its planets, to create a collection of seamlessly-loaded planet-sized planets among its hand-crafted universe. '' I-Novae Infinity'' features a plethora of planets which are procedurally generated between which the player can travel via space ships. ''
Outerra Anteworld Outerra is a Slovakia, Slovak computer software company best known for its middleware 3D computer graphics, 3D planetary Game engine, graphics engine, called Outerra engine, in development since 2008. The engine renders high-quality terrain, terra ...
'' is a video game in development that uses procedural generation and real world data to create a virtual replica of planet Earth in true scale. '' No Man's Sky'', by using procedural generation, is the largest video game in history, featuring a universe of 18 quintillion full-sized planets across entire galaxies, and these galaxies can be explored in flight inch-by-inch, or on foot after a landing. The planets all have their own uniquely diverse terrain, weather, flora, and fauna, as well as a number of space-faring alien species. The same content exists at the same places for all players (thanks to a single random seed number to their deterministic engine), which enables players to meet and share discoveries.


Film

As in video games, procedural generation is often used in film to create visually interesting and accurate spaces rapidly. This comes in a wide variety of applications. One application is known as an ''imperfect factory'', where artists can rapidly generate many similar objects. This accounts for the fact that, in real life, no two objects are ever exactly alike. For instance, an artist could model a product for a grocery store shelf, and then create an imperfect factory to generate many similar objects to populate the shelf. MASSIVE is a high-end computer animation and artificial intelligence software package used for generating crowd-related visual effects for film and television. It was developed to create fighting armies of hundreds of thousands of soldiers for
Peter Jackson Sir Peter Robert Jackson (born 31 October 1961) is a New Zealand film director, screenwriter and producer. He is best known as the director, writer and producer of the ''Lord of the Rings'' trilogy (2001–2003) and the ''Hobbit'' trilogy ( ...
's '' The Lord of the Rings'' films automatically. Coherent noise can be extremely important to procedural workflow in film. Simplex noise is often faster with fewer artifacts, though an older function called
Perlin noise Perlin noise is a type of gradient noise developed by Ken Perlin. History Ken Perlin developed Perlin noise in 1983 as a result of his frustration with the "machine-like" look of computer-generated imagery (CGI) at the time. He formally descr ...
may be used as well. Coherent noise, in this case, refers to a function that generates smooth pseudo-randomness in dimensions.


See also

*
Computational creativity Computational creativity (also known as artificial creativity, mechanical creativity, creative computing or creative computation) is a multidisciplinary endeavour that is located at the intersection of the fields of artificial intelligence, cogn ...
*
Fractal landscape A fractal landscape is a surface that is generated using a stochastic algorithm designed to produce fractal behavior that mimics the appearance of natural terrain. In other words, the result of the procedure is not a deterministic fractal surface, ...
* Fractional Brownian motion * Generative art * Linear congruential generator *
List of games using procedural generation Procedural generation is a common technique in computer programming to automate the creation of certain data according to guidelines set by the programmer. Many games generate aspects of the environment or non-player characters procedurally durin ...
* Media synthesis (AI) * Noise,
Perlin noise Perlin noise is a type of gradient noise developed by Ken Perlin. History Ken Perlin developed Perlin noise in 1983 as a result of his frustration with the "machine-like" look of computer-generated imagery (CGI) at the time. He formally descr ...
, Simplex noise * Procedural animation * Procedural modeling * Procedural texture * Random dungeon * Random map * Roguelike *
Scenery generator A scenery generator is software used to create landscape images, 3D models, and animations. These programs often use procedural generation to generate the landscapes. If not using procedural generation to create the landscapes, then normally a ...


References


Further reading

* *
The Future Of Content
Will Wright keynote on Spore & procedural generation at the Game Developers Conference 2005 {{Coherent noise Applications of randomness