default header

Theory

"Procedural Generation"

Moderator: JC Denton

"Procedural Generation"

Unread postby icycalm » 25 Sep 2009 17:58

Continued from here: http://forum.insomnia.ac/viewtopic.php?p=11251#11251

A.Wrench wrote:I'm also skeptical of the "seven gazillion different guns" boast as I'm sure they're procedurally generated from a mass of parts, some of which are just linear stat upgrades.


I am waiting for someone to come here and explain to me what this term means and why we need it (i.e. why we can't express the same meaning with already existing and well-understood terms). I take it that, since the term is new, it must be that it reflects a brand-new development in games, otherwise, if earlier games had been also able to "procedurally generate" shit, we would have had the term already.

So until this happens the term is banned site-wide (and anyone who attempts to use it along with it -- excepting this thread, of course).

No doubt I could solve this little problem myself but, honestly, I have more important shit to do than investigate the dubious origins of whatever non-terms Leigh Alexander and her kind decide to invent every other fucking week.
User avatar
icycalm
Hyperborean
 
Joined: 28 Mar 2006 00:08
Location: Tenerife, Canary Islands

Unread postby NighAligned » 25 Sep 2009 18:39

I'll hazard a guess. I also noticed this term used by that guy who emailed you about the emergence article.

http://forum.insomnia.ac/viewtopic.php?t=3021

Dustin Smith wrote: You showed that you have no knowledge of procedurally generated content [...] You'll see that this algorithm-based gameplay truely brings out emergent behavior. Games like Go provide a simple ruleset, but from it a byzantine amount of strategies and gameplay styles emerge. [...] Rogue-likes, like Nethack, procedurally generate the levels, enemies, loot, etc. This makes every playthrough different, since the many systems intertwine and interact with each other. [...] These instances are not designed, intended, or predicted by the designer.It creates every level in a semi-random fashion, mixing the traps, enemies, loot, etc. in a glorious fashion. Every playthrough is different and no level is outright designed.


And taking that with what A. Wrench said above, my guess is that "procedural generation" means when games combine simple elements to create huge numbers of combinations that the designers didn't intend. I suppose that they are emphasizing the wonder they feel at combinatorics. Throw in randomness among those algorithms, along with that huge possibility space and some gamers probably feel something magical is happening, as if the game is creating ("generating") something new every time you play ("procedural").
Last edited by NighAligned on 29 Mar 2010 16:30, edited 1 time in total.
User avatar
NighAligned
 
Joined: 30 Jun 2009 08:03

Unread postby Worm » 25 Sep 2009 18:58

It's not nearly as bad as "emergence." People use it to sound technical, not to pretend that something amazing or magical is happening.

It just means "random generation," really, and it's certainly not a new technique. The earliest (and most well-known) example I can think of is the PC game Elite (1984), a strategy game which created different planets for every play, but I'm sure there are others that precede it.

(EDIT: Ha, of course I only thought of modern roguelikes and forgot about Rogue itself, from 1980! In any case, nailing this point down is a problem for historians, not this thread.)

I'd guess the term originated to avoid the negative connotation that "random" has, where people assume that something is just a mishmash of elements haphazardly slapped together, instead of something that is seeded with random or pseudo-random values and "grown" to result in variations on a common design.

That's all beside the point, though. For analytic purposes, yeah, it just means "random."
Last edited by Worm on 25 Sep 2009 20:44, edited 2 times in total.
User avatar
Worm
 
Joined: 20 Dec 2008 21:06

Unread postby NighAligned » 25 Sep 2009 20:33

Ok. Thanks for the correction.

I was thinking along the same lines, but A. Wrench's example didn't fit the definition of random because the player gets to choose the elements, i.e. the gun parts (I assume the player chooses, I have no experience with the game he is discussing). In that case, the commonality I saw was that the gun parts were mixed during the game ("procedural") to create "7 gazillion different guns" and, in the case of Dustin Smith, that rogue-likes also create a combination of stuff, although randomly, during the game.

But my thoughts aren't clear on this issue right now; I was just hazarding a guess from my perspective as a gamer. I defer to anyone who has a more complete understanding of these matters.
User avatar
NighAligned
 
Joined: 30 Jun 2009 08:03

Unread postby Worm » 25 Sep 2009 20:49

A.Wrench is talking about how the game will create the 3D models for all the different guns the player can find (which have randomly assigned characteristics), not a modular system where the player gets to choose and combine different components.
Last edited by Worm on 26 Sep 2009 01:57, edited 1 time in total.
User avatar
Worm
 
Joined: 20 Dec 2008 21:06

Unread postby NighAligned » 25 Sep 2009 21:00

lol, well, I guess I was way off then. I was thinking about modular systems as well as random generation. Sorry, everyone.
Last edited by NighAligned on 27 Sep 2009 20:17, edited 1 time in total.
User avatar
NighAligned
 
Joined: 30 Jun 2009 08:03

Unread postby Tain » 25 Sep 2009 21:23

Worm wrote:The earliest (and most well-known) example I can think of is the PC game Elite (1984), a strategy game which created different planets for every play, but I'm sure there are others that precede it.


The planets in Elite are "randomly generated," but they use the same seed each play, I think. So you get a huge galaxy to explore, but it's the same huge galaxy for everybody.

I've heard the term used here and there over the past few years, and I think Worm's right. I can't imagine a situation where "random generation" wouldn't describe the same thing.
User avatar
Tain
 
Joined: 15 Jul 2007 05:28

Unread postby Worm » 25 Sep 2009 21:32

Actually, that's a good point. Even if the results aren't randomized, someone might try to draw a distinction between "procedurally generated" and "predefined" or "hand-crafted." But this would be the same mistake as with emergence: if the seed is always the same, the results are still hand-crafted and predetermined, just by someone without the ability to predict all the results of their coding.
User avatar
Worm
 
Joined: 20 Dec 2008 21:06

Unread postby icycalm » 25 Sep 2009 23:21

Worm wrote:For analytic purposes, yeah, it just means "random."


What other purposes are there?
User avatar
icycalm
Hyperborean
 
Joined: 28 Mar 2006 00:08
Location: Tenerife, Canary Islands

Unread postby A.Wrench » 25 Sep 2009 23:48

What Worm said pretty much is what I was going for. Maybe I'm wrong in doing so, but I try to avoid using the word "random" when referring to computer programs, since most if not all of them aren't really random. That's the only reason I used the term, and I'm sorry if it was stupid.

Actually, I meant it as a negative in the original post. For the most part, randomly generated content strikes me as a way to turn people's attention away from how little substance there actually is in the game by constantly rearranging everything into new patterns (this is the case with Spelunky). The only times I've appreciated it have been when it was used to keep players from memorizing a game and just getting through on trial and error, as in Nethack and numerous other roguelikes.
A.Wrench
 
Joined: 23 Dec 2008 23:16

Unread postby icycalm » 26 Sep 2009 00:05

You are still saying stupid things. What do you mean by "substance"? Cutscenes? Textures? Perhaps Chess does not have enough substance for you?

At any rate, let's just forget what you said and try to keep this tread on-topic.
User avatar
icycalm
Hyperborean
 
Joined: 28 Mar 2006 00:08
Location: Tenerife, Canary Islands

Unread postby AshfordPride » 26 Sep 2009 00:27

Edit: "Procedurally generated" is a dumb term.

[User was banned because he edited out several entire paragraphs from this post, thus rendering my subsequent post nonsensical, and also because he posted again in this thread (which post I deleted) even though I told him not to. --icy]
Last edited by AshfordPride on 26 Sep 2009 01:48, edited 1 time in total.
User avatar
AshfordPride
 
Joined: 21 Jul 2009 23:16

Unread postby icycalm » 26 Sep 2009 01:05

AshfordPride wrote:random generation sounds a little clumsy, doesn't it?


No. Your mom sounds clumsy.

AshfordPride wrote:we're stuck with a homonym


No, YOU and YOUR KIND are stuck with it. I am not stuck with anything, and neither is my site.

And stop posting in this thread because your smarmy tone is annoying me. You take way too long to say way too little. My theory forum is not for chit-chatting. Do not fucking toy with my patience.
User avatar
icycalm
Hyperborean
 
Joined: 28 Mar 2006 00:08
Location: Tenerife, Canary Islands

Unread postby Worm » 26 Sep 2009 01:56

icycalm wrote:What other purposes are there?

Marketing, lol. Or any other kind of obscurantism. But what I meant is that someone who knows more about programming or complex systems than I do might be able to explain why my equivalence is technically inaccurate (A.Wrench already reminded me that true randomness is absent from practically all computer programs). And maybe the distinction is an important one for designers. But:

icycalm wrote:It is always from the perspective of the user of the software, of the player, that a game should be analyzed

So, "random" remains perfectly serviceable.
User avatar
Worm
 
Joined: 20 Dec 2008 21:06

Unread postby faceplant » 26 Sep 2009 07:41

Tain wrote:The planets in Elite are "randomly generated," but they use the same seed each play, I think. So you get a huge galaxy to explore, but it's the same huge galaxy for everybody.

I've heard the term used here and there over the past few years, and I think Worm's right. I can't imagine a situation where "random generation" wouldn't describe the same thing.


If it's the same result each time, then there is no randomness. Procedurally generated is really just code that when given an input, produces an output based on it. The input (usually a single "seed" number, but could be anything) may be random, but the program itself will produce the same result if you give it the same input. Expanding on this, there are procedural generators for textures. This does not just take a seed number, but a wide array of parameters.

An interesting example is .kkrieger, which uses procedural generation code extensively to fit an entire FPS into 96k of disk space. All textures and models are generated at run-time.

http://www.theprodukkt.com/kkrieger
faceplant
 
Joined: 26 Sep 2009 06:15

Unread postby Evo » 26 Sep 2009 16:18

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.

Instead by programming in the ability to procedurally generate the content, the computer will run code that then creates the textures and models as you are playing the game, which means that you can have a very small executable create complex animations, and models in real time. This is because the game basically consists of just code.

This is not used more because it takes a massive amount of programming skill and time.

The game .kkrieger that faceplant mentioned is a tech demo for this method of programming.
User avatar
Evo
 
Joined: 08 Mar 2008 10:23

Unread postby icycalm » 26 Sep 2009 16:23

Evo wrote:Instead by programming in the ability to procedurally generate the content, the computer will run code that then creates the textures and models as you are playing the game


Nonsensical sentence.

Corrected version: "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."

Evo wrote:This is because the game basically consists of just code.


As opposed to other games that do not "basically consist of just code", lol.

I understand what you are saying and it's correct, but you are saying it in an idiotic manner.
User avatar
icycalm
Hyperborean
 
Joined: 28 Mar 2006 00:08
Location: Tenerife, Canary Islands

Unread postby icycalm » 26 Sep 2009 23:00

So we now know what "procedural generation" is supposed to mean. The question then is to find out what "random generation" means and figure out whether the two terms are identical -- in which case we throw away the newer term -- or if they diverge, in which case we must try to understand their differences in order to become capable of choosing the correct term according to context.
User avatar
icycalm
Hyperborean
 
Joined: 28 Mar 2006 00:08
Location: Tenerife, Canary Islands

Unread postby faceplant » 27 Sep 2009 02:07

You have to know the difference between psuedo-random and true random numbers.

True random numbers are generated from real, physical objects. For instance, the decay of a radioactive molecule, or high energy particle rays from space. These entirely unpredictable phenomena are analyzed and a number is extracted from the data. http://www.random.org/ is a site which generates true random numbers.

Random numbers used in video games are psuedo-random, meaning they are based on a number of different elements which appear random only because a person playing the game cannot correlate all of the elements needed to determine the result ahead of time while playing. For instance, in older NES games, a generated random number was often determined by a combination of different elements. Enemies currently on screen, their X/Y coordinates, the current coordinate of the player, player's health level, etc.

There are also algorithms which generate psuedo-random numbers when given a seed value. An example of one of these is the Mersenne Twister algorithm. In most cases, the easiest seed value to find is the current time setting on the computer.

A psuedo-random number generator could be considered an extremely limited procedural generator, where all that is generated is numbers which give the appearance of randomness. More complex procedural generators are the ones commonly referred to, such as level generators, etc.
faceplant
 
Joined: 26 Sep 2009 06:15

Unread postby A.Wrench » 27 Sep 2009 07:21

The term "procedural generation" can also be applied to games that generate objects or levels based on seeds that the player presented. For instance, the game Audiosurf generates levels based on .mp3 files the player inputs. Console Monster Rancher games generate monsters from CDs, and the two GBA Monster Rancher games use words the player typed in. "Random generation" can't apply to these examples, because there isn't even an illusion of randomness. It's easy to reproduce an object by simply presenting the game with the correct seed.

As faceplant said, a game can generate objects based on a combination of factors like enemy locations or the player's health level. In these cases, reproducing a generated object is still as easy as presenting the game with the correct seed, even if the seed is harder to identify or produce. Should we keep using "random generation" in these cases where the seed isn't directly determined by the player, even though we know it isn't really random and may still be indirectly determined by things the player has control over?
A.Wrench
 
Joined: 23 Dec 2008 23:16

Unread postby hyac » 27 Sep 2009 08:33

Is an event random only when it is absolutely impossible to predict?

If I was playing Makaimura, for example, I have no way of knowing whether the birds on level 2 will come in from the left or the right. Ordinarily I would call this random, but after reading this thread I am not sure that is appropriate, since it would be possible to figure this out by studying the code.
hyac
 
Joined: 26 Sep 2009 22:02

Unread postby faceplant » 27 Sep 2009 16:39

Yes, you could figure out how the game generates it's psuedo-random numbers and determine what will happen when a random event occurs. This happens all the time with tool-assisted speedruns (TAS). It's called "Luck manipulation". The #1 TAS for Megaman (NES) had a program written for it, which helps determine which item will drop when an enemy is killed.
faceplant
 
Joined: 26 Sep 2009 06:15

Unread postby hyac » 27 Sep 2009 19:39

What I meant was... well, I can not predict these random events under particular circumstance (just playing the game) but someone could predict them under different circumstances (studying the code). So is it truly random only if no one could ever predict them, or can I call it random whenever it is merely beyond my means to predict them?
hyac
 
Joined: 26 Sep 2009 22:02

Unread postby icycalm » 27 Sep 2009 22:28

hyac wrote:What I meant was... well, I can not predict these random events under particular circumstance (just playing the game)


You are not using your brain. First off, as has been explained, these events are not truly random -- so stop calling them such.

Second, you CAN predict these events just by playing the game. You will just have to play it a lot more -- a whole lot more.

For example, the birds on stage 2 in Makaimura. You would simply have to employ the scientific method to it, which you naturally do when playing, only a lot more rigorously. You would have to play that scene a million times, recording in a notepad all the other parameters of the game (time, position on screen, computer clock, no. of enemies, etc. -- as many parameters as you can), and record next to them the apparently random direction of entry of the birds. Eventually, you would work out which parameters the game's relevant algorithm is using to determine the direction the birds will come in from, and would thus be able to predict it, and plan your approach and these parameters so as to get the desired direction. You would, in other words, have discovered this rule, the rule which governs the entrance direction of the birds -- a rule which at first remains hidden to you. In the same fashion you could discover all the other rules of the game, through playing it, in effect reverse-engineering it, so at the end of it you'd have the game's exact code without having actually looked it up.

This, incidentally, is what the microscientists are trying to do with the universe, the only difference being that their attempt is doomed to failure, because the world is not a fucking videogame, as they blithely seem to think it is.
User avatar
icycalm
Hyperborean
 
Joined: 28 Mar 2006 00:08
Location: Tenerife, Canary Islands

Unread postby hyac » 27 Sep 2009 23:30

Thank you for the explanation.
hyac
 
Joined: 26 Sep 2009 22:02

Next

Return to Theory