Dwarf Fortress > DF Suggestions

Taxonomic trees and biological families

(1/2) > >>

Azerty:
As of today, each creature and plant are defined separately, as if a wolf and a dog were totally separate, or a tomato and a potato.

What I propose is to make phylogenetic trees and biological families active in the game, mainly by defining templates in the rows.

Easy to say, but, concretly, how to do it?

There is already relevant tags: COPY_TAGS_FROM orders the loading of the tokens of another creature and APPLY_CREATURE_VARIATION, combined with any CREATURE_VARIATION, can create giants and animal people, so defining a creature in function of another is already supported.

Starting from this, we could even enact my suggestion in the vanilla game, simply by defining creatures such as Canidae and, if additional tokens are available for the plants, Solanaceae, and define them as DOES_NOT_EXIST and FANCIFUL to prevent them from created, before deriving other creatures and plants out of them.

However, we could treat this as a specific feature instead of a hack, providing us with more opportunities beyond making the adding of additional creature by modders easier. While the number of creatures might be high enough, it might make creating other plants easier; moreover, it makes modifying several creatures at once easier, thereby making the creation of new tokens and the suppression of obsolete tokens easier in future updates.

For exemple, let's define the template (in the rest of this post, it will be named "taxinomical family") for the Canidae:


--- Code: ---[CREATURE_TEMPLATE:CANIDAE]
[DESCRIPTION:A family of medium-sized highly social mammalian carnivore.]
[NAME:canid:canids:canid]
[CREATURE_CLASS:MAMMAL][NATURAL]
[LARGE_ROAMING]
[BONECARN][BODY:QUADRUPED_NECK:TAIL:2EYES:2EARS:NOSE:2LUNGS:HEART:GUTS:ORGANS:THROAT:NECK:SPINE:BRAIN:SKULL:4TOES_FQ_REG:4TOES_RQ_REG:MOUTH:TONGUE:GENERIC_TEETH_WITH_LARGE_EYE_TEETH:RIBCAGE]
[BODYGLOSS:PAW]
[BODY_DETAIL_PLAN:STANDARD_MATERIALS]
[BODY_DETAIL_PLAN:STANDARD_TISSUES]
[BODY_DETAIL_PLAN:VERTEBRATE_TISSUE_LAYERS:SKIN:FAT:MUSCLE:BONE:CARTILAGE]
[BODY_DETAIL_PLAN:BODY_HAIR_TISSUE_LAYERS:HAIR]
[USE_MATERIAL_TEMPLATE:NAIL:NAIL_TEMPLATE]
[USE_TISSUE_TEMPLATE:NAIL:NAIL_TEMPLATE]
[TISSUE_LAYER:BY_CATEGORY:TOE:NAIL:FRONT]
[SELECT_TISSUE_LAYER:HEART:BY_CATEGORY:HEART]
[PLUS_TISSUE_LAYER:SKIN:BY_CATEGORY:THROAT]
[TL_MAJOR_ARTERIES]
[BODY_DETAIL_PLAN:STANDARD_HEAD_POSITIONS]
[BODY_DETAIL_PLAN:HUMANOID_RIBCAGE_POSITIONS]
[USE_MATERIAL_TEMPLATE:SINEW:SINEW_TEMPLATE]
[TENDONS:LOCAL_CREATURE_MAT:SINEW:200]
[LIGAMENTS:LOCAL_CREATURE_MAT:SINEW:200]
[HAS_NERVES]
[USE_MATERIAL_TEMPLATE:BLOOD:BLOOD_TEMPLATE]
[BLOOD:LOCAL_CREATURE_MAT:BLOOD:LIQUID]
[CREATURE_CLASS:GENERAL_POISON]
[GETS_WOUND_INFECTIONS]
[GETS_INFECTIONS_FROM_ROT]
[USE_MATERIAL_TEMPLATE:PUS:PUS_TEMPLATE]
[PUS:LOCAL_CREATURE_MAT:PUS:LIQUID]
[CASTE:FEMALE]
[FEMALE]
[CASTE:MALE]
[MALE]
[SET_BP_GROUP:BY_TYPE:LOWERBODY][BP_ADD_TYPE:GELDABLE]
--- End code ---

We could define the dog as thus, by using the token DERIVES_FROM_TAXONOMIC_FAMILY:


--- Code: ---[CREATURE:DOG]
[DESCRIPTION:A medium-sized highly social mammalian carnivore.  It has a keen sense of smell.  It can be trained to obey commands.]
[DERIVES_FROM_TAXONOMIC_FAMILY:CANIDAE]
[NAME:dog:dogs:canine]
[CASTE_NAME:dog:dogs:canine]
[CREATURE_TILE:'d'][COLOR:6:0:0]
[PETVALUE:30]
[PREFSTRING:loyalty]
Add the rest below...
--- End code ---

Here, we just defined a dog only as a specific case of Canidae, taking this taxonomical family as a template; other might be defined such, such as foxes, wolfes and coyotes.

Making interactions might also be easier: for exemple, we could have a method to create hybrids, by declaring any creatures whose taxonomic families are identical able to procreate, allowing the birth of wolf-dogs but not of wolf-cats.

Training animals might be easier if one already knows how to train one of its sibilings: for exemple, training a coyote might be easier if one already knows how to train dogs.

