I've been thinking about additional fluid types lately, and I certainly do not envy Tarn Adams for the headaches he must get while trying to figure this kind of stuff out and code for it.
First of all, here are the liquid types that have been requested in the past (I may have missed some):
-Bloodwhich might have to include:
-gray goo? (fire imps)
-ichor? (from trolls and stuff)
-Alcoholwhich could be divided into the various types:
-beer, wine, ale, rum, spirits, sunshine, cruor, whiskey
-Oil (crude)And here are the liquids which already exist:
Magma
Water
Ocean water
Muddy water (sort of)
Bloody water (sort of)Well, first of all, there is no way that there should be that many liquid types for alcohol. Having to handle the ways those things could be mixed together would just be ridiculous, especially once you see my little pictures below.
I'm also going to ignore gray goo and ichor for the time being.
So basically, let's see what happens if we try to add blood, oil, and a generic booze.
First of all, it needs to be established to what degree these liquids should be allowed to mix. If you tip a barrel of wine into a large lake, should it distribute itself across the entire lake? I say no, because that would require lots of decimal places and expensive computing.
I think liquids would have to be allowed to mix only to a point. Allow me to explain with this picture:
Get it? It's pretty simple. But the problem is that even if you allow only a SINGLE mixture of liquids, you still end up with a huge amount of combinations. You guys were probably aware of this, but it still helps to visualize it.
I've started out with water, blood, booze, and ocean water on the four cardinal points. Just look at the mess which springs forth:
I've crossed off some of the double mixes. There are also some double-mixes that seem necessary, like "watered-down, bloody booze." Should this be a liquid type? I don't know. I mean, some ancient cultures found out that mixing wine into the drinking water would make it safe to drink. And I guess someone could bleed into that?
Note that I didn't even consider the addition of mud, ichor, or puke. These would have added waaay more pointless sub-liquids.
So because of the combination annoyances that mixing liquid invariably leads too, we have to start cutting out the unnecessary liquids. And I don't think alcohol should be a liquid. Yes, it would be cool to have a wine fountain in your dwarf's dining room, or a beer or whiskey fountain... but the beer would lose its carbonation and go flat, the wine would oxidize, and the whiskey would slowly evaporate. There are reasons we keep all that stuff in bottles.
Oil? Definitely. It's explosive and you don't have to let it mix with stuff.
Blood? Yeah, that would be pretty cool to have as well.
You may have noticed that I stuck sand in that last picture as well.
You can read about my sand idea here, but basically sand would have some behaviors of a liquid, and some behaviors of a solid. Go read it if you haven't.
If sand is added as well, there's two and only two options for how it should interact with the other liquids. It either displaces them or it absorbs them - there can be no middle ground. If sand absorbs liquids, you could have "bloody sand" instead of just some blood sitting on top of the sand. Water would also be able to percolate through sand - (but perhaps at half or one-fourth the speed as usual?) There's also the problem of figuring out when/if water should be able to push sand around. Water doesn't really have any kind of velocity variable right now from what I understand. But anyway, sand stuff can be discussed over in the sand thread.
Sand would always sink and oil would always rise.
I have one more idea which I think is instrumental for mixing liquids and for having oil in the game: cohesion!
It would not be limited to oil. Let's say that someone bleeds 2/7 of blood into a lake. There would be a patch of four 1's of "bloody water" which would stick together, instead of there being four separate pieces floating around.
I guess that any amount of bloody water would randomly distribute itself vertically and horizontally while remaining in a blob form, and possibly sucking up a lot of processing power unless it's programmed to stop moving somehow. I think this would be the biggest problem to overcome - when two liquids cannot mix any further, will they keep... glorping around each other forever? Maybe blood should just sink... or not be a liquid type at all.
Another possibility... have as many liquids as you want, but no liquids may mix with any other liquids. It would work, but it wouldn't be very realistic.
And an alternative to everything: scrap the X/7 liquid system altogether and handle liquids differently. I have no idea how or if this would work. Maybe entire bodies of water could be done with various percentages? I read a bit of the
speedy fluid mechanics thread and it seemed like an interesting alternative. I'm not sure about the plausibility of such a system, though. But I think it deserves a mention.