I have mentioned this elsewhere, and have already sent this to notch, but I though getting more people's inputs couldn't hurt. There is a summary at the end, if you don't care about the nitty-gritty details.
First,
Volumized water
This water behaves more realistically. A block of water has a given volume, from 0% to 100% (or whatever increments you feel like). It checks all squares around it. An empty square is combined with the square below it for this purpose. The block(s) with the lowest water level in them are chosen for the water to flow into. It transfers volume such that it and the blocks in question have an equal water level, emptying the block into a lower, adjacent block if necessary.
advantages
More realistic
Works great for static pools
Buckets make more sense
Will flow through channels
Works with pipes very nicely
Fast
Memory non-intensive
Easy to code
its local, which is important for infdev
disadvantages
Doesn't make flowing water very well
No Waterfalls
So, to make up for that
Hybrid system
The current water system works great...for waterfalls. Its passable for rivers. It behaves very oddly as a pool, and waterfalls end oddly. It has the advantage of being non-flooding, and easily removed.
So, by combining, the current, flowing water with the volumized system, you should be able to get the best of both worlds.
Add in a few rules to the systems:
Water defaults to volumized.
If a volumized water flows over an edge, and it has enough water adjacent to it, instead of flowing volumetrically, it converts to the flowing water. This means that a large enough pool of water acts like a spring block does now, and forms waterfalls/rivers.
Flowing water that reaches volumized water from the side is turned into volumized water.
Flowing water flows onto a volumized water tile from above converts that tile into an "Everfull" tile, which has its volume kept at full by the waterfall, and hence maintains the local pool.
In addition, flowing water that reaches the end of its "flow" without dropping doesn't sit there like an ooze, it converts to volumized water. The flowing water around it will then convert to volumized as well, and eventually convert the block that the waterfall is flowing into, so it becomes an everfull block.
It might also be possible to have it so that if a flowing water is contained completly by walls, it converts to volumetric and fills the area, then a new layer spreads on top. This would allow deeper pool to spontaneosuly form.
This means that a waterfall will fill a pool where it ends, instead of oozing. If a sutiable depression is there, it forms a deepr pool. This pool may act as the source for another waterfall or river.
implications
The biggest fear from a water system seems to be flooding, either through malice, or accident.
If you dig into a pool of water, there are two cases. It could be a small pool, in which case only a couple of blocks of water get into your mine, which is not a big deal. Or it could be a larger pool or lake, capable of spawning flowing water. If this is the case, it will flow, and form a pool, and possibly continue flowing and form more pools. This cannot flood your mine completely, or, if your mine happens to be designed in such a way that it is completely flood-able, it would be a very slow process. Accidentally mining into water is not a disaster, since any flooding that does occur will take time. Simply placing a block to plug the leak will mean only a small amount of water gets into your mine, which is easily dealt with.
If someone wants to maliciously flood your mine, they would meet with very limited success. Simply blocking the source will cause most of the water to drain down to the lowest levels of the mine, leaving a few scattered pools at worse. It is nearly impossible to create a drowning situation by doing this.
Any flooding-prevention methods, be it torch and sand airlocks, or simply making sure the mine goes up a block every once in a while, would work wonderfully to stop flooding. While flooding-prone mine designs are possible, the effect would still be extremely limited, and relatively easy to repair. The natural design of mines should prove to be flooding resistant.
Flooding a valley would be impossible, and any steps to try would be very slow. Natural variation in terrain would keep the water from spreading too far, and blocking the source of the waterfall will stop the spread. Absolute worst case, you get a thin layer of water over everything. Evaporation would be easy to implement, and act believably, with this system, so any large-scale spills would be self-correcting if the source is removed.
Some modifications and tweaks of the system may be needed to get the desired behavior, but it should feel much more waterlike than the current water, while retaining many of its benefits.
Summary
Water has a specific volume when in pools. If a large enough pool is broken open, it turns into the current flowing water. When that water stops flowing, it becomes the volumized water again.
Will this include shallow water or will it all be full blocks only + the flowing water set? This is a very good suggestion for water, seemingly without adding any undue stress on the current system. This system would go nicely with a part dirt part water block, fabricating shallow pools without needing the water to be split up into 8ths or 5ths or what have you. But then again, this system damn good enough without anything extra. Far better than the current system no doubt.
The volumized water does use non-full blocks. Adding buckets to a pool will gradually raise the water level.
Edit: Another benefit of this, is that some types of liquids can be purely volumized, and never form waterfalls. Oil would work well with this, since you don't need a oil-fall, and a limited volume of oil works better for a resource like that. It would also mean that a pipe to harvest oil would work very well.
I think Notch will have to implement this type of liquid system because an entire spring per bucket is a bit much, don't you think? This system makes everything a bit more realistic since it basically just makes springs require much more water, yet it still lets water pile up.
Technically you could have water falls. If notch adds a way to automatically lift water (gears, motors, dunno), then you could have a system of pipes that takes water from below, brings it up, and drops it back into the pool of water.
I like the way it is now. It treats water like a tool, an object, a building material. I can make simple, easily controlled fountains with the current system, and I don't need to worry much about flow, or pumps, or even gravity really. I can build all kinds of functional things which are otherwise impossible with more realistic water flow.
Rollback Post to RevisionRollBack
This may be a fad, but I love dragons, so why the heck not?
I find it eminently frustrating to do simple things with the current water. I want to fill a moat, and instead of dumping a bunch of water in, I have to place a million spring blocks. You can't dig an irrigation ditch because it simply oozes in a few squares. Making a pool is unnecessarily complicated.
Actually, it's really easy. Make a well next to your work space. That's a cross-shaped hole in the ground with springs in four corners. They'll eternally fill the center space, which you can eternally empty. Takes about fifteen seconds to fill any large pool with water once you've got that. Especially if you have more than one bucket.
Rollback Post to RevisionRollBack
This may be a fad, but I love dragons, so why the heck not?
First,
Volumized water
This water behaves more realistically. A block of water has a given volume, from 0% to 100% (or whatever increments you feel like). It checks all squares around it. An empty square is combined with the square below it for this purpose. The block(s) with the lowest water level in them are chosen for the water to flow into. It transfers volume such that it and the blocks in question have an equal water level, emptying the block into a lower, adjacent block if necessary.
advantages
More realistic
Works great for static pools
Buckets make more sense
Will flow through channels
Works with pipes very nicely
Fast
Memory non-intensive
Easy to code
its local, which is important for infdev
disadvantages
Doesn't make flowing water very well
No Waterfalls
So, to make up for that
Hybrid system
The current water system works great...for waterfalls. Its passable for rivers. It behaves very oddly as a pool, and waterfalls end oddly. It has the advantage of being non-flooding, and easily removed.
So, by combining, the current, flowing water with the volumized system, you should be able to get the best of both worlds.
Add in a few rules to the systems:
Water defaults to volumized.
If a volumized water flows over an edge, and it has enough water adjacent to it, instead of flowing volumetrically, it converts to the flowing water. This means that a large enough pool of water acts like a spring block does now, and forms waterfalls/rivers.
Flowing water that reaches volumized water from the side is turned into volumized water.
Flowing water flows onto a volumized water tile from above converts that tile into an "Everfull" tile, which has its volume kept at full by the waterfall, and hence maintains the local pool.
In addition, flowing water that reaches the end of its "flow" without dropping doesn't sit there like an ooze, it converts to volumized water. The flowing water around it will then convert to volumized as well, and eventually convert the block that the waterfall is flowing into, so it becomes an everfull block.
It might also be possible to have it so that if a flowing water is contained completly by walls, it converts to volumetric and fills the area, then a new layer spreads on top. This would allow deeper pool to spontaneosuly form.
This means that a waterfall will fill a pool where it ends, instead of oozing. If a sutiable depression is there, it forms a deepr pool. This pool may act as the source for another waterfall or river.
implications
The biggest fear from a water system seems to be flooding, either through malice, or accident.
If you dig into a pool of water, there are two cases. It could be a small pool, in which case only a couple of blocks of water get into your mine, which is not a big deal. Or it could be a larger pool or lake, capable of spawning flowing water. If this is the case, it will flow, and form a pool, and possibly continue flowing and form more pools. This cannot flood your mine completely, or, if your mine happens to be designed in such a way that it is completely flood-able, it would be a very slow process. Accidentally mining into water is not a disaster, since any flooding that does occur will take time. Simply placing a block to plug the leak will mean only a small amount of water gets into your mine, which is easily dealt with.
If someone wants to maliciously flood your mine, they would meet with very limited success. Simply blocking the source will cause most of the water to drain down to the lowest levels of the mine, leaving a few scattered pools at worse. It is nearly impossible to create a drowning situation by doing this.
Any flooding-prevention methods, be it torch and sand airlocks, or simply making sure the mine goes up a block every once in a while, would work wonderfully to stop flooding. While flooding-prone mine designs are possible, the effect would still be extremely limited, and relatively easy to repair. The natural design of mines should prove to be flooding resistant.
Flooding a valley would be impossible, and any steps to try would be very slow. Natural variation in terrain would keep the water from spreading too far, and blocking the source of the waterfall will stop the spread. Absolute worst case, you get a thin layer of water over everything. Evaporation would be easy to implement, and act believably, with this system, so any large-scale spills would be self-correcting if the source is removed.
Some modifications and tweaks of the system may be needed to get the desired behavior, but it should feel much more waterlike than the current water, while retaining many of its benefits.
Summary
Water has a specific volume when in pools. If a large enough pool is broken open, it turns into the current flowing water. When that water stops flowing, it becomes the volumized water again.
Edit: Another benefit of this, is that some types of liquids can be purely volumized, and never form waterfalls. Oil would work well with this, since you don't need a oil-fall, and a limited volume of oil works better for a resource like that. It would also mean that a pipe to harvest oil would work very well.
This system will generate waterfalls from large enough bodies of water, without needing any artificial return mechanism.
I like the way it is now. It treats water like a tool, an object, a building material. I can make simple, easily controlled fountains with the current system, and I don't need to worry much about flow, or pumps, or even gravity really. I can build all kinds of functional things which are otherwise impossible with more realistic water flow.