Fluid Mechanics Still Broken, 6 Years Later?
Posted: Mon Mar 11, 2024 7:46 pm
I just started playing this game a couple days ago. Fluid flow seemed to be behaving in bizarre ways, so I wanted to get a greater understanding of how Factorio's fluid mechanics worked. I looked online and found various conflicting information, such as different fluids can have different viscosities, or they can't. Eventually, I came across Friday Facts # 260, written in 2018, where Dominik pointed out problems with the system, such as:
But, when I looked in my own game today, there was no flow rate information in the entity info of pipes. Moreover, the problems with junctions and different entity evaluation orders influencing the results clearly hadn't been fixed.
I made this setup, which started off entirely empty of any fluid, and then as my last action, placed the offshore pump.
Despite being completely symmetrical, the right storage tank got almost all the water. That was when I built the right side of the junction first. Then, I redid the experiment, but built the left side of the junction first, and almost all the water went to the left storage tank. So, the result of fluid flow is dependent on the order the pipes were built, which makes no sense - it should solely be dependent on the geometry of the system and not the arbitrary order things were created. This makes it impossible to reason about how fluids will act in junctions, especially since the order in which bots build blueprints can vary.
Then, in this forum thread from 2020, it seems that the fluid improvements were thrown out completely, and have never been touched since then?
Are there any plans to fix this core mechanic? And if not, what are people's work arounds? Just use single pipes with one producer and consumer each? Avoid pipes as much as possible and barrel everything at source and unbarrel when it's consumed? Wing it and ignore the fact that fluids move unpredictably and inconsistently?
, along with a visual:to demonstrate this, and:Dominik wrote:The first of three main issues is that in junctions it behaves in a very random fashion. As a result, you might get recipients that are not getting any fluid where they obviously should be.
He then talks about some possible solutions, and saysDominik wrote:fluids moving faster or slower depending on the entity update order
Then, several months later, in Friday Facts # 274, he describes a solution he came up with that fixes these problems. Under that solution, fluids can have different masses and frictions, so they behave differently in pipes. More importantly, that solution made it so that the end result would be the same regardless of the order of evaluation of the entities, which is entirely logical, and solves the problem with junctions not behaving as they should. Finally, you can now see flow rate information in the entity info of each pipe.Dominik wrote:So to sum up, we have had this on our minds for a long time now, and performance was not the only issue we have considered. The new system will hopefully address all the issues we mentioned at the start.
But, when I looked in my own game today, there was no flow rate information in the entity info of pipes. Moreover, the problems with junctions and different entity evaluation orders influencing the results clearly hadn't been fixed.
I made this setup, which started off entirely empty of any fluid, and then as my last action, placed the offshore pump.
Despite being completely symmetrical, the right storage tank got almost all the water. That was when I built the right side of the junction first. Then, I redid the experiment, but built the left side of the junction first, and almost all the water went to the left storage tank. So, the result of fluid flow is dependent on the order the pipes were built, which makes no sense - it should solely be dependent on the geometry of the system and not the arbitrary order things were created. This makes it impossible to reason about how fluids will act in junctions, especially since the order in which bots build blueprints can vary.
Then, in this forum thread from 2020, it seems that the fluid improvements were thrown out completely, and have never been touched since then?
Are there any plans to fix this core mechanic? And if not, what are people's work arounds? Just use single pipes with one producer and consumer each? Avoid pipes as much as possible and barrel everything at source and unbarrel when it's consumed? Wing it and ignore the fact that fluids move unpredictably and inconsistently?