Algorithms for Procedural Content Generation

An algorithm is a sequence of deterministic steps that results in something useful being done. So PCG algorithm is one that either generates a large amount of content for a small investment of input data, or one that adds structure to random noise. So here you will find the recipies of PCG. They are categorized here by what they generate (map vs sequence generation) and also by the mindset behind their use (see Ontogenetic vs Teleological for further discussion).

Concepts

These are some high level concepts that you may find useful or intriguing as a part of writing code for procedural content.

Map Generation

A map requires values over a 2d or 3d grid. It forms the space that a player occupies and interacts with.

Sequence Generation

Sometimes a group of things with a linear order to them is needed, whether notes in a song, letters in text, or numbers as parameters to other algorithms.

Ontogenetic

Ontogenetic algorithms attempt to duplicate the end result of a physical process without emulating the intermediate steps. In this sense, they are an ad hoc algorithm instead of a simulation. Contrast this with teleological. See teleological vs ontogenetic for further discussion.

Teleological

Teleological algorithms attempt to simulate the physical processes which result in the desired procedural output. Teleological algorithms are inevitably an approximation, but can produce emergent or unusual results. Contrast this with ontogenetic. See teleological vs ontogenetic for further discussion.

Comparisons of Algorithms

There are often trade offs in time and space between different algorithms, as well as the applicability of the resulting output.

Uncategorized

Either these algorithms are hard to categorize, or nobody has placed the correct _concepts, comparison, _sequence_generation, _map_generation, ontogenetic, teleological or _hide_from_code_page tags.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License