Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411283 Posts in 69325 Topics- by 58380 Members - Latest Member: bob1029

March 29, 2024, 12:54:34 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)Procedural Content Generation for Games
Pages: [1]
Print
Author Topic: Procedural Content Generation for Games  (Read 2555 times)
jah404
Level 0
*


View Profile
« on: January 11, 2015, 09:50:28 AM »

Hi evreyone,

I am currently writing a Master's thesis on Procedural Content Generation (PCG) for video Games subtitled "When the machines challenges the designers".

After drawing a brief state of the art, presenting the most common techniques and discussing the success of said techniques in contemporary games I would like to gather the views of some professionals on more decisive and unexplored matters.

I would like to get some video games developers' point of view about the usage of PCG in game.
I would appreciate any feedback on these topics and maybe more if you feel like taking other directions:

1-      The “balance of power” between programmers and artists / designers when dealing with PCG content
    1.1- Do we need more developers for the asset creation process?
    1.2- Are the technological advance in PCG a threat for artistic jobs within video game industry?
    1.3- Does the use of PCG imposes new constraints on game design?

2-      The challenge of variety, coherence and artistic value
    2.1- Is there a risk that the usage of PCG tends to a too much common or bland content?

3-      The productivity, cost-effectiveness and knowledge requirement aspects of PCG
    3.1- Does the resources cost of the development of a good PCG system compensates for the time saved over a more traditional production pipeline?
    3.2- Are there higher required skills for the developers working on a game system based on PCG?
    3.3- How much does the usage of PCG affects the production pipeline of a game? How would the production pipeline / planning be changed?
    3.4- What would be the best way to integrate the PCG system to the game editor?
    3.5- PCG will affect the levels production pipeline, from what we gathered for now we concluded that it would look like this :
          o Traditional approach
         
          o offline-PCG approach
          
         Do you agree with those pipelines? Can you give us an idea of the global time needed and/or amount of worker for each step?

4-      What are the technological advances in PCG that you would like to see in the future?

Thank you in advance for your feedback Smiley
Logged
bdsowers
Level 3
***



View Profile WWW
« Reply #1 on: January 11, 2015, 11:32:11 AM »

I did my own Master's thesis on procedural content generation, specifically procedural buildings, so this topic is dear to me. Smiley

Quote
1.1- Do we need more developers for the asset creation process?
Well that all depends on the game, doesn't it?

Quote
1.2- Are the technological advance in PCG a threat for artistic jobs within video game industry?
I don't think so, though I did tell a room full of artists I was trying to put them out of a job (and though it was a joke, they didn't catch that part. ^^)

Right now the results of procedural content still look samey. Artists are still very necessary to provide the little touches that set a game apart. I don't see that need going away anytime soon.

But beyond that, game dev companies rarely get smaller when new technologies are introduced. Instead, they make bigger games.

Quote
1.3- Does the use of PCG imposes new constraints on game design?
Sure. Take platformers - companies that try to generate platformer levels are now faced with the problem that the procedurally generated level may not be fully navigable. Some games work around this by introducing latters everywhere or fitting player characters with jetpacks.

Quote
2.1- Is there a risk that the usage of PCG tends to a too much common or bland content?
Oh, definitely. I rarely play rogue-likes anymore because the levels are rarely interesting.

--

The pipeline you're presenting looks like it's assuming PCG which is completely decoupled from gameplay - the content is generated before gameplay tests / alterations even begin. That's true of a very small class of PCG (textures, non-intrusive environments).

At any rate, I have to cut this short for time!
Logged

gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #2 on: January 11, 2015, 12:51:18 PM »

The first question is: are you familiar with the work of mickeal cook
http://www.gamesbyangelina.org/

Ultimately chasing PCG as singualar is not the right angles, PCGs as in plural is more what we need to think about. But also PCG is already here, shader are pcg lighting, you don't have to draw it, render in general, in fact any filter or blender are small pcg like, we use a more artist friendly term to hide the fear: TOOLs. When you use an auto-tuile system it is a hidden PCG. When you use CSS too.
The idea is how you connect all those pcg system together to reduce the cost and increase authorship.

