More Sophisticated Water Evaporation
In order to solve the "Water Dump in a hole" method of irrigation (which I can only assume is an unwanted feature, considering the existence of the Irrigation Tower), water evaporation could be proportional to the number of squares the water greens, divided by the number of water squares each green square sees. So each green square would have a number associated with it, G, equal to 1 divided by the number of water squares in range, and each water square would have an evaporation proportional to the sum of all Gs in its range. You can think of this as more of a loss due to groundwater seepage, rather than evaporation, so the water disappears based on its effect on the soil (maybe as well as its effect on the air). Large lakes can only seep into the soil along their perimeter, while they can evaporate into the air from their entire surface.
Comments: 4
-
03 Oct, '21
ZorbyI like this idea, but I would change the formula to make the calculation simpler (and more intuitive, IMO). My idea is that water would evaporate by (number of adjacent (not counting underlying) ground blocks (don't have to be green)) * 0.1 per day (example: a water block with one adjacent ground block would evaporate by 0.1 (plus already implemented evaporation) per day). In the endgame, you could "battle" this by surrounding your reservoirs with levees, to keep the water from seeping into the ground.
-
04 Jan, '22
sedna22I strongly second this. It would make evaporation feel more real, and prevent single-tile irrigation feeling like an exploit.
My implementation suggestion: regularly (once per day?) go through all game-tiles, and if a tile is green, find the closest water tile and remove a certain amount of water from it (as ground seepage). To spread out the load on the game engine, the tiles can be processed in a randomized pattern. If this pattern is strictly based on time-of-day (e.g tick == hashed tile coordinates modulo x), no additional state is necessary. -
12 Jan, '22
benthevaporeonwas about to suggest this again
one thing i would want to add is that if they do this, they should also lower the base evaporation rate to make the rivers and lake in the recommended map still lose water at roughly the same rate
that way it makes it so deep holes in the ground hold water for a long time(once they are not hydrating ground, and also makes it so the one square water dump tower uses up more water, making it feel like a real irrigation system not a cheat
although i think is should need 9 to 12 water a day to keep up, not 48 like the building -
03 Feb, '22
BEAVERTRON_PRIMEI suggest an alternative of implementing this: the other way around: Each grass tile consumes a total volume of water from a source within range. So each tile of grass consumes surrounding water, rather than each block of water loses water based on the amount of green tiles in range (as this allows duplicate consumption if a green tile is in range of multiple tiles of water)
If continuous loops over water tiles in range of a green tile are are computationally heavy, consider making it chance based, to become a realistic representation of the desired behaviour. (e.g. select one random tile of water within range and substract the full volume per timestep, and let waterflow balance out)
I think the devs did quite a good job balancing water already so far, but thats not the point here. This thread is more about mechanics rather than balancing.