A Unity ID allows you to buy and/or subscribe to Unity products and services, shop in the Asset Store and participate
in the Unity community.
Discussion in 'General Discussion' started by Arowx, Aug 14, 2018.
Waves on small bodies of water.
That's what the reptilian overlords would want you to believe. But I know the truth.
And I know the truth behind the truth that they want you to see.
Gah! Always a deeper layer of truth.
That reminds me, I really have to finish off the paper work to get that up on steam.
I think the problem is people misunderstand the nature of randomness in pcg, so bare with me with this metaphor I'm cooking up:
- let's say that any pcg is akin to a decision tree
- the leaf are the end result, and the branch are the rules
- if we assume all path inside the tree are valid, and equally interesting then
- randomness is simply the process of selection of one possible leaf
It's basically a way to emulate variation of the selection of a possibility space (which some equate to a sort of creativity), if the end result are faulty, then it's the model of the possibility and its encoding that is faulty. Ie randomness in bad pcg expose bad assumption in a model of rules.
That also mean you can augment pcg with an "intent" heuristic, that is constraining the range of randomness to a subset of the possibility space to increase specific meaning the model can express. A simple example would be to have a "tall" parameter, that generate people from the range of tallness, even though the model can generate people of any size, you are limiting it to the expression of a single meaning. Composition is basically having a complex set of meaning to express, like beautiful landscape not boring rolling hill. Which where the focus should be, not make the trial of randomness, random is not quality, it's a tool.
This thread basically states, in my understanding, "how much randomness do you need to arrive at complexity". And the answer is "none".
What you say is technically true, but you have constructed your argument the wrong way around. Randomness might be the starting point for a pcg algorithm, but to the extent that the algorithm is actually random, it is essentially not useful. Its like saying "I'm going to create a story that is represented by a blank sheet of paper". Well some people might not see that as a great way to create an interesting story. Then you say "Well of course I can then start exchanging blank parts of the paper for some writing". Well that's entirely the point. How you do that is what will determine the quality of the result.
So in my opinion, to describe the construction of good pcg by the negation of something, i.e., removing randomness, is not a particularly useful thing to do, because that doesn't really narrow anything down or provide something stable to build on. Instead, I would start with something as non-random as possible like "OK, let's start by making the assumption that every map has a beginning A and an end B. What rules would define a sense of progression from A to B? What rules would define a sense of regression from B to A?". Maybe you would begin then, by putting point B at a higher altitude. So you would start at the bottom of a hill and end up at the top. But then you want to create drama, so you realize you don't want a simple hill, but maybe two hills, (hill B being higher) with a valley in between. And so on, until you have a non-linear map that contains many different possible avenues of exploration that all make sense.
You completely miss my point lol I don't know what to say except adress this specific point:
Random is NEVER the starting point of pcg, even when people who use random think it is.
Rogue's level design is not "random first", it's the description of level as room and corridor with room containing monster, with increase level being more difficult and complex, THEN room and monster get scattered randomly, ie the structure precede the use of randomness, here randomness is supposed to create "surprise" as the "interesting" element, which is basically the aesthetics of roguelike over consistency. The problem of "interesting" is it's a philosophical subjective quality, I find original No man's sky more interesting than the addition (feeling of nothingness and all), fight me, it's my taste
Even naive random tree scattering start with a structure, ie you have a field that contain a sparse distribution of tree.
It's like saying "story has a 3 act structure and the main protagonist must have growth", it's a high level description, it doesn't tells you who the protagonist is, you can select her from a list of suitable protagonist. But you only select american sounding name because the story is set in america... That's still not an interesting story, you would need what interesting mean in the absolute and practical sense. It's all bogue's down to description/rules/structure.
But aren't saying basically teh same thing so far? I was just precising the actual role random was having, so the answer to the thread is not "none" but basically "it's the wrong question". Randomness participate as much as rules to create complexity, AND is as much damning when misused than rules. Bad rules produce bad generation, bad use of randomness too.
For example let say you want a story simulation, but you can't have the compute resources necessary, and you need to have instant generation regardless of where on the timeline you start off. Rules only wouldn't work, you need randomness to create a stateless history that isn't too predictable, and with it you can create stateless npc scheduling that imitate a full simulation.
Basically you can't use causality to create complexity, so you use randomness to express the stochastic nature of behavior you want to emulate (like npc decision minute to minute). In the end, the quality of the model would work hand with the randomness but also the deterministic nature of pseudo randomness to create a plausible evolution of states, and still allow you to literally time travel between the state, keeping history immutable in its pseudo complexity.
Basically randomness allow to cheat in pcg by transforming a compute problem toward a simple mapping query base model, randomness acting like like stateless virtual memory with implicit history. But use random hash
Maybe I've misunderstood something, but I thought you were arguing in favor of randomness as a design heuristic, and pointing to the Uncharted picture as an example. I.e.,
I haven't watched that video recently, but as far as I know 'random placement' is not an accurate way to describe how they arrived at the maps in Uncharted 4. And on top of that, 'procedural random placement' is almost an oxymoron.
I'm not sure what to make of this statement, but maybe if you elaborate on it, we can find out what it is that we disagree on, if anything.
I just happened to see this today, and while it's basically just a few paragraphs, I think it has a clear message and starting point for procedural generation that I agree with: focus on the anthropomorphic element, and strive for emotional realism (over any other theory of realism, random or otherwise, I say):
The issue is that you judge the final quality and attribute the bad part to randomness, as in it look random as a QUALITY. I'm trying to demonstrate that the use of randomness is distinct from "random as quality". Ie there is two random here, the tools and the aesthetics, I'm arguing the former has nothing to do with the latter.
BUT the end argument about where the focus must be on is the same (ie don't focus on the tools but the intended result).
Unchartred guy has definitely use procedural generation at various step of their creative process as a TOOLS, however they are practical people, they WILL use mass placement THEN correct them, they don't set out to solve pure pcg. In fact they hired a guy (Andrew Maximov) who has been a big promoter of pcg, BUT also did that:
Whatching the associate video will help a lot making sense of these slide
In what sense can the tools be random without the produced aesthetic being random?
I understand what you mean about using randomness as a tool not being exactly equal to randomness as a quality. But to what extent can you separate the two? In my opinion, if you begin with a plane mesh and end up with that Uncharted level I showed you, very little of what you do in between is amenable to being created by randomness.
The thing that I think we get wrong in these kinds of discussions is that we are not focusing on the important thing, which is 'What rules can you use to remove randomness and instability from the pcg system?'.
I'm not sure if you're making a different argument here, but procedural generation and randomness don't need to have anything in common. If one could extract the algorithms that level designers and environment artists use in their heads to come up with an interesting level, and turn it into a procedural tool, it would hardly be random. So in that sense I am not saying that procedural generation, as such, is a bad idea. On the contrary, stable rule-based procedural generation is something I consider to be extremely valuable and useful.
Random generation is a stable rule-based procedural generation. Traditional RNG is actually a type of procedural gen. Think of it like this...
Let's say you have a noise texture, and you want to use this to achieve some visual effect. Unfortunately, a single noise texture is too "samey" for you, you want more variation.
So instead of a noise texture, you decide to write a series of mathematical operations that take a seed number as a starting point and generate a series of results that you use to generate your noise texture.
Depending on how you select or organize the series of mathematical operations, you can generate different kinds of patterns, so you select your operations carefully. By driving these operations from a single number (technically two, the seed and series index), you can easily create tons of variations, and select which variation from a single, simple, input (the seed).
What you just did is build a (often very sophisticated) procedural generation system, you take some set of rules (operations) and some input and using rules transform that single input into a series of outputs.
RNG in terms of software is a rule based procedural generation system. That doesn't mean that you can take RNG and turn it directly into a convincing forest, but it's definitely an immensely useful item to have in the tool belt.
Sure, at the level of small decorations, such as textures, it's very useful.
Maybe the problem is that we're reading the OP question differently. If someone asks me how one creates a 'complex gaming world' I'm not thinking of texture details. I'm thinking of level design or at least landscape design.
For example, if you have a splat map and maybe a value of 0 - 1 at a certain point for desert -> grassland, well maybe you can use a little bit of random generation to decide where to put particular strands of grass. But the utility of actual randomness (not simply 'I don't know how I'm going to do it, but it's gonna be cool') is very limited in my opinion. Perhaps as a starting point for an algorithm to get a grip on, but well, the universe might have started in a porridge of chaos, but everything we have right now that's meaningful is a question of logic and functionality.
It doesn't matter how big or how small - almost all procedural generation is built from layers and layers of rules - random numbers can make excellent inputs to some layers (big or small).
It's not like a different thing, it's just another tool in the belt (and a really important one).
No, I would say random placing can only be done for small objects and trees. Maybe even the terrain but it will need manual tweaking. Gameplay elements, cover etc, needs careful manual consideration, more so if multiplayer.
edit: we placed all stones and trees with gaia, then added additonal manual stones and trees for cover in selected places
XCOM 2 demonstrates complex gameplay elements randomly distributed.
There are many others as well.
It happen all the time in art, random has actually a huge history in art, and you woudl'nt believe how many thing was made using randomness as a helper.
I think you still get it wrong, you mind might get it, but your heart is still stuck on his crush ... the real question is "what I'm trying to express using the tools I have", randomness as quality is a valid aesthetics if you have a reason to express it (for example to emphasize confusion, lost, etc ...)
On a more practical level, randomness can take care of any non essential or equivalent decisions or meaning, if it doesn't matter if the player start north or south and still get the desired meaning, you can leave this to randomness. Don't see randomness as "whatever" but "selection between equivalently valid options", which generally you input using a range of preselected valid options that encode the meaning (aka the so called rules). It doesn't matter at what scale it happen, it can happen as the primary input of intent, the main idea or to the smallest details. More rules don't mean less randomness, it just mean more efficient use of randomness.
That's why the original question dont make sense, it doesn't matter how much or how little, composition is what matter. It's like asking which pen will make me a better drawer, the correct answer is always none, not because the pen don't help you draw, but it's irrelevant to the finality of the question. I mean fractal are complex, but the rules is very simple and straightforward. Blue noise is random, but it's much better visually pleasing than bayer pattern. Even different noise have different quality and use, blue noise is different from white noise, which is different from perlin, which is different from worley, etc ... they are simply primitives.
Right now PCG is at the same stage that ore pixar CG, when people were asking if CG could ever express emotion because the rendering was so darn "cold". Or it's similar to the beginning of computer coloring where color choice were all smooth and plasticy, not natural (darn than 80s/90s aesthetics). What happen was not a massive change in how we did CG or Image coloring, we simply start using common sense and don't use color straight out the color tube, and start composing with intent (ie actually choose the right color, use actual color theory, and use randomness to break the plastic feel by using random scattered brush instead the smooth airbrush like one).
The problem with this idea is that in games, it usually does matter a lot what the player does, where they go and what they see. And again, the way I see things, you have this the wrong way around: rules are not there to provide a better way to use randomness, randomness is there to provide a little bit of variation to rules. Rules are the substantive, important ingredient, and randomness is just a way to break up the pattern a little bit (and like most seasonings, a little bit too much can easily ruin the whole deal).
And randomness actually is 'whatever' in terms of the factor that it is controlling.
Look, I get it, randomness can be used to determine an outcome for a choice among preselected options. And yes, in that sense, randomness is constrained. But in terms of the scope that the randomness is controlling, you are still encoding meaninglessness and chaos into the game. And I ask you, in what fundamental part of game design is randomness preferable to logic, chaos preferable to meaning, if one can avoid it?
And lastly, from my point of view, there are very few instances in game design where one actually benefits from using randomness to create confusion or meaninglessness in a game narrative. As human beings we look for patterns everywhere, even in the middle of chaos, and since the world is hardly ever random, we usually find some or at least sense them there, and it helps us to feel the motivation to continue fighting to understand and overcome. Truly random chaos is so meaningless it is just unpleasant to see, because there's nothing that one can do to even begin to turn it into order.