Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: Prevolution, defining creatures in regions  (Read 1172 times)

Xazo-Tak

  • Bay Watcher
  • *Camping forever*
    • View Profile
Prevolution, defining creatures in regions
« on: November 09, 2013, 12:36:01 am »

A feature intended to allow the game to contain a wider variety of creatures, while still allowing each species to make up a significant proportion of a population.

A prevolution period is added to worldgen, which takes place after terrain generation and before megabeast generation.

Creature populations are world tile based.
A species can spread to a tile if that species does not already exist in the biome.
On spread, the destination tile is given a population value of 1 for that species.
Spread+Evolution combinations can occur.

4 new worldgen settings are added:
Spread distance, 0-16. Number of world tiles at which spread can occur. Defaults to 16. Lower this to increase contrast in ecosystems, especially for islands.
Spread rate, percentage chance per iteration of creature spread occuring from a bordering tile. The probability is ratex0.6^distanceinworldtiles, so island transfers are uncommon. Calculated for all nearby tiles. Defaults to 10.
Prevolution time. The number of iterations creatures get to evolve. Defaults to 10000, min 100, max 100,000.
Evolution delay, 1-10000. Default is 1000. The number of years between evolution iterations. So 1 if you want some really weird gameplay, 10000 if you want it stable.


5 new creature tags are added:


[DESCENDANT]
Defines what this evolves into and how quickly. Multiple tags can be used.
Arguments:
The name of a creature.
The percentage chance of evolution occuring during per iteration. Can only evolve via spread if the biome is inappropriate for the descendant.
As an example, Sperm Whale would have something like.
[DESCENDANT:GIANT_SPERM_WHALE:1.5]


[SPONTANEOUS]
Arguments:
Percentage chance of being added to a world tile of its biome iteration.
E.g [SPONTANEOUS:3]


[GENESIS]
Arguments:
Priority, this tag will only act if there are no creatures with a higher value for this argument that are able to be added to the world.
Percentage chance of skip to lower priority. So if you're generating a world with all biomes, a creature with 5 as the second argument has a 5% chance of calling for next priority instead.

A creature with this tag will appear in all suitable world tiles. If none exist, a creature with a lower priority will appear in all suitable world tiles.
If two creatures have the same priority, are possible to add, and that priority is called for, then it will ignore all but one creature, chosen at unweighted random.
E.g [GENESIS:10:5] for aquatic microbial life, the first thing you'd expect life from. Priority 9 has a 5% chance of occurring randomly instead, or 100% if there are no oceans.

[NEMESIS]
Arguments:
Creature that is a nemesis to this creature
Percentage chance of decreasing population value by 1 per iteration, this is multiplied by the population value of the nemesis divided by 6.

If, say, lions and zebras are present in the same region, and lions have a population value of 4, then there is a 2.4% chance of zebras becoming less common in that region every iteration.
A common use of nemesis tags would be to remove creatures that have had superior creatures evolve from them, such as feathered dinosaurs rapidly becoming extinct if birds evolve.
E.g [NEMESIS:LION:3]
Multiple tags can be used.

[BENEFACTOR]
The same as nemesis, except this increases the population.
E.g [BENEFACTOR:ZEBRA:2]
Multiple tags can be used.

[GRAVITATE]
Arguments:
What the population value gravitates to. Defaults to 6.
Percentage chance of changing by 1 towards said value per iteration. Not sure what this should default to.
Cap, what the population value cannot exceed.
For creatures dependent on a certain species, this might be something like 0:50:7, but that is countered by a benefactor of 80.

Included in the creature raws for saved worlds is an array of the population values.
So for a theoretical 5x5 island world, it might look like:
[0,0,0,0,0]
[0,4,5,4,0]
[0,4,0,5,0]
[0,4,5,4,0]
[0,0,0,0,0]

Although that might be a bit obnoxiously large for 256x worlds.

Population values are logarithmic multipliers for occurence rates of creatures, ranging from 0-9.
9 = 8x more of this creature than normal
8 = 4x
7 = 2x
6 = 1x
5 = 0.5x
4 = 0.25x
3 = 0.125x
2 = 0.0625x
1 = 0.03125x

Dwarves, Humans and Elves are not evolved, just magically created.
However, other races might be.
Slithzerikai from lizards or Nephilim from cats anyone?

5 things I haven't figured out is probabilities for Spread+Evolution, and how this would work with megabeasts, savagery, inland water bodies/flows and underground creatures.
« Last Edit: November 09, 2013, 04:51:24 pm by Xazo-Tak »
Logged
How to have recursive Fun:
Have Fun
Reclaim fort
Destroy your main graveyard with a cave-in

Sergarr

  • Bay Watcher
  • (9) airheaded baka (9)
    • View Profile
Re: Prevolution, defining creatures in regions
« Reply #1 on: November 09, 2013, 07:50:16 am »

It would be interesting if you could make a circular evolution i.e. A => B => C => A.
However, I don't think DF should start the evolution from microorganisms. Personally I think that DF evolution is magical in nature, so like various natural beasts evolve under natural land magic, slowly aquiring it's traits, linked to biome's [SPHERE] tag.
Logged
._.

Xazo-Tak

  • Bay Watcher
  • *Camping forever*
    • View Profile
Re: Prevolution, defining creatures in regions
« Reply #2 on: November 09, 2013, 04:45:07 pm »

It would be interesting if you could make a circular evolution i.e. A => B => C => A.
However, I don't think DF should start the evolution from microorganisms. Personally I think that DF evolution is magical in nature, so like various natural beasts evolve under natural land magic, slowly aquiring it's traits, linked to biome's [SPHERE] tag.
You make a good point, but my reason for a microorganism basis is for more reliable evolution, and also making the evolution trees less confusing.
And yes, circular evolution is entirely possible.
Logged
How to have recursive Fun:
Have Fun
Reclaim fort
Destroy your main graveyard with a cave-in

thgntlmnfrmtrlfmdr

  • Bay Watcher
    • View Profile
Re: Prevolution, defining creatures in regions
« Reply #3 on: November 17, 2013, 04:02:30 pm »

Oh man I hope Toady adds this. Would be so awesome.

Anything that makes DF more simulationy or adds emergence and variability is great.
Logged
Quote
Sid Meier's Tarn Adam's Dwarf Fortress: Civilization
Armok : Total (D)War(f)
Urista Universalis

Xazo-Tak

  • Bay Watcher
  • *Camping forever*
    • View Profile
Re: Prevolution, defining creatures in regions
« Reply #4 on: November 18, 2013, 02:48:22 am »

Oh man I hope Toady adds this. Would be so awesome.

Anything that makes DF more simulationy or adds emergence and variability is great.
Well, that IS half the point of Dwarf Fortress.
The other half is eternal pain.
Logged
How to have recursive Fun:
Have Fun
Reclaim fort
Destroy your main graveyard with a cave-in