let it leave me like a long breath

let it dissipate or fade in the background

Nov. 27th, 2017

Profile

xax: purple-orange {11/3 knotwork star, pointed down (Default)
howling howling howling

Nav

  • Recent Entries
  • Archive
  • Reading
  • Tags
  • Memories
  • Profile

Tags

  • art - 2 uses
  • asteroid garden - 4 uses
  • code - 19 uses
  • demos - 1 use
  • dreams - 5 uses
  • ff7 fangame - 23 uses
  • fic prompts - 13 uses
  • gamedev challenge - 82 uses
  • hell game - 76 uses
  • nanowrimo - 11 uses
  • plants - 9 uses
  • process - 52 uses
  • programming - 51 uses
  • screenshots - 5 uses
  • writing log - 83 uses

May 2025

S M T W T F S
    123
45678 910
1112131415 1617
18192021222324
25262728293031
    • Previous Day
    • |
    • Next Day

    Nov. 27th, 2017

  • xax: purple-orange {11/3 knotwork star, pointed down (Default)
    posted @ 01:24 pm

    i've been working on a bunch of ~procedural generation~ stuff recently, so let's go ahead and talk about why procedural content generation is bad and boring. i think even the lay person has an understanding of the repetitiveness of most procedural algorithms -- everybody got their hopes up for no man's sky, etc -- but it's possible to be at least a little more precise as to the reasons.

    procedural content generation is all about reuse. you make some assets (models, text, world geometry, etc) and then you permute them in different combinations to get a really big set of options, and then you go "check out how many combinations this has; that's so much content." the problem is, different combinations aren't necessarily meaningfully distinct, and frequently none of the combinations are meaningfully distinct.

    like, using my procedural recombination generator, you have text snippets like... he's a <brawny | lean | fat> <green | red | black | blue> <orc | troll | goblin | ogre | imp>, with <lots of scars | lots of tattoos | one eye> and a <knife | sword | bow | staff>., which you could use for random monsters or npcs or whatever. there are, if you do the math, a total of 720 different combinations -- it's 3 * 4 * 5 * 3 * 4, since those are the numbers of each option -- except, since each individual option only has five choices, it's possible to see each individual option with a set of five (a brawny green orc, a lean red troll, a fat black goblin, etc). the 'uniqueness factor' there is 5/720, or 0.694% -- after you've seen around half a percent of the total domain, you've seen every option, and all that's left is seeing new permutations of stuff you've already seen.

    the thing is, adding more options literally makes that number go down -- the number of combinations goes up faster than the number of component parts. so the only way you can make that percentage higher is by making things less procedural. if you have twenty handcrafted designs, each really unique and distinct, then you only start seeing repetitions at 20/20, or 100% of the way through. procedural generation is fundamentally about asset reuse.

    now of course this is a very simple example, and there are games with complex enough systems that turn that repetition into a virtue. ultima ratio regum does things like "every town in this civilization will have the same style of decoration", and so you can do things like figure out who controls a given town by looking at the flagstones and fences, even if you don't know the language. this is basically saying, "okay you're going to be seeing a lot of flagstones, and they're going to all look more-or-less the same, but even if they look the same, you can learn things about the world by understanding what you're looking at."

    the other thing is, humans are kind of pattern-recognizing engines. it's what we do. and once somebody's seen "he's a fat green orc with lots of scars and a knife" and "he's a brawny blue imp with one eye and a bow", they'll probably have a pretty good sense for how the descriptions vary, even if they haven't seen all the other combinations. each individual item hasn't been seen, but the overall structure of the generator has been, and so you more-or-less instantly run out of things that are new and novel.

    (there's a reason why some of the most successful games that use procedural generation use it to provide a generic corpus for the player to operate on: the dungeons in the diablo games aren't interesting in themselves, but they're sufficiently non-repetitive to make dungeon crawling interesting; the landscape in minecraft is extremely repetitive on the large scale, but they mostly exist to provide raw materials for the player to build things; the map in dwarf fortress is also mostly just a set of raw materials and horrible monsters to provide fun for the player.)

    but the ultimate point here, is that things like "procedural quest generation" or "procedural storyline" are... not 'doomed to failure', but much more complex than just slapping a few character archetypes into a plotline structure. part of what makes human storytelling interesting is unique flourishes, and a simple recombinatory generator (like what i'm using) is literally incapable of generating uniqueness.

    there's always this dream of the forever game -- the thing people thought no man's sky was going to be, and the thing fable was originally pitched as: a complex, complete fantasy world, where you can go everywhere and do everything. that seems to be the dream people have for procedural generation. and the thing is, when people do try to make it, it's very rapidly clear that simplistic procedural generation runs out of steam.

    blah blah blah

    anyway while writing this post i discovered that the anti net-neutrality comments all over the fcc's rfc exactly fit the template of my generation engine (which is to say, a really simple and dumb combinatorics generator) so it's like, okay this isn't sufficiently useful for creative purposes but it IS enough to astroturf so giant corporate/governmental industries can justify their horrible actions. isn't that how it always goes.

    • Add Memory
    • Share This Entry
    • Link
    • 5 comments
    • Reply
    • Previous Day
    • |
    • Next Day
Page generated Jun. 7th, 2025 02:54 pm
Powered by Dreamwidth Studios

Style Credit

  • Style: (No Theme) for vertical