let it leave me like a long breath

let it dissipate or fade in the background

(no subject)

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
  • Nov. 27th, 2017
  • xax: purple-orange {11/3 knotwork star, pointed down (Default)
    [personal profile] xax
    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.

    • Previous Entry
    • Add Memory
    • Share This Entry
    • Next Entry
    • 5 comments
    • Reply
  • Flat | Top-Level Comments Only
    • xax: purple-orange {11/3 knotwork star, pointed down (Default)
      [personal profile] xax
      posted @ 07:45 pm (UTC)

      no subject

      well, it's not so much rubberbanding back to defaults, it's like...

      okay so let's say you have a fairly robust economic sim tied into your world, and you can have trade caravans and move stuff around, and there are a bunch of AI trade caravans that also move stuff around, and all that determines what goods are available where and what their cost is.

      but if you want that to touch any other aspect of the game, you need other systems: if, say, there's a glut of formerly-rare silks and jewels, and their cost goes way down, maybe you should see more people wearing clothes and jewelery made from them. but then you need to make a procedural clothing/fashion system, and hook it up to various trade materials, so clothes of x type show up in relation to how cheap trade good y is. if raw magic crystals become really cheap, maybe that would make enchanting services really expensive? but then you have to pull categories of enchantment into the economic simulation, and also make 'enchanted clothes' a thing people wear. if an entire town's market collapses, maybe that should add to unrest? but then you need to be simulating social unrest too. and so forth and so on -- having an economic simulation lets you do a lot of things, but it's just an economic simulation, and there's all sorts of stuff that escapes its scope.

      • Link
      • Reply
      • Thread from start
      • Parent
      • Thread
      • Hide 1 comment
      • Show 1 comment
    • snao: (Default)
      [personal profile] snao
      posted @ 12:03 am (UTC)

      no subject

      Yeah, I was only thinking in terms of like.. the typical boring stock market sim thing.

      Extending it out into the world in terms of decor sounds amazing though. I'd never considered it as a dynamic option. Since yeah, that's left to art or whatever usually. "miners have mines" already

      • Link
      • Reply
      • Thread from start
      • Parent
    • Previous Entry
    • Add Memory
    • Share This Entry
    • Next Entry
    Flat | Top-Level Comments Only
Page generated Jun. 16th, 2025 03:12 am
Powered by Dreamwidth Studios

Style Credit

  • Style: (No Theme) for vertical