Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: Extend the planned "dragon randomizer" to all other fantasy creatures  (Read 1855 times)

Mr Crabman

  • Bay Watcher
  • A person with the head and pincers of a crab.
    • View Profile

Toady has said that in a later update there's going to be a "dragon randomizer"; basically, a way to "randomly generate" many species in a world that could reasonably be called dragons; big or small, rare and unique or common as sea lampreys, wings or no wings, breathing fire or other things, scaly or with some hair, normal or perhaps acidic or toxic blood... All sorts of variations as seen in myth, but not so random and unique that it's unreasonable to call them dragons. This is as opposed to the likes of forgotten beasts which have basically no consistency between them.

And this supposedly will be something that is defined in the raws, and the syntax won't be tied specifically to dragons.

So my suggestion, is to actually go ahead and apply it to all the fantasy creatures. Not all dwarves in all fantasy settings are necessarily alcoholics, and maybe some worlds have multiple subspecies of dwarves each with their own differences, both in anatomy, and culture, and magical capabilities! And cyclopses could be big dumb one-eyed humans like they are now pretty much, or perhaps just normal sized one-eyed humans that also have tusks, or be beasts with a horn sticking out of their head and with a coat of blue fur. Goblins might be evil murder hordes from hell, or be little inconsequential shapeshifters who enjoy stealing food and smashing pottery.

This would be great to have in conjunction with the super unique creatures that would be created by high levels of the randomness slider; it would allow for worlds that still have quite some variance in creatures and how they are depicted, but still go by recognizable names, and be decently recognizable as being those things, even if they didn't have the names. Like, if you look at an elf in basically any setting (be it LOTR or Christmas folklore, or indeed DF), you'll know it's an elf pretty much, because it'll be a pointy-eared humanoid, despite very profound differences in size and/or demeanor.

It could also potentially be used at high randomness settings to perhaps invoke the "call a smeerp a rabbit" trope, where you really stretch the definition of "elf" because now they are blue, wrinkly and have batlike wings, and tails. More normal randomness settings should probably keep creatures within reasonable bounds of recognisability though.

Mobbstar

  • Bay Watcher
  • aka Mossbird
    • View Profile
    • my website
Re: Extend the planned "dragon randomizer" to all other fantasy creatures
« Reply #1 on: February 21, 2022, 10:55:40 am »

I would love to see randomised colossi.

voliol

  • Bay Watcher
    • View Profile
    • Website
Re: Extend the planned "dragon randomizer" to all other fantasy creatures
« Reply #2 on: February 21, 2022, 01:38:35 pm »

It would be nice to have the procgen creatures move into the raws, or rather generation templates for them. And as with dragons, letting fantasy creatures that are currently in the raws but entirely "hard" in their definitions use the raw-based generation templates would be a bonus, I agree. So what do we need for such? Here are some thoughts:
  • These raws need to be similar to the existing creature raws, in that they contain information on how to construct a creature. Perhaps they could be some kind of expansion even to the existing CREATURE definitions, so they are guaranteed to be able to use all creature tokens?
  • Assuming the above, the generator raws would be what you usually see in the raws (for creatures that have one), and in myth-gen (and sometimes later as with experiments) the game would use them to put the specific species raws they generate into the save file, and use them from there as needed.
  • Rather than the linearity of current CREATURE raws, these generators need to branch, so you can give the creature either feathers, skin, or scales, instead of multiple or none.
  • There needs to be a random element to decide which branch(es) to take.
  • The branches should be given weights, so some outcomes can be rarer than others.
  • If creature variations templates can be used for these, I reckon the branches could be very simple, you just need a token that randomly applies one of several creature variations given weight, like a combination of APPLY_CREATURE_VARIATION and TL_COLOR_MODIFIER. I'm not saying it would the best solution, but it is one. Especially if creature variations are given the ability to nest at some time.
  • Some branches or random choices need to be kept track of, e.g. you don't want your blobs to be "eyeless", because that is already implied. Could theoretically be done using branches (or creature variation tricks), but having some token tailored for memory could make the raws shorter and easier to use.
  • The above point also implies some kind of conditionals.
  • The mythgen sliders need to be taken into consideration, especially the randomness slider, but also e.g. bleakness so you don't get dragons turned inside out for your Telletubbies-worlds. If the randomness slider is at 0, there should be one or multiple defaults for each generator to output.
  • There needs to be some name generation. Not only for the procgen creature we already have (night trolls and experiments) that need it should they be moved into the raws, but if you have multiple kinds of dragons you need to differentiate them. Or mountain dwarves, moss dwarves, etc. If there is only one kind generated, there should be an option to have a standard name.
  • The same with descriptions.
  • This needs to tie into myth object raws as well. As the myth objects (as seen in the demo, some years ago) seems to tell only what role something has in the myth these don't need to have a 1-to-1 relationship with creature generators. You could have a progenitor-race myth object, which can use either the giant generator, the standard humanoid generator. Or a god-level-monstrosity myth object and a worldy-monster myth object both using the dragon generator. etc.
  • When time comes, these generator raws should have tokens to solve the centaur problem - i.e. it should be possible to have generators set up to produce creatures based on multiple other, such as foo-taurs and procedural chimeras.

