In this suggestion, I'll expand on the idea of simulating an underground water table in Minecraft, how it could be done and what it's effects would be.
To start with, in real life, the water table is a conceptual description of the surface described as the point underground where the dirt becomes saturated with water.
When the ground gets wet, the water soaks into it, and is generally forgotten by the surface-dwellers. But water continues to exist, in there, and soaks into the dirt slowly, going deeper until it reaches a point where all the space between the dirt is filled with water. That is, it hits the water table.
The effects of the existence of a water table include being able to build a Well, where by simply drilling into the ground and setting up bricks to keep the mud from collapsing, the water falls out of the mud walls and collects in a pool that can be accessed by a bucket on a rope.
Another effect is that if the ground dips below the surrounding ground significantly, water pools on the surface, resulting in lakes, rivers, and springs.
As far as this applies to Minecraft, my proposition is that the depth of the water table could be calculated fairly easily by examining the Average Height of the surrounding surface terrain, say, 50 cubes in each direction, and subtracting by a few meters. so in a hilly landscape, the water table level at any given x/y coordinate would mimic the hills, but in a very blurry, subdued sort of way.
The water table would be used only to show if water leaks out of (or into) permeable materials; it would have no effect on solid rock. This idea works particularly well with the Flow Dynamics I described here: viewtopic.php?f=1&t=10325
How deep the function subtracts after the average is taken could be easily changed depending on the type of terrain (desert would have a much lower table than wetlands) and proximity to the ocean. This could even allow for dry land to exist below sea level (Like, for example, Death Valley, and New Orleans), if it's significantly away from the ocean its self.
And with terrain as varied as minecraft's, it'd be difficult to have a single water table that applies - and affects the ground - everywhere. Even if there were 5 tiles of dirt, that would mean any hill higher than five tiles would just lose the water entirely, and you'd have to take into account any gradual sloping of the ground, lest a high water table here = a biblical flood somewhere generally lower.
And with terrain as varied as minecraft's, it'd be difficult to have a single water table that applies - and affects the ground - everywhere. Even if there were 5 tiles of dirt, that would mean any hill higher than five tiles would just lose the water entirely, and you'd have to take into account any gradual sloping of the ground, lest a high water table here = a biblical flood somewhere generally lower.
It's worth looking into.
The varried terrain is why I suggested the water table exist as an average of the surrounding blocks, not all the blocks at once. Any hill higher than five tiles would lose water, yes, unless it was wide enough to raise the local average. This, I think, is consistant with reality. And gradual sloping of the ground would be met with the same gradual sloping of a water table.
Quote from Trippledot »
How would this work with caves, and flooding, wont the map have to have more dirt if this is implemented, not just 1-5 layers?
***
i dont see how this could be of any use other than farming, and it poses more problems than it solves.
for this, water tables wouldn't be considered for non-permeable substances like stone, which most caves are made of. If a cave has a ceiling of dirt, then maybe it'd allow water to leak out, yes. We all know how fun it is to accidently stumble across lakes while mining!
Being able to farm somewhere other than a beach already makes it seem worthwhile to me, the problems strike me as fun ones, and this allows for a model for rivers and lakes that can actually move without being artificial.
I suppose another option is to do away with the complex water behaviors entirely, going with the slightly unusual model previously proposed on the development blog, and simply have lakes be generated in the game only where the water table would meet the surface anyway, and pretend that it behaves properly.
That doesn't allow for farms on any sort of hills, though. your farm is still at sea level, still basically a beach. what if we end up with varried terrain, with more than just islands, but mountains and stuff, too? There could be random pools, there could also be water table simulation.
There should be inland water, but id assume it would be in low points in the map.
well, my dreams of well-digging will never be realized, I suppose, but ah well. Life moves on. Seemed like it could be a fun dynamic, that was non-resource heavy, and realistic.
The water table is brilliant, I can think of a number of mechanisms that would make it work, and it would allow for inland bodies of water, as well as rivers and actual aquifers and wells. You have my support, sir.
Rollback Post to RevisionRollBack
This may be a fad, but I love dragons, so why the heck not?
I doubt we really want water tables. Sure, it sounds cool, but have you ever actually USED a post hole digger when the water table was close to the surface?
I have.
After 2-3 feet, it gets moist. Much more after that, it dissolves into mucky slop. So goodbye digging through dirt easily, we'd have to line everything with stone, or it would dissolve into mud and/or flood anything we dig down thru dirt.
Plus: the server would also have to model an INSANE number of chunk updates near each player to keep water table data current and accurate.
... Or, it would just spawn water in holes at random (effectively). That could work too, I suppose. :/
I doubt we really want water tables. Sure, it sounds cool, but have you ever actually USED a post hole digger when the water table was close to the surface?
I have.
After 2-3 feet, it gets moist. Much more after that, it dissolves into mucky slop. So goodbye digging through dirt easily, we'd have to line everything with stone, or it would dissolve into mud and/or flood anything we dig down thru dirt.
Plus: the server would also have to model an INSANE number of chunk updates near each player to keep water table data current and accurate.
... Or, it would just spawn water in holes at random (effectively). That could work too, I suppose. :/
You bring up some valid points. To start with, we wouldn't have to go super-realistic on this. Sure, dirt turns to mud if you dig below the water table in reality, but in minecraft, it could go along smoothly and then maybe occasionally spawn a block of water. Something to move/remove water would make this a mere variation from the monotony of digging shafts, rather than an actual inconvenience.
As for computational difficulties, I'm not so sure. The game could place water/flowing water tiles where appropriate on pre-render, and then use the rules I've defined for any alterations (water flowing away from saturated dirt does NOT act like finite water) for landscape changes, changes made can be calculated for on the fly, once the hole is dug, perhaps. Or water table data could be stored as a bitmap in memory, and handled that way, making player changes not actually have any effect (to be realistic, this would be true until it rains, and then the water table would have to be re-calculated)
I think it can be done nicely without being memory intensive. That is perhaps for the programmer to decide, though.
I doubt we really want water tables. Sure, it sounds cool, but have you ever actually USED a post hole digger when the water table was close to the surface?
I have.
After 2-3 feet, it gets moist. Much more after that, it dissolves into mucky slop. So goodbye digging through dirt easily, we'd have to line everything with stone, or it would dissolve into mud and/or flood anything we dig down thru dirt.
Plus: the server would also have to model an INSANE number of chunk updates near each player to keep water table data current and accurate.
... Or, it would just spawn water in holes at random (effectively). That could work too, I suppose. :/
I think as long as the water stay level with the surface and below it'd be fine.
What I would like to see is Pipe, something that has to have water flow into it, like a block that makes a pipe, that you can run and it magically carriers water wherever it's end is. There wouldn't be water in the pipe, but wherever it leads to an empty area, it would do the same thing water does now, fill up the area.
To start with, in real life, the water table is a conceptual description of the surface described as the point underground where the dirt becomes saturated with water.
When the ground gets wet, the water soaks into it, and is generally forgotten by the surface-dwellers. But water continues to exist, in there, and soaks into the dirt slowly, going deeper until it reaches a point where all the space between the dirt is filled with water. That is, it hits the water table.
The effects of the existence of a water table include being able to build a Well, where by simply drilling into the ground and setting up bricks to keep the mud from collapsing, the water falls out of the mud walls and collects in a pool that can be accessed by a bucket on a rope.
Another effect is that if the ground dips below the surrounding ground significantly, water pools on the surface, resulting in lakes, rivers, and springs.
As far as this applies to Minecraft, my proposition is that the depth of the water table could be calculated fairly easily by examining the Average Height of the surrounding surface terrain, say, 50 cubes in each direction, and subtracting by a few meters. so in a hilly landscape, the water table level at any given x/y coordinate would mimic the hills, but in a very blurry, subdued sort of way.
The water table would be used only to show if water leaks out of (or into) permeable materials; it would have no effect on solid rock. This idea works particularly well with the Flow Dynamics I described here: viewtopic.php?f=1&t=10325
How deep the function subtracts after the average is taken could be easily changed depending on the type of terrain (desert would have a much lower table than wetlands) and proximity to the ocean. This could even allow for dry land to exist below sea level (Like, for example, Death Valley, and New Orleans), if it's significantly away from the ocean its self.
I am here for you, Don't be afraid to send me a message.
It's worth looking into.
i dont see how this could be of any use other than farming, and it poses more problems than it solves.
I am here for you, Don't be afraid to send me a message.
This would be an interesting feature to add to the "features", but not everywhere.
This mirrors my opinion on this. Only we DON'T have pumps in this game.
Yet! :biggrin.gif:
The varried terrain is why I suggested the water table exist as an average of the surrounding blocks, not all the blocks at once. Any hill higher than five tiles would lose water, yes, unless it was wide enough to raise the local average. This, I think, is consistant with reality. And gradual sloping of the ground would be met with the same gradual sloping of a water table.
for this, water tables wouldn't be considered for non-permeable substances like stone, which most caves are made of. If a cave has a ceiling of dirt, then maybe it'd allow water to leak out, yes. We all know how fun it is to accidently stumble across lakes while mining!
Being able to farm somewhere other than a beach already makes it seem worthwhile to me, the problems strike me as fun ones, and this allows for a model for rivers and lakes that can actually move without being artificial.
I suppose another option is to do away with the complex water behaviors entirely, going with the slightly unusual model previously proposed on the development blog, and simply have lakes be generated in the game only where the water table would meet the surface anyway, and pretend that it behaves properly.
I am here for you, Don't be afraid to send me a message.
I am here for you, Don't be afraid to send me a message.
well, my dreams of well-digging will never be realized, I suppose, but ah well. Life moves on. Seemed like it could be a fun dynamic, that was non-resource heavy, and realistic.
I am here for you, Don't be afraid to send me a message.
I am here for you, Don't be afraid to send me a message.
The water table is brilliant, I can think of a number of mechanisms that would make it work, and it would allow for inland bodies of water, as well as rivers and actual aquifers and wells. You have my support, sir.
I have.
After 2-3 feet, it gets moist. Much more after that, it dissolves into mucky slop. So goodbye digging through dirt easily, we'd have to line everything with stone, or it would dissolve into mud and/or flood anything we dig down thru dirt.
Plus: the server would also have to model an INSANE number of chunk updates near each player to keep water table data current and accurate.
... Or, it would just spawn water in holes at random (effectively). That could work too, I suppose. :/
You bring up some valid points. To start with, we wouldn't have to go super-realistic on this. Sure, dirt turns to mud if you dig below the water table in reality, but in minecraft, it could go along smoothly and then maybe occasionally spawn a block of water. Something to move/remove water would make this a mere variation from the monotony of digging shafts, rather than an actual inconvenience.
As for computational difficulties, I'm not so sure. The game could place water/flowing water tiles where appropriate on pre-render, and then use the rules I've defined for any alterations (water flowing away from saturated dirt does NOT act like finite water) for landscape changes, changes made can be calculated for on the fly, once the hole is dug, perhaps. Or water table data could be stored as a bitmap in memory, and handled that way, making player changes not actually have any effect (to be realistic, this would be true until it rains, and then the water table would have to be re-calculated)
I think it can be done nicely without being memory intensive. That is perhaps for the programmer to decide, though.
I think as long as the water stay level with the surface and below it'd be fine.
What I would like to see is Pipe, something that has to have water flow into it, like a block that makes a pipe, that you can run and it magically carriers water wherever it's end is. There wouldn't be water in the pipe, but wherever it leads to an empty area, it would do the same thing water does now, fill up the area.