MisterE wrote: ↑Wed Nov 25, 2020 23:17
I just took a road trip through Virginia, and seeing the scenery, I thought of some improvements you can add.
[...]
Thank you for your suggests and your inspiration :)
I've been a bit late to answer, but I really wanted to give a clear idea of what is easy to do, or not, as most of these features are things I've already thought about.
1. Offset rivers by 1 node: Should be easy, not 100% sure it will really look good but I should try. Also, for gameplay, it will make river crossing more difficult (which can also be part of the game!)
2. Wind erosion: That's an interesting idea. I currently don't know good modelling equations for wind erosion, I could investigate this but my intuition is that it's going to be harder than river erosion (especially the way these two erosions combine)
3. Underground rivers: would love to have this! But I don't have clear ideas of how this could be done, it's probably very difficult.
4. Springs: should be quite easy to add, good idea! Highland bogs are also a good feature to add for cold flat areas, (not only water springs), but it's more about the biome system. By the way, would be really cool to have a biome system that takes into account rivers, and slopes!
5. Yes I think terrain at very small scale is too smooth, it should not be hard to add some outcrops (basically very irregular noise) at some places. However bare rocks like these are incompatible with the way the mapgen currently works: ground and biome generation are independant.
These scattered rock outcrops are only one of many aspects of karst, with caves, sinkholes, chimneys, cliffs... In an ideally realistic world, all of this should occur together (so basically #2, #5, #6 and maybe #10 of your list).
6. "Strange" geological features: great too, some of these features could be simulated with noises on Lua side (chimneys?), some other I don't really know (sinkholes).
7. Rivers widening in plains: looks really tricky to implement, because currently the grid calculation does not consider river width, and during Lua mapgen, they are expanded to as much 1 cell on each side, so a river can't have more than 2 cells in width (24 nodes by default). Allowing rivers to widen will quickly overshoot this limit. What I can do is implementing this for small rivers that are far from the width limit, and never mind for rivers that are already close to the maximum.
8. Variable rock strength: yes, interesting, the current system allows it with little modification and I think that's in my TODO list. Rock strength parameters are called
K and
m in my code, and for now they are constant, but the erosion code (the
advection function) should be totally able to run with noisy data arrays instead, that could be generated just like the initial terrain. They have to be constant vertically however, so not possible to model superimposed rock layers. But adding horizontal variations and watching how rivers avoid the harder spots will already be interesting.
9. Meanders: Probably very difficult to have clean, regular meanders like this. In nature, meanders are created by very complex processes of sedimentation, they are so complex that researches are currently not able to make them appear in lab experiments. And my model does not include sedimentation, only erosion. I don't know, either, how they could be generated procedurally.
I'm preparing to change the flow simulation algorithm to another that will be faster and may generate a bit more curls in flat areas, but it's unlikely that you will come to this kind of regular meanders.
10. I'm not sure I get the idea, but I think this kind of landscape is also related to karst. Maybe this could be done with some noise twists, not sure. Also, for now a given surface will always generate a river of the same width. It has to be made variable.