In future updates, veterinary care might be easier on an animal if we already know how to heal its sibiling (see training); farther down, syndromes and infectious diseases might be affected on entire families, such as rabies on all Canidae. We could also code all Solanaceae as having syndromes, as most of them have alcaloids (nicotin, solane).

Other features might be the generation of other creatures from a taxonomical family in a world, such as a new Canidae.

Could a taxonomic family be a descendent of another, for exemple define Canidae as a "son" of Carnovora? Could a creature be the "son" of several taxonomical families, such as wolf men being both Canidae and Humanoid? While the first might add more modulability, the second might led to issues with token colision (see ).

So, what's your opinion on this suggestion?

voliol:
It's a nice and clean solution to many problems that would otherwise require a level of detail that even for Dwarf Fortress would be too much, such as inner anatomy that has to be recognized by surgeons, and behavioral quirks that need to be known by your animal trainers/mounted troops.

There are a few questions to be answered, however. First, how does it deal with non-natural creatures? What is a beak dog, phylogenetically? A bird, probably. But a creeping eye? A green devourer? A fluffy wambler? Is a fly-like demon still part fly? And the weregiraffes?

Second, how do you fit this into the game thematically, keeping to the technological cut-off that logically should exclude even Linnaeus, and even more the later phylogenetic classification of species. Should words like "dog-kind" be used in the game, or should it be all behind the scene? There already is the word "mammal" used in the raws, as a creature class, which includes bats. Considering bats were considered birds in medieval bestiaries, this might be part of the answer to that very question.

Azerty:

--- Quote from: voliol on October 18, 2018, 03:16:43 pm ---It's a nice and clean solution to many problems that would otherwise require a level of detail that even for Dwarf Fortress would be too much, such as inner anatomy that has to be recognized by surgeons, and behavioral quirks that need to be known by your animal trainers/mounted troops.
--- End quote ---

Another advantage is that the raw files might be easier to read, since most of the information would be contained in the taxonomical families.


--- Quote from: voliol on October 18, 2018, 03:16:43 pm ---There are a few questions to be answered, however. First, how does it deal with non-natural creatures? What is a beak dog, phylogenetically? A bird, probably. But a creeping eye? A green devourer? A fluffy wambler? Is a fly-like demon still part fly? And the weregiraffes?
--- End quote ---

Some creatures might be left to be defined by the current method because of such issues. Weregiraffes are cursed sentients, not able to reproduce, and keep their original specie.

However, some fantasy taxonomical families might be created; the Gigantic family, itself part of Humanoid, could group Giants, Cyclops and Ettins.


--- Quote from: voliol on October 18, 2018, 03:16:43 pm ---Second, how do you fit this into the game thematically, keeping to the technological cut-off that logically should exclude even Linnaeus, and even more the later phylogenetic classification of species. Should words like "dog-kind" be used in the game, or should it be all behind the scene? There already is the word "mammal" used in the raws, as a creature class, which includes bats. Considering bats were considered birds in medieval bestiaries, this might be part of the answer to that very question.
--- End quote ---

I would put it behind the scene on this base, since pre-Linnean taxonomy wasn't so precise.

However, since I proposed some of the aspects of this game (veterinary care, training) might be affected by my suggestion, I feel some way to access it from the game might be possible and that, consequently, maybe, as you said, "dog-kind" might be used for animals related to the dog.

voliol:

--- Quote from: Azerty on October 18, 2018, 05:04:59 pm ---
--- Quote from: voliol on October 18, 2018, 03:16:43 pm ---It's a nice and clean solution to many problems that would otherwise require a level of detail that even for Dwarf Fortress would be too much, such as inner anatomy that has to be recognized by surgeons, and behavioral quirks that need to be known by your animal trainers/mounted troops.
--- End quote ---

Another advantage is that the raw files might be easier to read, since most of the information would be contained in the taxonomical families.

--- End quote ---
From my experience as a modder, the opposite would actually be more likely, as the vital information for each species would be more spread out than it already is, especially when layered. If a taxonomical system is to be implemented, it would probably be way more practical to put as much as possible in the creature files, and only the really relevant (e.g. syndromes/diseases) tokens in the raw for the family/phylogenetical group. It also prevents duplication errors if a creature for some reason belongs to multiple groups.


--- Quote from: Azerty on October 18, 2018, 05:04:59 pm ---
--- Quote from: voliol on October 18, 2018, 03:16:43 pm ---There are a few questions to be answered, however. First, how does it deal with non-natural creatures? What is a beak dog, phylogenetically? A bird, probably. But a creeping eye? A green devourer? A fluffy wambler? Is a fly-like demon still part fly? And the weregiraffes?
--- End quote ---

Some creatures might be left to be defined by the current method because of such issues. Weregiraffes are cursed sentients, not able to reproduce, and keep their original specie.

--- End quote ---
The system wouldn't only be used for defining when a hybrid species could be created, right? How does one perform surgery on a weregiraffe, were it sedated?


--- Quote from: Azerty on October 18, 2018, 05:04:59 pm ---However, some fantasy taxonomical families might be created; the Gigantic family, itself part of Humanoid, could group Giants, Cyclops and Ettins.

--- End quote ---
If these could be semi-random that would be pretty amazing as well, though I guess that's more wishful thinking than a proper suggestion.

GoblinCookie:
This would work very well for hybrid creatures.

Navigation

[0] Message Index

[#] Next page

Go to full version