Mr Crabman

  • Bay Watcher
  • A person with the head and pincers of a crab.
    • View Profile
Re: Extend the planned "dragon randomizer" to all other fantasy creatures
« Reply #3 on: February 21, 2022, 04:35:58 pm »

I would love to see randomised colossi.

Sadly it's colossuses :(

But yes, me too.

... etc...

All sounds pretty good; I would add to this that as well as branches, it would be good to have a way to specify "ranges" for specific values/multipliers on those values; like, you don't wanna have to make a dozen versions of body size multiplier to allow lots of variances in size (each with their own "weight"), you want to specify whole ranges that have their own weights. Giant animals ought to not be all exactly the same level of giant in all worlds after all!

Also, I only just thought of this, but variances in creature variations themselves might be worth considering, so as to allow a world to have some unique thing about all different types of animal people for example, that is shared by them all (rather than having each animal person roll all the same dice a second time).

  • Some branches or random choices need to be kept track of, e.g. you don't want your blobs to be "eyeless", because that is already implied. Could theoretically be done using branches (or creature variation tricks), but having some token tailored for memory could make the raws shorter and easier to use.
  • The above point also implies some kind of conditionals.

I'm not quite sure what you mean by this point; could you clarify? The one about conditionals seems more obvious (like "IF BRANCH X, TRY BRANCH Y"), but the thing about memory is a bit confusing.

  • The mythgen sliders need to be taken into consideration, especially the randomness slider, but also e.g. bleakness so you don't get dragons turned inside out for your Telletubbies-worlds. If the randomness slider is at 0, there should be one or multiple defaults for each generator to output.

Yeah, each "branch" or possible thing needs to have some way of specifying values from such worldgen sliders, like specifying "this branch only works in fantasy level 5 or higher" or something.

