I am curious if it can work without lag, if some short-cuts in physics are taken and if only segments are updated which are close to players (30-50m), further away with larger simulation steps and only update player-less planets with a random previous setup, once you re-vist a planet after some time you were away.
River/lakes:
- It etablishes segments with layers. Segments may have a size like 10^3 or be as long as the whole river. It is good have have more segments if the river has high y-differences or small passages.
- Each segment stores how many blocks it contains and this value is responsibe for the number of x/z layers shown (value stored for each layer).
- The number of x/y or y/z blocks which connect two segments and have water only on one side, but air on the other, determinate the output from this / input into next segment.
- Dependent on sun-level/temperature
the river freezes (water is shown as ice, x layers don\'t count to output)
- or area from the topmost layer *0.x is drained by \"sky/clouds\"
[*]less than a couple of blocks - or one layer - and single blocks are distributed equally / semi-randomly over the lowest layers and calculated as single entities once a player gets close.
Sky/Coulds
- Store water
- If temperature is lower than water*0.x, rain starts
- rain fills all lakes equal to their surface area (topmost active layer) if the whole planet has rain.
- if single clouds are able to produce rain, they may only calculate once for every 32*32 or 20*20 areas (38 or 100 parts, if the cloud is 1/4 of a planet) beneath them, and just repeat the results from initial calculations most of the time.
We could have separate calculations for liquid-blocks and liquid-block-groups.