default header

Theory

"Procedural Generation"

Moderator: JC Denton

Unread postby Worm » 28 Sep 2009 04:08

icycalm wrote:You would have to play that scene a million times, recording in a notepad all the other parameters of the game

Your example of something as low-tech as a notepad is throwing me off, here. Would you say that using all sorts of external diagnostic programs to learn about the state of the game and the computer it's running on (e.g the computer clock) still counts as "just playing the game?" That is, anything short of looking at the code is fair game?

Otherwise, it seems that a game could quite easily hide its parameters such that a player could never determine them solely by observing the game's output to the screen.

EDIT: Okay, time to split some hairs.
Evo wrote:Procedurally generated content is a technical term for the method of providing content in a way that does not rely on having, in the case of a computer game, the textures and models pre-made and installed on the hard drive.

icycalm wrote:"Instead of CODING IN THE EXACT PARAMETERS OF EACH OBJECT, the computer will run ALGORITHMS that then GENERATE the objects as you are playing the game."

I just want to point out how broad the application of the term can be. The majority of content in modern games is procedural in some way, whether at run-time (e.g. the tiling of textures on walls, real-time effects such as lighting and shadowing) or during the design stage (anyone who's ever used a filter in Photoshop can attest to this). In addition to all that, there's basic data compression, which is a sort of algorithmic reverse-engineering. When I put my content in a zip file, does it become "procedural," since I'm essentially storing it as a seed value for the decompression algorithm?

"Procedural" can only be used in a binary "yes/no" fashion if we're extremely specific about the asset, or particular element of the asset, in question. Without a lot of tedious qualification about scope, it's more helpful to instead think of procedurality as a spectrum of how automated the content's generation is.

Anyway, how about this as a useful definition of "random generation:" "Creation via a process where all possible outcomes are equally probable" (assuming that a uniform distribution was desired). Focusing on statistical randomness neatly sidesteps the pseudo- vs. true randomness issue, as well as the fact that computers are entirely deterministic.

So, it's not that the terms are interchangeable, it's just that whenever "procedural generation" is of interest to the end user, it's because of the statistical randomness of the outcomes. In other words, "random generation" is the only kind of "procedural generation" worth noting in a game's analysis; all the other stuff is just trivia.
User avatar
Worm
 
Joined: 20 Dec 2008 21:06

Unread postby guybrush » 30 Sep 2009 12:19

Worm wrote:I just want to point out how broad the application of the term can be. The majority of content in modern games is procedural in some way, whether at run-time (e.g. the tiling of textures on walls, real-time effects such as lighting and shadowing) or during the design stage (anyone who's ever used a filter in Photoshop can attest to this).


Yes, "procedurally generated content" is equivalent to "content generated by an algorithm," which describes all content in any game ever created. Said another way, "non-procedurally generated content" does not exist. So the phrase is redundant, just marketing jargon.

A more meaningful distinction is between static and dynamic content. For example, Civilization III doesn't store every possible map on disc (static). This would be absurd. Instead it generates a map when you start a game, based on various parameters (dynamic). So, when a game advertises "procedurally generated content", this probably means that some subset of its content is dynamic.
guybrush
 
Joined: 30 Sep 2009 11:52

Unread postby icycalm » 30 Sep 2009 16:13

Sounds to me like we've gotten to the bottom of it.


Worm wrote:That is, anything short of looking at the code is fair game?


Yes, which also excludes having someone else look at the code.

Worm wrote:Otherwise, it seems that a game could quite easily hide its parameters such that a player could never determine them solely by observing the game's output to the screen.


In most cases it couldn't (and by the way note that in most games "the screen" is not the only source of a game's output...) Because every new state of the game, every state at every moment, is in some way dependent on the player's input* in a previous state (and note also that the computer's "clock time" is here taken as an input -- in other words, the player should be or become aware of all the other sources of input that the game could conveivably be drawing upon besides those he himself provides. And he could indeed do that without looking at the code -- simply by recording every single piece of data on his computer. Only if the computer is connected to the internet does this become impossible -- all the more so since in that case the game could be drawing data from a website, such as the one linked earlier in this thread, which provides genuinely random numbers).


*Or lack of input, as for example in an arcade game's attract mode, which lack of input can be seen as yet another kind of input.
User avatar
icycalm
Hyperborean
 
Joined: 28 Mar 2006 00:08
Location: Tenerife, Canary Islands

Unread postby icycalm » 30 Sep 2009 16:33

Note that nothing essential changes if the computer is drawing on genuinely random numbers. In the case of Makaimura, it would merely mean that the player would never be able to work out in advance the entrance direction of the flying goblin thingies. Whoop-de-doo. Practically, he can't work it out in advance even if it's not truly random, so nothing essential chages.

So genuine randomness in a game makes no essential difference, because the genuinely random number still has to pass through an algorithm. That is where the "problem" lies with games -- not in the nature of the input, but in the transformation process that this input undergoes before being fed back to the player. The "problem", in other words, lies in the very existence of the algorithm. For, in Nature, there are no algorithms -- nothing in Nature functions according to algorithms. Natural processes function either according to rules which we can never discover, or according to a complete and total lack of rules -- you can pick whichever interpretation you prefer, since the concept of a "rule" is anyway a human fiction, one of which Nature is completely oblivious.
User avatar
icycalm
Hyperborean
 
Joined: 28 Mar 2006 00:08
Location: Tenerife, Canary Islands

Unread postby infernovia » 03 Oct 2009 18:14

To clarify, are you saying that computers are deterministic while the universe is not?
User avatar
infernovia
 
Joined: 21 Apr 2009 19:37
Location: Wisconsin, US

Unread postby icycalm » 05 Oct 2009 09:16

The question does not make any sense because a computer by itself is a machine that just sits there and does nothing. The question of its determinism then does not even arise -- because if it's not running a program it's not actually doing anything.

Now, a computer running a computer program with no outside input is indeed deterministic. A computer running a computer program with outside input is not deterministic (because the outside input is ultimately unpredictable).

Note that the above does not take into account future computers, perhaps based on quantum states or biological material. I have not yet looked much into those, but plan to do so one of these days.
User avatar
icycalm
Hyperborean
 
Joined: 28 Mar 2006 00:08
Location: Tenerife, Canary Islands

Previous

Return to Theory