ArticleslgStudy

biology

Procedural generation

Procedural generation is a biology topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Procedural generation rather than just read about it. In short: In computing, procedural generation is a method of creating data algorithmically as opposed to manually, typically through a combination of human-generated content and algorithms coupled with computer-generated randomness and processing power. In computer graphics, it is commonly used to create textures and 3D models.

Procedural generation — main illustration
Procedural generation — illustration

Key takeaways

  • Procedural generation belongs to biology; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Procedural generation to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Procedural generation from memory before moving on to harder problems.

Reference excerpt

In computing, procedural generation is a method of creating data algorithmically as opposed to manually, typically through a combination of human-generated content and algorithms coupled with computer-generated randomness and processing power. In computer graphics, it is commonly used to create textures and 3D models. 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.

Overview

The term procedural refers to the process that computes a particular function. Fractals 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 as well as music. It has been used to create compositions in various genres of electronic music by artists such as Brian Eno who popularized the term "generative music".

Procedural generation was originally created as an instrument for video games, aiding in generating levels, textures and complete worlds with little human contribution. Procedurally generated elements have appeared in video games since the 1990s: 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 employed procedural generation to create a large and varied group of detailed tropical islands for Just Cause. 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 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.

In tabletop role-playing games Using procedural generation in games had origins in tabletop role playing games (RPG). 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.

In video games

Early history

Prior to graphically oriented video games, roguelike games, a genre directly inspired by Dungeons & Dragons adopted for solitary play, heavily utilized procedural generation to randomly produce dungeons, in the same manner that tabletop systems had done. Such early games include Beneath Apple Manor (1978) and the genre's namesake, Rogue (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 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 map seed is a (relatively) short number or text string which is used to procedurally create the game world ("map"). This means that while the seed-unique generated map may be many megabytes in size (often generated incrementally and virtually unlimited in potential size), it is possible to reset to the unmodified map, or the unmodified map can be exchanged between players, just by specifying the map seed. The Sentinel supposedly had 10,000 different levels stored in only 48 and 64 kilobytes. An extreme case was Elite, 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 (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

… excerpt ends here. Continue reading the full article.

Illustrations

Procedural generation: One example of procedural generation, here using L-systems to generate realistic looking tree models. Different models can be generated by changing both deterministic parameters and a random seed.
One example of procedural generation, here using L-systems to generate realistic looking tree models. Different models can be generated by changing both deterministic parameters and a random seed.
Procedural generation: A procedural landscape rendered in Terragen
A procedural landscape rendered in Terragen
Procedural generation: Procedurally generated textures
Procedurally generated textures
Procedural generation: A procedurally generated dungeon map in the video game NetHack
A procedurally generated dungeon map in the video game NetHack
Procedural generation: Procedural texture using Voronoi tessellation
Procedural texture using Voronoi tessellation

Worked examples

Example 1 — a first encounter with Procedural generation

Start with the simplest possible case. Write down what Procedural generation claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In biology, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Procedural generation before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Procedural generation ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Procedural generation

In research
Procedural generation appears in biology research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Procedural generation in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Procedural generation is common in secondary-school and first-year university syllabi. It links to neighbouring topics Applications of randomness, Procedural generation, Video game design, so understanding it makes those chapters shorter.
In everyday life
Look for Procedural generation outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Procedural generation in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Procedural generation means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Procedural generation out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Procedural generation in simple terms?

In computing, procedural generation is a method of creating data algorithmically as opposed to manually, typically through a combination of human-generated content and algorithms coupled with computer-generated randomness and processing power. In computer graphics, it is commonly used to create tex…

Why does Procedural generation matter?

Because it connects several biology ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Procedural generation?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Procedural generation.

Tags

  • Applications of randomness
  • Procedural generation
  • Video game design

Keep exploring