So ultimately there is two goal for pcg: exploitation and exploration.

- Exploitation is: "give me more of this"
In art it is similar to giving an art team a style guide.
It is also any tools that batch menial task
Or analysis tool that make suggestion or point at problems.
Or interpolation tools, that fill the blank (think context aware filling in photoshop)
They deal with the general and leave artist to deal with the specific exception and general direction.
Any shader or graph generation tools system in existence.

- Exploration is: "things I haven't seen or thought yet"
It is similar to exploratory drawing, where you create random variation and then select things by feelings, until you get a precise picture of what you can go on.
It is basically the same set of system but used with another intents.
Procedural creativity is another thing, generally using learning (deep learning works great) to absorb influence and create new stuff
Procedural expressiveness (as seen with the procedural project angelina) goes further as it tries of emulate intent and sensibility using external factor to create creative goals to generate contents.
Procedural avant garde take a set of assumptions try to challenge them based on procedural expressiveness to find new way of doing stuff.

Also there is the case of quality, what quality truly mean is "any value complex that matter to someone or a group" aka it is human judgement ... which vary across people and group. Procedural tool are bound to the assumption made into their codes

Also there is the case of David Cope, he use PCG to generate musique good enough to fool a human, but the appreciation depend on how you frame the composition, it's excellent when you tell it's a human who did it, and cold when you say it's a generated song, how you frame the term pcg (either as random, procedural or just tools) completely change the reception and understanding of the output of such system.

As for the problem of "samey" it is generally based on poor understanding of the process of art and bad assumption that generally only look at reproducing basic structural similarity at an immediate level, it fail at recognizing purpose and intent are part of the process and how multiple level of generation interacts, especially at hierarchical level (selection of the lower level algorithm is part of it). A simple example of good generation is minecraft, it reproduce many level of generation: basic noise generate the high frequency landscape, time of day generate medium frequency experience with monster presence, biomes create large scale variation to break things up, but purpose and intent are implicit to the design of the algorithm (ie structural variation). Explicit purpose in generation are generally seen in roguelike with increasing difficulty (bigger level, tougher monster), explicit artistic goals are generally not considered.

A better way to sum it up is to think procedural generation as a language, you need to understand the syntax, but if you don't generate meaning (intent and purpose) you cannot generate interesting procedural artifact (only accidental), intent and purpose do have structure too and can be generate, in fact each hierarchical level has its own itent and purpose.
Logged

gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #3 on: January 13, 2015, 07:57:16 PM »

This
http://www.gamasutra.com/view/news/233899/Sponsored_Go_Procedural__A_Better_Way_to_Make_Better_Games.php#.VLXc4r3EX1E.twitter
Logged

jah404
Level 0
*


View Profile
« Reply #4 on: January 14, 2015, 01:44:26 PM »

Thank you for your concern and the constructive answers you gave.  Hand Thumbs Up Left

bdsowers, for the pipeline I was focusing on offline-PCG (I recognize it was written small). I think you're right for the artists, as developers we were maybe seeing PCG as a good opportunity for us ^^.
Could you share your master's thesis with us? I think it will be a good resource for us (I'm particularly interested in building generation, I follow Peter Wonka and Pascal Mueller work).

Gimym JIMBERT, I totaly agree with you concerning the repetitiveness and boringness of badly randomized processes, but you take my view further with the question of the intent, which is truly the core if we are not only wanting to automate tasks and get beautiful results. Do you mind mind if we quote you? I think your last paragraph is a good illustration.
I did not knew about Mickeal Cook and David Cope, thank you for the links, I'll give you a feedback when I'm finished with the articles.
Logged
jvlamberti
TIGBaby
*


View Profile
« Reply #5 on: January 14, 2015, 02:10:50 PM »

