Inactive Real Liquids

CapsE

New Member
I already read a lot about liquids in this forum so I just wanted to make sure that you are aware of the fact that I love to play with liquids in MineCraft and that I hate the liquid system just as much :D

Please try to invent a real liquid physic! I would suggest to create lakes and seas first without water and fill them afterwards so that a liquid is not even a "block" in the classic MineCraft style but I have no idea if this is possible.

The negative side of real physics would be that if you empty a bucket of water there wouldn't happen much in the game aside from some grass getting wet. So we would need something like a spring or a well instead of just a bucket of water but I think that might be a good thing after all.
 

Nym Traveel

Active Member
Contributor
Art
World
I totally agree that this would be awesome!
For example, I really miss flooded caves in MC, this would bump Terasology a good piece ahead of all the other voxel games. Trickling water would be hard to balance ofc imagine your ocean to be dried out from one day to the other :D
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
In short: Yep!

In long: It is a sophisticated system but one I'd like to see us approach with a couple volunteers. Dwarf Fortress has a nice system to emulate, tho it has a fair advantage in being 2D. And yeah, there are some other threads on the topic :)
 

Kai Kratz

Witch Doctor
Contributor
Architecture
Logistics
In short: Yep!

In long: It is a sophisticated system but one I'd like to see us approach with a couple volunteers. Dwarf Fortress has a nice system to emulate, tho it has a fair advantage in being 2D. And yeah, there are some other threads on the topic :)
Dwarf Fortress is not 2D, it is a 3D cellular automaton, something TS is not. For anyone interested in DFs water simulation: Gamasutra

To give you an idea why water is hard in an infinite world ask yourself the following: If i don't know all water sources how do i know that the piece of soil I'm standing on is not in a river when I load the next chunk? Infinity is a bitch :trollestia:
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
I meant 2D as far as rendering the water, I should've clarified that :D

Yeah, infinite water is a danger, we don't want every world to be Water World.
 

Kai Kratz

Witch Doctor
Contributor
Architecture
Logistics
I meant 2D as far as rendering the water, I should've clarified that :D

Yeah, infinite water is a danger, we don't want every world to be Water World.
Well it is more than that: If i do not heavily constrain my system you need to know every water source in the world to tell whats dry and whats not. Pretty much the Halting Problem in disguise. Said that, I am confident that we can fake something quite good given some time. And I mean months not weeks.
 

Immortius

Lead Software Architect
Contributor
Architecture
GUI
I would like to see a "fake" water implementation to start with, simple because it is a known and tenable solution. Then experimentation in more interesting water can be started.

Some thoughts: perhaps a real liquid system would start with the overall world generation, building a simple world model that knows about water bodies, rivers, etc. As chunks are generated, they use the data in the model and then are plugged into the model. Changes to the chunks would be pushed through the generated chunks (potentially loading them if not available, updating and saving them) until it reaches the world model. At this point the world model would be updated, potentially propagating onto chunks again.

Not sure how feasible or performant that would be though.
 

Nym Traveel

Active Member
Contributor
Art
World
An addition to the fakewatersystem would be to treat oceans as infinite water supply. Hence there would be the possibility to have infinite springs as the water would eventually end in the ocean. Would require some testing though that not entire tracts of land get flooded :D
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Nice mod! Yeah, that would be a nice next step :)
 

x3ro

Member
Contributor
GUI
Yeah, the fluid "simulation" is actually something I'm quite annoyed with when playing Minecraft, so we should definitely try to get this right :) Does Terasology have some kind of "road map" or similar, where this can be put on? :D
 

Immortius

Lead Software Architect
Contributor
Architecture
GUI
There are some milestones associated with the issue tracker on github. They probably need a bit of a review. The incubator sub forum is the other place these sort of things can go.

My personal roadmap is looking something like: physics -> block handling overhaul -> modding -> basic water? -> multiplayer??, with other stuff likely getting slotted in as they come up. Animated mesh support needs to be in there somewhere too.
 

CapsE

New Member
Nice to see that my opinion is shared here.

Maybe I have a solution for the infinity problem. We could simply add a wall of invisible water blocking block around every landscape that is already created at any time and remove it whenever some new terrain is created. Basicly the water would form a lake or sea with really hard borders.
 

x3ro

Member
Contributor
GUI
Nice to see that my opinion is shared here.

Maybe I have a solution for the infinity problem. We could simply add a wall of invisible water blocking block around every landscape that is already created at any time and remove it whenever some new terrain is created. Basicly the water would form a lake or sea with really hard borders.
Could you expand on this some more? I don't think I've understood what you mean ;)
 

Nym Traveel

Active Member
Contributor
Art
World
Does it even need to be a border? What happens if every block has a water value and every blocktype a maxvalue and water permeability describing the current amount of water and the maximum possible water to hold (First question: is this even possible?) For example block(maxvalue in m³; permeability in percent): air (1;100), dirt (0.6;20), stone(0;0) cobblestone (0.7,50)

Then the water physics would be quite easy:
On every updatecyclus the water of one block spreads to the surrounding blocks according to this values (exact formula to be tested^^)

Edit: wait a sec i forgot what i wanted to say initially

Edit²: Then, when some chunk is unloaded, the simulation in these blocks would simply stop and be resumed when it's loaded. Hmm, on writing it seems like this could be complicated due to damming effects on the boarders... maybe get the values from the first row of the adjascent chunk and let the water disappear in this direction accordingly to the blockvalue...

ps: i have no idea how performant this would be :D
 

CapsE

New Member
Could you expand on this some more? I don't think I've understood what you mean ;)
Okay as I understood it the problem is that water simulation requires a solid border around all water so it doesnt flows out of the generated terrain. The simple solution is that not created terrain blocks the water from flowing.

I dont see Nym Travels point though... Why do we need values on different blocks? Water is flowing in the same speed over all surfaces as far as I know and soaling blocks is a bit to complicated not just for the programmer but for the user as well. All I wanted was really flowing water and not "water spawners" that lead to a constant stream of water... At least not by emptying a bucket somewhere in the desert.
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Yeah, we really want a system that works like in the video Ten'son' posted above - what makes it tricky is "Water world syndrome" by which some combination of loaded/unloaded chunks either causes infinite water to flood the world or rivers/oceans to run dry.
 

Ten'son'

Member
Contributor
World
I think there should be some "source of water" blocks at the beginning of a river. Else, the river will drain. But, if the player "takes" a source of water bloc with a bucket and empty the bucket on the ground, it will be just like normal water.
 

CapsE

New Member
So basically all we need is a pair of a water creater and a water consumer so that there is always a fixed amount of water. And for not completed rivers we create a "artifical" water source that spawns its water directly at the last created part of the river and a water consumer at the other end.
 
Top