Gaming companies could learn a lot...

Discussion in 'General Gaming Discussion' started by Rydian, Sep 23, 2010.

  1. Rydian

    Rydian Resident Furvert™

    Feb 4, 2010
    United States
    Cave Entrance, Watching Cyan Write Letters
    Procedural content generation is a very powerful thing, and it generally refers to two aspects.
    [*]Generating the game's content procedurally.
    With resources created by the computer, you can fit the same game in a much, much smaller filesize.

    To highly just how damn useful this is, I want you to see Heaven 7.

    Run the W version at the 800x600 resolution option, and take note of these aspects.[*]It's a full "music video", containing images, text, special effects, timing, and more.[*]It's all rendered real-time.[*]It's only 64KB.

    My question to you is... which of these methods would you prefer newer games focus on?
  2. Sir-Fritz

    Sir-Fritz GBAtemp Maniac

    May 4, 2008
    Brisbane, Australia
    Doesnt making things procedurally take alot longer to create? It also uses more system resourced then usual and has alot longer loading times.
  3. Rydian

    Rydian Resident Furvert™

    Feb 4, 2010
    United States
    Cave Entrance, Watching Cyan Write Letters
    This depends on what's being generated, and how (as well as how complex it is).

    Generating a city block may be as simple as randomly choosing a number of buildings (random number between x and x+3), choosing a "theme"out of like 7 with probability modified based on surrounding blocks, then for each building choosing coordinates and textures, perhaps a "special" building like a shop or two.

    Generating an entire city like that will of course be hard, but in a game the entire city isn't loaded at once.
  4. Veho

    Veho The man who cried "Ni".

    Former Staff
    Apr 4, 2006
    That's not how it works. You code each texture as a sequence of instructions and parameters ("code") that lets the computer generate the texture on its own. Each texture has its own set of instructions and parameters. Some of them are more similar than others, so you can code a new texture by tweaking a few parameters, but some are quite different, and you need to code them from the ground up. That means you'd still need a lot of time to create new textures. The difference is space; procedurally generated textures only take up a few lines of code, unlike traditional texture packages that are megabytes and megabytes of bitmaps. Saves on bandwidth/disk space. You can fit several gigs of textures into 100 KB of code. Have you seen Kkrieger? An entire FPS that looks like this, and fits in 96KB. Pretty impressive.

    Procedurally generated content is interesting, in certain areas. Some games already have random dungeons (Pokemon Mystery Dungeon, Diablo, Hellgate London, I think?). A lot of genres could use well-made randomly generated maps, levels, dungeons, cities, etc. etc. But publishers don't want games that generate their own content, because they want to sell DLC and expansion packs [​IMG] All about the moneyz.

    Also, while random cities/maps/dungeons work with sandbox games or multiplayer skirmishes, you can't fit a storyline into an unpredictable terrain. You'd still have to find a way to populate the content with sidequests and a sense of purpose, or people will get bored of them. With procedural generated levels, you can have as many randomly generated levels/blocks/maps as you want, but you still have to assign a purpose for every one of them or else they'll just be filler, and players get bored of filler.

    And the main thing is, procedurally generated content helps single developers create games faster, because with content that generates itself, they can devote more time to coding game mechanics, or finish the game faster. But gaming companies have separate departments for that, so that creating textures or levels or models doesn't intrude on the coders' time, or vice versa. And it lets people work on what they do best, so that programmers don't have to draw, and artists don't have to code.
  5. FAST6191

    FAST6191 Techromancer

    pip Reporter
    Nov 21, 2005
    United Kingdom
    While I am a great fan of procedural generation to the point I have gone and studied it quite extensively I am an even greater fan of the its cousin- noise/randomly influenced base models.

    Done properly it is far simpler than straight up procedural generation (no need for massively complex and resource consuming algorithms) not to mention the maths behind it all is closely related to a fair few pseudo random number generation methods. Also it allows for more developer control- if you have to beat your randomly made level into shape* it is far more troublesome than having a base model and growing that. Also from an animation perspective if you randomise facial construction using existing provisions (as you probably allow the player character to do) it makes like easier to ascertain things (is that pixel a cheek or is the one 3 down from it) and impose limits not to mention store (and reload- random is great but known entities). Do it at the right point in the process and between light, shadows, fog and overlaying things and it becomes even more random.

    *see also genetic algorithms.

    Similarly if you think it is not used I would say take a look at most of the action RPGs- diablo and clones, borderlands, many of the more regular RPGs (the random book covers thing for oblivion springs to mind at this point), elite (in fact it was rather famous for such things) and many space games, RTS games make extensive use of it (ever seen the "joining cites" part of generation).
    I will certainly not say developers could not use more of it (many game players being afforded an annoyingly accurate long term memory and being trained in pattern recognition by the very games they play will notice repetition as many reviews of such games will note) but it is far from an unknown technique.
  6. Cyan

    Cyan GBATemp's lurking knight

    Global Moderator
    Oct 27, 2002
    Engine room, learning
    For a very good (in my point of view) procedural texture creator program, you can try the DarkTree demo :
    It's intended to be use jointly with 3D programs (as 3DStudio MAX).
    You create the textures in DarkTree, you specify modifiable parameters (intensity/color/randomness/etc.) which are editable/animable in 3D programs, and save the files as a list of command and mathematical sequences. then 3D programs can load these files and use them as normal texture.

    The demo is fully usable, you just can't save the mathematically generated files, but you can understand how texture generation is working.
  7. Rydian

    Rydian Resident Furvert™

    Feb 4, 2010
    United States
    Cave Entrance, Watching Cyan Write Letters
    With time saved, I'm talking about the first aspect (content).

    I liked diablo 2's method of generating weapons/armor with random characteristics. X3