Hi guys,

I'm working with jah404 on this master's thesis (at our school, Master's thesis are a pair assignment).
First of all thanks a lot to both of you for your constructive answers.

@Gimym JIMBERT I'm really interested by your way of putting names on the two goals of PCG and especially your take on discerning the different ways of pursuing the explorative goal (procedural creativity, procedural expressiveness and procedural avant garde), I would be really interested to know if it's a classification you created (because I've never read anything using it) or if it's a well-established one that I've missed. In any case I would really appreciate it if you could provide me more matter on this topic.

To be honest the Gamasutra article was already on my read list but I haven't had the time to read it yet (a mistake that will be promptly fixed).
I don't know how but I've managed to not come across Mickael Cook's work during my researches, and after giving a glance at his website I can safely say that I'll learn a lot "Procedural expressiveness" there.

@bdsowers your answers were also interesting, it definitely goes in the same direction that the feedback we've gotten so far from other sources but it adds a personal point of view and experience which is great.

Again, thanks to both of you, I'm gonna go read all those wonderful articles and watch all these promising talks right now, but still @Gimym JIMBERT as I said if you've got some time to spare I would love to learn more about this classification and generally get more of your point of view on both the potential of PCG used in a exploration goal but also its limitations / the risks its technological advancement may unravel, be it on this forum, via mail, voice-chat or any mean that better suits you I would really love to here more from you.

Obviously when we're done I'll post a link to an online version of our thesis if you guys are interested  Smiley

We're approximately at 3/4 of what we had planned to write  for this thesis and yet I can still question its entire structure and plan because I learn about new interesting aspects or approach that I want to write about, this is truly an enthralling topic  Addicted.
Logged
bdsowers
Level 3
***



View Profile WWW
« Reply #6 on: January 14, 2015, 03:23:19 PM »

Quote
Could you share your master's thesis with us? I think it will be a good resource for us (I'm particularly interested in building generation, I follow Peter Wonka and Pascal Mueller work).
Here you go.

Keep in mind it's something like 7 years old now. Some of the notions that were 'cutting edge' (like geometry shaders) are old-hat now and, for that matter, rarely used for much. I don't remember the details anymore, I haven't done a whole lot with it since university, but hopefully you find some use out of it.
Logged

jah404
Level 0
*


View Profile
« Reply #7 on: January 14, 2015, 03:47:19 PM »

Quote
Keep in mind it's something like 7 years old now
We will... still, after a first glance, pictures show that good results were already done Smiley

Thanks for sharing ! Beer!
Logged
gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #8 on: January 15, 2015, 08:17:26 PM »

No problem, you can cite me, use my real name (GILBERT Timmy)

I'll answer the other stuff later
Logged

gamepopper
Level 0
***



View Profile WWW
« Reply #9 on: January 18, 2015, 06:07:31 PM »

This is a bit of a coincidence but I'm currently working on my Bachelors Dissertation on Procedural Content Generation for Games as well. I'm researching methods of generating playable levels that could be designed in a level editing tool and loaded into a game, so some of the stuff you guys have written would definitely benefit me in my research, if that is okay with me citing your works. Smiley

Hope the masters thesis goes well. :D
Logged



jah404
Level 0
*


View Profile
« Reply #10 on: January 20, 2015, 02:03:24 AM »

Quote
I'm researching methods of generating playable levels that could be designed in a level editing tool and loaded into a game

If you mean a fully-playable level, I don't think tool exists. Anyway, if you are looking for PCG tools usable inside an editor, I recommand you to take a look at houdini exported tools for the game editor unity:

Hope this helps
Logged
mtarini
Level 1
*


View Profile WWW
« Reply #11 on: January 28, 2015, 11:57:56 AM »

I'm stating the obvious, but one needs to distinguish between run-time PCG (at game execution time)
and offline PCG (at game dev time).

They impact game-making in totally different ways. I see a lot of interesting and well thought observations in this thread, but each is applicable only to either one or the other of those two things.

(minor: What's "skinning" in the schema above of the OP? As far as I know, that term usually refers to mesh skinning--the linking of a 3D model to a rig, which is only one small technical part of asset creations, among very many)
Logged

Warballs! · spherical fierceness · 1P · free · arena fighter · challenging
jah404
Level 0
*


View Profile
« Reply #12 on: January 28, 2015, 03:32:24 PM »

Hi mtarini,

Thank you for your comment, of course we need to split PCG into 2 categories and I don't think there is a technique that allies both (but why not think about it). Each one has its own purpose: offline PCG is a good solution to refocus level designers on higher-level tasks or to allow them to produce more quicker (increasing the data storage/compression), whereas online PCG is more about giving the player a great replay value, to explore designs that wouldn't be humanly imaginable or to store less data (taking the risk of releasing a not-fully-tested-game).

Quote
(minor: What's "skinning" in the schema above of the OP? As far as I know, that term usually refers to mesh skinning--the linking of a 3D model to a rig, which is only one small technical part of asset creations, among very many)
Good remark, I was wondering what was the right term for that. The task I wanted to express was the making of fine models, with their custom textures and LOD. I know in french it is called Habillage so I decided to call it Skinning, but maybe Dressing is closer. Please tell me if you know the good word !
Logged
mtarini
Level 1
*


View Profile WWW
« Reply #13 on: January 28, 2015, 04:49:22 PM »

yes!

I was wondering what was the right term for that. The task I wanted to express was the making of fine models, with their custom textures and LOD. I know in french it is called Habillage so I decided to call it Skinning, but maybe Dressing is closer. Please tell me if you know the good word !

Why not just "asset creation" (which you used in the schema below)?
If it's because "asset" is too broad, and you want to refer only to 3D models (excluding other assets like, say, scenes / HUD elements / music / levels etc), then maybe "3D modelling and texturing" can convey the concept (that would be understood to include sub tasks as: LOD creation + uvMapping + rigging + skinning + animation + hitbox design + etc)
Logged

Warballs! · spherical fierceness · 1P · free · arena fighter · challenging
baconman
Level 10
*****


Design Guru


View Profile WWW
« Reply #14 on: February 09, 2015, 05:01:42 PM »

1-1. No, we don't need more asset creators, we need assets that are more than minimally fleshed out. For instance, there's character generation programs for making a basic RPG sprite that walks in 4 directions. But why no attack animations? Why no expressions? Why no jumping or rolling sprites? Why are we failing to procedurally generate our sprites/animations, rather than churning out an endless recap of stylistically mismatched placeholder stuff?

1-2. Immediately, no. Ultimately, yes. What I mean by this is that all artists use particular methods to produce their art - this is why they have classes, how-to guides, and so forth. Procedurally-generated art, while POSSIBLE; is just as methodical as real artists are. We just don't effectively implement these methods, because we're more focused on the gameplay mechanics than the details thereof. But that said, nobody is going to devalue an artist's genuinely good work, either.

1-3. I really don't think so. If anything, they just reveal constraints that are already there; although the method of PGC can be constrained a little more specifically than the mechanics of the games would be, because algorhythms are fairly predictable regardless of their implementation. You either have high core design with less randomization, or high randomization with less core design. Unfortunately, this is a real tradeoff. That said - people are still replaying unchanging games like classic Mario, Sonic, Zelda, Metroid titles today with unrelenting fervor - so the constraints are less relevant/weighty than you give them credit for being. Even Spelunky/Binding of Isaac levels get predictable with overexposure; but that doesn't stop the main gameplay from still being fun.

2-1. Yes, and no. See, there is a difference between GOOD PGC and pure randomization; which comes from understanding gameplay flow and variation. I've been working on some PGC projects the past 5 years; and the system I'm most focusing on involves a deliberate changeup between three distinct focuses: Navigational challenges, Trap Avoidance, and Enemy Combat. While it's only one of about 5-6 level generation methods I'm experimenting with, they're made to interconnect from one type to the other, so that there isn't a singular focus. The singular focus on one aspect over the others, or attempts to overlap them is what results in the bland-feeling results you normally expect of PGC games; but by offering a variety between them, you get stuff like Rogue Legacy, that despite it's randomization, doesn't really get too stale too quickly.

There's also the issue with scope. A good PGC game shouldn't play all of its cards in a single session, but have plenty of various experiences to draw from; and it shouldn't aspire to be 2-hour-long sessions of dungeon crawl, but more optimally either a huge world to explore methodically (ala Terraria) or quick, arcade-like sessions of 20-45 minutes to perform through (Spelunky, Isaac). There's some middle ground to experiment and play around with, I'm sure; as well as what to keep persistent vs. what to replace/randomize.

3-1. Apples and oranges. Would the amount of content in say, Sonic 2, change at all if you simply randomized the order of the levels/setpieces? No, not really. Ultimately, the randomization serves only the replay value and the predictability vs. unpredictability of level/character design. If you use PGC to randomize a game's physics, and then build levels based on the randomized physics, the level design ultimately doesn't change at all - the same variables are calculated in the game's layouts, and the "change" is really just an optical illusion.

Ultimately, it isn't THAT much different; you just have a different kind of bug/troubleshooting process involved now.

3-2. I suppose there is; but I think it's more about experimental people vs. concrete people. People with fluid personalities gravitate towards gaming experiences with that kind of variance and fluidity about it; people more matter-of-fact probably gravitate away from it, since they want mastery of a predictable outcome as part of their internal reward experience. "Science theory" vs. "Scientific applications;" that kind of thing.

3-3. I have found that it makes it considerably difficult to explain to other people that aren't already "on the level;" and makes for more creative implementation to be necessary.

3-4. Now THIS is a brilliant question. This really requires two, very carefully weighed variables: a fundamental, deeper-logic understanding of specific game design (say, "Super Mario design" compared with "Platformer design"); AND the SAME understanding of the outcome you're going for. Using the SMB example, you'll notice that 99% of the levels' content takes place on three horizontal levels - each separated by exactly the height that Mario can jump to traverse between. So, aiming for a PGC SMB experience; your level generator needs to take into consideration these two factors: how to design your levels in vertical layers as such; and in a way that is contingent with your characters' physics.

EDIT: Oh, maybe a third. You need to understand a sense of flow, and how the pieces of your game come together to create (or defy) that.

Sometimes, this means working the physics calculation of your game "backwards" - rather than taking a default xspeed/yspeed and seeing what your physics end up being; we need to devise a way of taking an intended "maxjumpheight" global, and recalculate your initial yspeed based on THAT. Then, you change your global for your physics; and it's already recalculated for you!

But I don't think we do that yet. I feel dumb for not doing that yet, I know.

3-5. Nope. In PGC, it's "Polish" that loops back to "Content," since you're going to want to polish up each part of your implementation before moving onto the next, usually. Tests and Gameplay Layer are also reversed. Wink

And personally, I've had trouble working with PGC concepts *before* asset creation. I at least need placeholders to get the right feel for collisions, etc.


4-1. Personally, my long-term goal is to make a game about gaming itself; that comprises a various selection of gameplay types and experiences together like a cohesive whole. Still kind of torn between a few metagame approaches, and I still have a lot of implementation to learn in doing so. But eventually, the metagame will just generate games within itself, to buy, to play, to compete in, that kind of thing; all from a set of common assets that make contextual sense.

But in the end, I really just expect to get demakes of Spelunky, Rogue Legacy, TBoI, Spiral Knights, maybe some Street Fighter/King of Fighters clones with mixed-up movesets, and a DDR/GH/RB kind of thing with strategically engineered songs/charts for the sake of being fun and full of flow.


Hope that's helpful!
Logged

Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic