TerraFirmaCraft

TerraFirmaCraft

2M Downloads

Fix default animal spawn rarity

Wahazar opened this issue ยท 7 comments

commented

Current animal spawn density is even higher than vanilla and way too much compared to old TFC.
Rarity should be increased by the factor at least about 100 (which means 10x less animals per square, because rarity is counted per 50 chunks, not per surface).

In config/TerraFirmaCraft - Animals.cfg is
I:rarity=50
Should be
I:rarity=5000

It will be still higher density than TFC classic, but it is justified by less amount of meat.

  • TFC Version: MC1.12.2-1.3.2.147.jar
commented

this is something i would like to look at after finishing current new animals project

commented

A first pass has been done, moving most livestock mods to rarity 250, most predators and wild animals to 150 / 200. This was intentionally an incremental change from the values discussed above. Feedback welcome if this is too much / too little.

commented

This seems to be in a good spot at the moment.

commented

How this works:

  • Rarity is in factor of chunks, so 1 / Rarity chunks will spawn a group of animals (one or more individuals) on generation.
  • Since chunks are placed in a grid, you have to travel sqrt(rarity) chunks to find a group.

Then, comparisons:

  • Rarity 50 = ~7 chunks (112 blocks) to find a group of that specific animal
  • Rarity 5000 = ~70 chunks (1120 blocks) to find a group

Now comes a question, 1000 blocks per specific animal is worth it? Don't forget that not all groups are good enough alone, ie: old, one individual alone, only females, etc.

Imo, instead of rarity 5000 that you propose, this:

  • Rarity 625 = 25 chunks (400 blocks)
commented

As tempting as it is to represent rarity as "side length of the square of which on average one group will spawn", I think this is less useful than "animals / area". Because the player explores new blocks linearly with total area, not linearly with side length. For instance this,

Rarity 5000 = ~70 chunks (1120 blocks) to find a group

is absolutely misleading. Here's an example:

  • Say the player has a "sight radius" of ~3 chunks / 48 blocks (not unreasonable in a forested or hilly area)
  • Minecraft walking speed is 4.3 m/s (which for argument's sake you explore at).
  • For simplicity sake let's say you walk in a straight line and will see any animals in your sight radius. Then your stat for "area explored / sec" would be ~ 412 m^2 / s, or 1.6 chunks / s.

Now, assuming animals are uniformly distributed per chunks, taking this as the expected value of a geometric random variable, this results in E[X] = (1 / 1.6) * p, where p = 1 / [Rarity]

  • Rarity 50 = 31 seconds to find an animal (or 133 m traveled, vs.112 m side length).
  • Rarity 625 = 387 seconds to find an animal (or 1,664 m traveled vs. 400 m side length).
  • Rarity 5000 = 3,100 seconds to find an animal (or 13,330 m traveled vs. 1120 m side length).
commented

I checked rarity=5000 and found a pack of wolfes or pack of pheasants easily - so it is not an issue to find male/female - seems that rarity is for pack, not for single animal.

commented

found a pack of wolfes or pack of pheasants

You know that both are in the list of "respawns" right?

I described how they work on issue #1384