StrangeLoopGames / EcoSuggestions

Repo for storing Eco game suggestions, separate from EcoIssues
35 stars 1 forks source link

Soil nutrient usage should be time based instead growth based #220

Open BlazeGuy2 opened 6 years ago

BlazeGuy2 commented 6 years ago

From @Thyriel on March 1, 2018 7:5

Not sure if nutrients / fertilizers system is implemented yet correctly as there was a dev posted on steam 2 weeks ago stating that it doesn't work but people reported it being working. Anyway, i did some tests with nutrient values as i was wondering why someone said they needed to use fertilizers after a few days because of nutrients going low while my fields still had high values after almost 2 weeks of constant farming. This seems especially important as i read somewhere that you will increase most growing times to ~0.8 which reflects the growing times we are using since a while.

To test how nutrients do work i changed wheat maturity time to ~8mins and grew them over 10 times one after another. After these tests there seem to be 2 problems with the current system:

Copied from original issue: StrangeLoopGames/EcoIssues#5261

BlazeGuy2 commented 6 years ago

From @LiaungYip on March 1, 2018 17:56

  1. Nutrients are depleted when plants grow. "Plants consume nutrients as they mature, and return those nutrients to the soil when they die." See v0.7.0.0 change log (relevant excerpt below for convenience.).

  2. I believe that the nutrient layers in the mini-map are only updated every 10 minutes. Therefore it's not surprising that you observed sudden drops over an 8 minute period.

  3. RE tweaks to plant growth times - this is from https://github.com/StrangeLoopGames/Eco/pull/2512 - public change notes below.

From what I've seen playing on 0.7.1.2, the farming and fertilizers system seems to work mostly as intended.

Exception: 10-minute delay between actions like using fertilizer, and being able to see the increased soil nutrients in the mini-map - there's no immediate feedback when fertilizer is used. In my case, I didn't couldn't see any immediate effect, so I applied ten fertilizers to the same spot - resulting in an over-fertilized tile!

image

If anything, this issue could be re-named "Provide more frequent feedback on soil nutrient levels."


From the v0.7.0.0 change log:

  • Plant nutrients and fertilizer have been redesigned and simplified
  • Nutrients are now consumed and produced by the ecosystem in a cycle, instead of being a static capacity-based constraint on the ecosystem
    • Plants consume nutrients as they mature, and return those nutrients to the soil when they die
    • Only half of the nutrients are returned from plants killed or harvested by direct player action
    • Fertilizer adds nutrients to the cycle, thus restoring the ecosystem
    • The nutrient cycle and plant maturity changes support the Cause & Effect UI
  • Plant maturation mechanics are adjusted to be simpler and to work well with the new nutrient behaviour
    • Plants age at a constant rate independently of the properties of the local environment
    • Plants consume more nutrients, and produce proportionally more yield, if they are raised in a nutrient-rich environment
    • Plants are less effective at taking up nutrients if they are in an inhospitable environment (poor temperature or moisture match or high pollution levels) and therefore have lower yields
    • You can see the potential yield of each species in its corresponding PotentialYield layer
  • Plant population growth mechanics are redesigned to be simpler, more directly related to the behaviour of real plants and to work with the new nutrient mechanics
    • Plant reproduction is constrained by nutrient availability
    • The more nutrients are available, the more rapidly they will reproduce, up to a maximum intrinsic reproduction rate.
    • If there are very few nutrients available, plants will slowly start to die; the fewer nutrients, the faster they’ll die, up to a maximum intrinsic death rate.
    • Plants require greater nutrient availability to survive and reproduce if they are raised in an inhospitable * environment (poor temperature or moisture match or high pollution levels)
    • Plant reproduction is constrained by available empty space
    • There are three kinds of empty space - canopy space, shrub space, and fertile ground. Trees consume canopy space and fertile ground, farmable plants the last two, and grasses only occupy fertile ground.
    • The more empty space there is, the more rapidly plants will reproduce, up to a maximum intrinsic growth rate if there is no competition for space
    • In inhospitable environments (poor temperature or moisture match or high pollution levels), plants require extra empty space to survive and reproduce.
    • If more space is consumed than is available - for example, if a farm is planted too densely and the plants are crowding one another - the plants will slowly start to die. The more overcrowded they are, the faster they will die.
    • Only the tightest constraint limits plant reproduction - for example, if there is very little nitrogen available, plants will grow at the same slow rate no matter how much empty space there is.
    • Different species have different requirements for empty space and nutrient availability, different intrinsic growth and death rates, and different temperature, moisture, and pollution tolerances.
    • As a rule of thumb, intrinsic growth and death rates are tuned so that in perfect conditions the plant population in an area will double in 24 hours, and in completely inhospitable conditions the plant population will halve in 24 hours.
    • Plant reproduction supports the Cause & Effect UI
  • Added the world layers: OccupiedFertileGround, OccupiedShrubSpace, and OccupiedCanopySpace, which record the amount of each kind of space that's currently occupied by plants in the area.

Excerpt of public change notes for https://github.com/StrangeLoopGames/Eco/pull/2512 :

Birch growth time reduced from 5 to 4
Cedar growth time reduced from 5 to 4
Tomato growth time reduced from 1 to 0.8
Amanita Mushroom growth time reduced from 1 to 0.7
Crimini Mushroom growth time reduced from 1 to 0.7
Rice growth time reduced from 1 to 0.8

Oak growth time increased from 1 to 6
Fir growth time increased from 1 to 4
Saguaro Cactus growth time increased from 1 to 3
Camas growth time increased from 0.2 to 0.8
Wheat growth time increased from 0.15 to 0.7
Fern growth time increased from 0.2 to 0.6
Huckleberry growth time increased from 0.25 to 0.8
Beet growth time increased from 0.2 to 0.8
Corn growth time increased from 0.15 to 0.8
Fireweed growth time increased from 0.2 to 0.6
Creosote Bush growth time increased from 0.25 to 0.6
Sagebrush growth time increased from 0.25 to 0.6
PricklyPear growth time increased from 0.2 to 0.7
Beans growth time increased from 0.2 to 0.8