Also, to be clear, randomness slider being at 0 should not have "multiple defaults", by definition (unless I've misunderstood you).

Irrelevant tangent, but your mention about the bleakness slider gave me a funny mental image of all dragons in Telletubbies-worlds having dumbed-down anatomy in general, with no blood or innards, just pudge inside, and certainly no horns, and teeth of marshmallows!

  • There needs to be some name generation. Not only for the procgen creature we already have (night trolls and experiments) that need it should they be moved into the raws, but if you have multiple kinds of dragons you need to differentiate them. Or mountain dwarves, moss dwarves, etc. If there is only one kind generated, there should be an option to have a standard name.
  • The same with descriptions.

Worth noting that even if there is only one, sometimes it may be suitably flavorful to give them a less generic name; like, "mountain gnomes" do have a second species, but you could have easily just had normal gnomes + dark gnomes, with no "mountain" for the normal ones.

As for name generation itself, yeah that's gonna be a big deal, and it may be good if it were to some degree controllable, both in the sense of making it go certain ways when a particular branch is chosen (like dragon vs wyvern and such), and also in what aspects are used to differentiate them.

Descriptions make this even more important, and feel like a pain in the behind waiting to happen, because there could be so many traits that may or may not be worth mentioning in a generated description, and sometimes it's nice to have "flavorful/fancy" text instead of just generic descriptive terms. Like with blood men, would a random generator really have chosen "abomination" to describe what is basically a humanoid made of blood? Would it have said "these cursed creatures are found only near the underworld", even though other creatures at the same depth bear no mention of the underworld? And yet blood men in all worlds may not be anything to do with the depths of the world, maybe even being a given worlds version of undead/ghosts...

Oh, and... Gahhh, descriptions/names also have connection with sliders don't they? You can't really let the generator call the tellytubby dragons "gut-render drakes" described as "fearsome beasts with long claws made for shredding prey", or vice versa have max grimdarkness worlds with "fluffy waffle trolls" described as "chubby creatures with long claws made for scooping honey out of beehives".

PlumpHelmetMan

  • Bay Watcher
  • Try me with sauce...
    • View Profile
Re: Extend the planned "dragon randomizer" to all other fantasy creatures
« Reply #4 on: February 24, 2022, 04:58:07 am »

The name sliders IMO, if they're to allow for the "call a smeerp a rabbit trope" as suggested by OP, should also allow for the opposite: worlds where visually-recognizable fantasy creatures go by something other than their standard names. Eg. the occasional world where elves are called "avathi" or dwarves are called "durgrums". This might even be extended to mundane fauna: maybe dwarves in a particular world happen to call cats "mistems" and dogs "bomreks".
Logged
It's actually pretty terrifying to think about having all of your fat melt off into grease because you started sweating too much.

Mr Crabman

  • Bay Watcher
  • A person with the head and pincers of a crab.
    • View Profile
Re: Extend the planned "dragon randomizer" to all other fantasy creatures
« Reply #5 on: February 24, 2022, 05:31:24 am »

The name sliders IMO, if they're to allow for the "call a smeerp a rabbit trope" as suggested by OP, should also allow for the opposite: worlds where visually-recognizable fantasy creatures go by something other than their standard names. Eg. the occasional world where elves are called "avathi" or dwarves are called "durgrums". This might even be extended to mundane fauna: maybe dwarves in a particular world happen to call cats "mistems" and dogs "bomreks".

I think if this were to happen (creating non-standard names for standard things), it would be better suited to the eventual "language rewrite" Toady has planned, where he breaks out his conlang/linguistics books and makes ingame civs procedurally generate their languages and have them evolve over time (as real languages do), and it would ideally be possible to toggle names of various things between English and the procgenned names.

Just calling normal things by unfamiliar generated names doesn't strike me as a good idea for anything sooner than that IMO; it'd already be confusing enough having to learn what the fully procgenned creatures are in a given world, without having to also learn "oh yeah this world calls elves avathi".

This goes especially so for mundane creatures.

PlumpHelmetMan

  • Bay Watcher
  • Try me with sauce...
    • View Profile
Re: Extend the planned "dragon randomizer" to all other fantasy creatures
« Reply #6 on: February 24, 2022, 05:50:22 am »

Yeah, I didn't have a particular deadline in mind for it...just thought it might be a neat feature somewhere (potentially very far) down the line.
Logged
It's actually pretty terrifying to think about having all of your fat melt off into grease because you started sweating too much.

Mr Crabman

  • Bay Watcher
  • A person with the head and pincers of a crab.
    • View Profile
Re: Extend the planned "dragon randomizer" to all other fantasy creatures
« Reply #7 on: March 17, 2022, 11:23:45 am »

Something that didn't occur to me before:

Being able to procedurally integrate qualities from other objects like plants or materials or even other creatures would be useful; what I mean is for example, that it could be useful to be able to say, define a COLOSSUS creature template that can use any material for its body, even ones that were procedurally generated only in that world, or which were added by another mod (so naturally the COLOSSUS template cannot simply specify every possible material manually).

An expansion of "creature classes" to other object types (so that these can be used to refer to "pools" of objects to pull from) would be useful here, as well as having a generalized way to "test" objects to see if they belong in the pool of "materials that can be used" would be useful as well, as maybe you want a "hot" variant/branch of colossus that can only use materials that are still solid at high temperatures, so you'd need some way for the randomizer to check the melting and boiling points of the material. Or maybe you want special insect centaurs that require specific body plans from the base creatures.

Also, I don't know if it's really within the scope of this suggestion, but having a way to generate other objects in the raws would be good as well; after all, fantasy worlds can have unique plant life as well right? Or there can be different "super rare very strong" materials rather than adamantine, or adamantine may have different physical properties to current DF. Having raw-accessible randomizers for other such object types would be great as well.

IndigoFenix

  • Bay Watcher
  • All things die, but nothing dies forever.
    • View Profile
    • Boundworlds: A Browser-Based Multiverse Creation and Exploration Game
Re: Extend the planned "dragon randomizer" to all other fantasy creatures
« Reply #8 on: March 18, 2022, 01:37:13 am »

Something that didn't occur to me before:

Being able to procedurally integrate qualities from other objects like plants or materials or even other creatures would be useful; what I mean is for example, that it could be useful to be able to say, define a COLOSSUS creature template that can use any material for its body, even ones that were procedurally generated only in that world, or which were added by another mod (so naturally the COLOSSUS template cannot simply specify every possible material manually).

An expansion of "creature classes" to other object types (so that these can be used to refer to "pools" of objects to pull from) would be useful here, as well as having a generalized way to "test" objects to see if they belong in the pool of "materials that can be used" would be useful as well, as maybe you want a "hot" variant/branch of colossus that can only use materials that are still solid at high temperatures, so you'd need some way for the randomizer to check the melting and boiling points of the material. Or maybe you want special insect centaurs that require specific body plans from the base creatures.

Also, I don't know if it's really within the scope of this suggestion, but having a way to generate other objects in the raws would be good as well; after all, fantasy worlds can have unique plant life as well right? Or there can be different "super rare very strong" materials rather than adamantine, or adamantine may have different physical properties to current DF. Having raw-accessible randomizers for other such object types would be great as well.

Makes sense. In addition to CREATURE_MAT, PLANT_MAT and INORGANIC, there could be a MAT_CLASS material identifier for use in randomizer templates.

Any material defined in a creature, plant, or inorganic could have ome or more MAT_CLASSes to define the pools from which they could be pulled. Material templates could also be given classes, which would add any materials that used said classes to their respective pools. These pools would be compiled before generating any objects.

So, for instance, you could create a "random blood rain" interaction by adding MAT_CLASS:BLOOD to the blood template, then in the interaction generator call WEATHER_FALLING_MATERIAL:MAT_CLASS:BLOOD or something like that.