3
\$\begingroup\$

To my understanding, everything that isn't directly created by a human is called "procedural". Procedural generation systems have different complexities and may consist of various algorithmic processes, some of which may be "random".

Some games explicitly refer to their systems as "random", while others call them "procedural", as if indicating a distinct difference.

Is there such a distinct difference? Where do you draw the line?


For example, here are contrasting examples of RPG loot generation:

Type A: Loot generation is ultimately left to chance, but it's based on a large intial factor of deterministic, specifically encoded knowledge.

Boss characters drop loot, which type is determined by the boss' characteristics (e.g. species, character class, elemental affinity, …) and additionally influenced by the player's play-style, to create more enjoyable gameplay: For example, more likely drop a fire-damage sword to a player who prefers fire-based melee attacks, along with gold.

Type B: Loot generation is almost completely random, based on minimal explicit knowledge.

Bosses have a randomised loot table (e.g. 1 legendary, 2 epics, 5 blues). If the roll is right to drop a legendary, random attributes are generated for that legendary, which may be high in value. Stuff like character attributes, player behaviour and such don't matter.


Both designs qualify as procedural by the initial definition, since their output is automatic, but Type A is significantly more sophisticated in crafting player experience.

Must an algorithm seem as if a person had designed its output by hand, to qualify as "procedural" rather than "random"?

\$\endgroup\$
  • 5
    \$\begingroup\$ A procedural content generation algorithm doesn't necessarily need to include randomness. You can have a completely deterministic procedural algorithm which always generates the same output. This technique can be used to reduce the size of the assets you need to ship with your game. \$\endgroup\$ – Philipp Nov 10 '14 at 19:06
  • 2
    \$\begingroup\$ Sounds like just nomenclature... random generation is procedural. Not all procedural generation uses randomness. Like Philipp alludes. \$\endgroup\$ – david van brink Nov 10 '14 at 19:15
  • 1
    \$\begingroup\$ While procedural generation doesn't have to be random, I haven't heard of any game that boasts procedural generation and isn't using some kind of function to get predictable or unpredictable noise. \$\endgroup\$ – wolfdawn Nov 10 '14 at 23:57
  • 1
    \$\begingroup\$ This is a good question, but it could be an order of magnitude shorter. The example seems unnecessarily detailed. Would you mind some aggressively-pruning edits? \$\endgroup\$ – Anko Nov 12 '14 at 13:07
  • \$\begingroup\$ @Anko I wouldn't mind any editing, sometimes I struggle to be coherent in keeping something short/simple. Any modifications can be made for archival purposes for others that may stumble upon it. The entire example can be removed if deemed fit (if you have the ability to do so). Otherwise I will do it. \$\endgroup\$ – hobblygobbly Nov 14 '14 at 17:43
8
\$\begingroup\$

As it has been previously remarked in the comments, and as you seem to think as well, random generation is a just another possible form of procedural generation.

Procedural content generation implies that content is being generated by an algorithm rather than manually crafted by a human being. That said, the frontier is very blurry. On one hand, we have what we could call full-blown procedural generation, such as in Minecraft, Terraria, Starbound or No man's sky. On the other hand we have fully-designed games such as, perhaps, Mario and other old school titles. However, there is a lot of ground in the middle, from simple design-time tools for laying out textures, passing through the offline creation of, for instance, trees, landscape and even multitudes, to the online generation of maps in Civilization, or items and monsters in most RPG titles.

Each and every of these examples could use a mix of random and deterministic techniques. Like @Philipp suggested in the comments, generation can be completely deterministic and used just for the sake of compression, like the classic Elite game. In the other corner, it can be (almost) completely random, like many puzzle games (as long as they are solvable, so I guess completely random is mostly out of question). Most of the solutions sit somewhere in the middle, using a set of deterministic rules that can be randomly applied in different orders, or with various inputs, much like your own examples.

There is also a growing field named search-based procedural content generation that approaches content generation as an optimization or search process, and often employs a random generator coupled with some heuristic optimizer (like GAs, or other evolutionary algorithms) and a fitness function that determines the "goodness" of the content. This has the advantage that we don't need to know how to generate good content, we just need to know how to generate lots of content, and how to grade a content's quality (which could be as hard as actually generating it, but it is often easier).

So, to round up my answer, I think that random generation can be mostly seen as a (many times simple) form of procedural generation, and also as component of many procedural generation algorithms, but there is also a lot of procedural generation that is mainly non-random.

Much more info can be found of the PCG wiki.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.