Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 2 [3] 4 5 ... 7

Author Topic: Hybridisation: Mixing races.  (Read 11601 times)

Chevaleresse

  • Bay Watcher
  • A knight, returned from a journey weary and long
    • View Profile
    • Patreon
Re: Hybridisation: Mixing races.
« Reply #30 on: September 29, 2014, 11:09:52 pm »

We have plenty of unrealistic things in DF already. Fantasy crossbreeding is hardly over the line.
Logged
GM of Trespassers V2.
If you like my work, consider becoming a patron. (Since apparently people think this is a requirement: no, my game(s) are free to play and always will be.

Bumber

  • Bay Watcher
  • REMOVE KOBOLD
    • View Profile
Re: Hybridisation: Mixing races.
« Reply #31 on: September 30, 2014, 12:06:52 am »

Races in the fantasy sense of the term are too distantly related to interbreed unless some sort of magic or poor writing is involved. At a minimum it should require some kind of magic or whatever to achieve.
There's no reason fantasy (or even extraterrestrial, for that matter,) genetics have to work in the way we know them. Traits may not be coded as alleles but, for instance, as a proportion of chemical substances.

There's also the whole thing about DF having gods of pregnancy and birth.
Logged
Reading his name would trigger it. Thinking of him would trigger it. No other circumstances would trigger it- it was strictly related to the concept of Bill Clinton entering the conscious mind.

THE xTROLL FUR SOCKx RUSE WAS A........... DISTACTION        the carp HAVE the wagon

A wizard has turned you into a wagon. This was inevitable (Y/y)?

Putnam

  • Bay Watcher
  • DAT WIZARD
    • View Profile
Re: Hybridisation: Mixing races.
« Reply #32 on: September 30, 2014, 12:09:17 am »

Races in the fantasy sense of the term are too distantly related to interbreed unless some sort of magic or poor writing is involved. At a minimum it should require some kind of magic or whatever to achieve.
There's no reason fantasy (or even extraterrestrial, for that matter,) genetics have to work in the way we know them. Traits may not be coded as alleles but, for instance, as a proportion of chemical substances.

There's also the whole thing about DF having gods of pregnancy and birth.

Traits are already coded as alleles, though, or at least intended to be as the genetic system was designed. IIRC 0.31.01 was supposed to have a more fleshed-out genetics system but it was taking too much time already.

Zanzetkuken The Great

  • Bay Watcher
  • The Wizard Dragon
    • View Profile
Re: Hybridisation: Mixing races.
« Reply #33 on: September 30, 2014, 12:33:50 pm »

Here's a possible explanation for why there could be interbreeding:

It could be that, lore-wise, some of the DF races are far enough off in appearance that they are on the verge of becoming species, but haven't yet done so completely.  Having them referred to as different races, in this case, would be just a more extreme example of how society tends to use 'race' to compare different human ethnicity.

If the tag is how Dirst put it (which I would prefer for it doing the same thing as the interaction, but in a much more condensed code), then if people don't want their lore as such, it is just a simple tag removal.

Edit: Heck, if that tag is caste-level, then you could have it so that combinations of different castes results in only certain results rather than being random.
« Last Edit: September 30, 2014, 12:35:30 pm by Zanzetkuken The Great »
Logged
Quote from: Eric Blank
It's Zanzetkuken The Great. He's a goddamn wizard-dragon. He will make it so, and it will forever be.
Quote from: 2016 Election IRC
<DozebomLolumzalis> you filthy god-damn ninja wizard dragon

Knight Otu

  • Bay Watcher
  • ☺4[
    • View Profile
Re: Hybridisation: Mixing races.
« Reply #34 on: September 30, 2014, 02:31:10 pm »

If the tag is how Dirst put it (which I would prefer for it doing the same thing as the interaction, but in a much more condensed code), then if people don't want their lore as such, it is just a simple tag removal.
I admit I'm biased here, but I don't think that removing a few interactions is that much harder than removing a few lines in a creature. If all the hydridization interactions are in the one file separate from the other interactions, you could even go and just delete the whole file. You'd make mules cry, though.

Edit: Heck, if that tag is caste-level, then you could have it so that combinations of different castes results in only certain results rather than being random.
As in, male elephant, female mammoth always results in male mammophant and vice versa? Yeah, Dirst's tag would have to be caste-level for that, but then, the majority of creature tokens are caste-level tags.
Logged
Direforged Original
Random Raw Scripts - Randomly generated Beasts , Vermin, Hags, Vampires, and Civilizations
Castle Otu

Bohandas

  • Bay Watcher
  • Discordia Vobis Com Et Cum Spiritum
    • View Profile
Re: Hybridisation: Mixing races.
« Reply #35 on: September 30, 2014, 11:34:29 pm »

Here's a possible explanation for why there could be interbreeding:

It could be that, lore-wise, some of the DF races are far enough off in appearance that they are on the verge of becoming species, but haven't yet done so completely.  Having them referred to as different races, in this case, would be just a more extreme example of how society tends to use 'race' to compare different human ethnicity.

Oh, like a ring species.

That's fine, I guess. If the more radically different morphs aren't either non-interfertile or severely isolated however, it becomes implausible that they wouldn't mix over time into one generic type.
Logged
NEW Petition to stop the anti-consumer, anti-worker, Trans-Pacific Partnership agreement
What is TPP
----------------------
Remember, no one can tell you who you are except an emotionally unattached outside observer making quantifiable measurements.
----------------------
Έπαινος Ερις

GoblinCookie

  • Bay Watcher
    • View Profile
Re: Hybridisation: Mixing races.
« Reply #36 on: October 04, 2014, 06:24:15 am »

Coloration has that odd dominance pattern; the bodypart appearance modifiers that are ranges are deterimined by some under-the-hood genetics inherited from the parents.  Either could cluster into small subsets of the possible, but it still doesn't define a "race" in any way that is meaningful to the game's AI.  An individual who joins another civ doesn't suffer any prejudice and his/her genetics pass down normally.

Even if you want to describe a "race" as the player's pattern recognition, I have not noticed any pattern of my Starting Sevens resembling each other any more than would be suggested by the raws. I'll admit it's possible that Toady spawns migrants based on the population of historical figures in that civ (maybe picking two at random as pseudo-parents), but that would still take many generations to form noticeable "races."

You appear to be either blind or not playing the latest version of the game.  All you have to do is create an adventurerer in one dwarf civilization (in the latest version), compare how you look with how at least a dozen other folk look.  And then do the same in another civilization and see what common traits tend to occur.  Compare against the creatures created in object testing area if there is any doubt left. 

There is no accident here, the civilization's 'races' do not happen by accident, instead each civilization has a default appearance that is created right at the start by the game.  As is shown by the fact that extinct civilizations settlements are populated by racialised inhabitants automatically.  I think that non-historical characters use the default appearance while historical characters use an actual system of genetics. 

There's really no reason to assume fantasy species aren't close enough to interbreed. They certainly look like it.

My thoughts exactly. 

Oh, like a ring species.

That's fine, I guess. If the more radically different morphs aren't either non-interfertile or severely isolated however, it becomes implausible that they wouldn't mix over time into one generic type.

Merely relative isolation has not (yet) caused all the real-world races to merge into one single uniform race so why would this happen in the Dwarf Fortress world? 

Here's a possible explanation for why there could be interbreeding:

It could be that, lore-wise, some of the DF races are far enough off in appearance that they are on the verge of becoming species, but haven't yet done so completely.  Having them referred to as different races, in this case, would be just a more extreme example of how society tends to use 'race' to compare different human ethnicity.

If the tag is how Dirst put it (which I would prefer for it doing the same thing as the interaction, but in a much more condensed code), then if people don't want their lore as such, it is just a simple tag removal.

Edit: Heck, if that tag is caste-level, then you could have it so that combinations of different castes results in only certain results rather than being random.

It is really not much need of an explanation as to why say humans and dwarves can interbreed.  What is needed is an explanation as to why they cannot interbreed.

My idea is for the same to take all the existing castes of the same body-type (so two legs, one head, two arms etc) but different creature-type and then to randomly determine their relatedness to eachother.  This would be determined based on a weighted number calculated by comparing how many characteristics they have in common.  Egg laying and non-egg laying creatures can also never interbreed obviously.

The game then creates a proceedurely generated hybrid creature file, along with a suitable name and symbol.  Based upon the number, there is a also a possibilty that the hybrid race simply cannot happen, in which case it is stamped with [DOES NOT EXIST] and acts as a placeholder. 

Then there are a few rather nasty creature level complications like. 
[ALWAYS_MISCARRIES]
[MISCARRIAGE_CHANCE]
[YEARLY_DEATH_PERCENTAGE]

These do what they say on the tin and represent creatures that can concieve fertile offspring but their biology does not combine well. 

The fertility related tags would be decided at the caste level, the [INFERTILE] tag would mean that a particular caste of this hybrid creature cannot produce offspring. 
Logged

Putnam

  • Bay Watcher
  • DAT WIZARD
    • View Profile
Re: Hybridisation: Mixing races.
« Reply #37 on: October 04, 2014, 03:01:42 pm »

That system is O(n2), though; loading the raws would be terrible.

Zanzetkuken The Great

  • Bay Watcher
  • The Wizard Dragon
    • View Profile
Re: Hybridisation: Mixing races.
« Reply #38 on: October 05, 2014, 04:21:28 pm »

That system is O(n2), though; loading the raws would be terrible.

Especially with the larger mods.
Logged
Quote from: Eric Blank
It's Zanzetkuken The Great. He's a goddamn wizard-dragon. He will make it so, and it will forever be.
Quote from: 2016 Election IRC
<DozebomLolumzalis> you filthy god-damn ninja wizard dragon

Putnam

  • Bay Watcher
  • DAT WIZARD
    • View Profile
Re: Hybridisation: Mixing races.
« Reply #39 on: October 05, 2014, 08:24:25 pm »

Fortbent, at one point, had 2016 extra castes only counting the god tier creatures. With that system, those castes alone would require 2033136 operations.

Add that to the 742 castes of vanilla DF and you have 7607943 required operations every time the raws are read.

That's... a bit much.

Dirst

  • Bay Watcher
  • [EASILY_DISTRA
    • View Profile
Re: Hybridisation: Mixing races.
« Reply #40 on: October 05, 2014, 09:55:48 pm »

Fortbent, at one point, had 2016 extra castes only counting the god tier creatures. With that system, those castes alone would require 2033136 operations.

Add that to the 742 castes of vanilla DF and you have 7607943 required operations every time the raws are read.

That's... a bit much.
I think that's perfectly fine as an external tool that generates a creature_hybrid.txt file based on the user's choices.  But not as a vanilla feature or even a DFHack plugin, since those would run on every load.
Logged
Just got back, updating:
(0.42 & 0.43) The Earth Strikes Back! v2.15 - Pay attention...  It's a mine!  It's-a not yours!
(0.42 & 0.43) Appearance Tweaks v1.03 - Tease those hippies about their pointy ears.
(0.42 & 0.43) Accessibility Utility v1.04 - Console tools to navigate the map

GavJ

  • Bay Watcher
    • View Profile
Re: Hybridisation: Mixing races.
« Reply #41 on: October 05, 2014, 10:16:25 pm »

What are you guys talking about with "every time the raws are read?"

You do realize you don't have to read all of the raws every time you read anything from the raws... yes? Notice how he has things in separate text files?

Although I still roll my eyes a bit at hybrids just from a gameplay corniness, as far as coding goes, it is an almost completely trivial issue:
1) Start with current raws
2) If and when a new hybrid is needed from actual events in history, make a new hybrid entry in a separate hybrid file for that need.
3) Only ever go read those files when you need to load up stuff relevant to specific hybrids' unique physiologies (read: not actually very often, certainly not every game load, unless you have hybrids living in your fort).
4) Even when you do load the files, only look up and search for and load the data you need... This is easy to do in multiple different ways. You can make hybrid files standard length and "begin reading at line (9 per hybrid * hybrid #529 = ) 4,761" for the one you want. Or you can have them variable size and have a table of contents file somewhere. Or you can have them each have their own file and just open it up by name for that hybrid when needed. Etc. etc.
5) Depending on how often you expect to be using the data, consider holding it in RAM so you don't have to look it up too often. If only 2 hybrids keep being needed, go ahead and hold them in runtime objects in RAM. If there's 100 of them each needed only rarely and they all have massive files, maybe go ahead and destroy the objects and reload them from *.txt each time.



Saying that you can't have files for each hybrid because it's too many to read each time you need any of it is sort of like saying "English has too many words to be practical, because every time I want to look up the definition of one, I have to read the entire dictionary, and it takes hours!!"
« Last Edit: October 05, 2014, 10:22:08 pm by GavJ »
Logged
Cauliflower Labs – Geologically realistic world generator devblog

Dwarf fortress in 50 words: You start with seven alcoholic, manic-depressive dwarves. You build a fortress in the wilderness where EVERYTHING tries to kill you, including your own dwarves. Usually, your chief imports are immigrants, beer, and optimism. Your chief exports are misery, limestone violins, forest fires, elf tallow soap, and carved kitten bone.

Putnam

  • Bay Watcher
  • DAT WIZARD
    • View Profile
Re: Hybridisation: Mixing races.
« Reply #42 on: October 05, 2014, 10:50:58 pm »

What are you guys talking about with "every time the raws are read?"

You do realize you don't have to read all of the raws every time you read anything from the raws... yes? Notice how he has things in separate text files?

You don't know how the game loads the raws. For one, it completely ignores separate files, so that argument is moot. The game loads all of the raws every time it loads a game, loads the arena or creates a world. This is primarily because file i/o is slow as hell. This is what that tally of creatures you see is; it's reading all of the creatures in the raws. The program keeps them saved as long as they're required, then lets go of them when the game is left.

GavJ

  • Bay Watcher
    • View Profile
Re: Hybridisation: Mixing races.
« Reply #43 on: October 05, 2014, 11:42:52 pm »

Yes so? This is the suggestions forum, things don't have to be done exactly the same way they are done now, or there wouldn't be a suggestions forum.

I agree that if the game can spare enough RAM to load the entire raws all at once and hold them until the application is turned off, then that is ideal, sure. But if we want to introduce features that would introduce larger volumes of raws than can be responsibly held in RAm constantly, then that's not really a reason not to introduce the feature. It just means you need to budget your file reading and be a bit more strategic about it.

It seems unlikely that the speed of file I/O would be a significant problem for hybrids of all things really at all. The game can predict when their data is going to be needed long long ahead of time: creatures are pregnant for months, sieges (which might bring hybrids with them) can be known about by the game engine long ahead of time, etc. It's not like "OH SHIT we need to load this file RIGHT NOW right when it is needed and suffer guaranteed lags!" (although even if you did, it would be like, a second, once every hour or so of gameplay usually, whatever)

Edit: also, every time a baby is born or a siege invades, the game already pauses anyway, so nobody would even notice file io at those critical times even if they all piled in right then.
« Last Edit: October 06, 2014, 12:05:05 am by GavJ »
Logged
Cauliflower Labs – Geologically realistic world generator devblog

Dwarf fortress in 50 words: You start with seven alcoholic, manic-depressive dwarves. You build a fortress in the wilderness where EVERYTHING tries to kill you, including your own dwarves. Usually, your chief imports are immigrants, beer, and optimism. Your chief exports are misery, limestone violins, forest fires, elf tallow soap, and carved kitten bone.

Putnam

  • Bay Watcher
  • DAT WIZARD
    • View Profile
Re: Hybridisation: Mixing races.
« Reply #44 on: October 06, 2014, 12:38:13 am »

The raws are unloaded whenever the save is left, not the game, I wrote it wrong.

Anyway, if you don't load the raws all at once then the file i/o would have to happen way more often, not just for hybrids but basically every time a unit attacks (attacks, materials, tissues are all in the raws), for example. Of course, if you decide to copy all relevant information to the units... you make modding easier, yes, but you also multiply RAM usage by a ridiculous amount. If hybrids are generated at run-time, then they could be generated from the already-loaded raws, so that wouldn't be too problematic.
Pages: 1 2 [3] 4 5 ... 7