Friday Facts #416 - Fluids 2.0

Regular reports on Factorio development.
Bowiemtl
Manual Inserter
Manual Inserter
Posts: 3
Joined: Mon Oct 23, 2023 10:55 am
Contact:

Re: Friday Facts #416 - Fluids 2.0

Post by Bowiemtl »

I much rather prefer the system to be fun but I will say that I'm gonna miss the flow direction animation. It looked nice but is tied in with the previous algorithm from my understanding
Nemoricus
Fast Inserter
Fast Inserter
Posts: 240
Joined: Mon Jan 19, 2015 7:48 am

Re: Friday Facts #416 - Fluids 2.0

Post by Nemoricus »

Bowiemtl wrote: Mon Jun 24, 2024 6:14 pm I much rather prefer the system to be fun but I will say that I'm gonna miss the flow direction animation. It looked nice but is tied in with the previous algorithm from my understanding
Losing flow, seeing pipes fill up in sequence, and machines turn on one by one are all aspects I will miss, but I will miss the arcana of the current fluid system much less.
adam_bise
Filter Inserter
Filter Inserter
Posts: 437
Joined: Fri Jun 08, 2018 10:42 pm
Contact:

Re: Friday Facts #416 - Fluids 2.0

Post by adam_bise »

Sphinx wrote: Sat Jun 22, 2024 11:21 am Why should they make another fluid FFF when this would be all? I suspekt there will be some more things than we know for now.
I suspect this as well. I think this change is a baseline which will be expanded on later.
takisama
Burner Inserter
Burner Inserter
Posts: 7
Joined: Sat Mar 25, 2023 7:08 pm
Contact:

Re: Friday Facts #416 - Fluids 2.0

Post by takisama »

I'm new to this kind of topic. Is this implemented in game or it's just a topic for talking about?
Nemoricus
Fast Inserter
Fast Inserter
Posts: 240
Joined: Mon Jan 19, 2015 7:48 am

Re: Friday Facts #416 - Fluids 2.0

Post by Nemoricus »

takisama wrote: Mon Jun 24, 2024 7:33 pm I'm new to this kind of topic. Is this implemented in game or it's just a topic for talking about?
It’s implemented and being tweaked.
takisama
Burner Inserter
Burner Inserter
Posts: 7
Joined: Sat Mar 25, 2023 7:08 pm
Contact:

Re: Friday Facts #416 - Fluids 2.0

Post by takisama »

Nemoricus wrote: Mon Jun 24, 2024 7:34 pm
takisama wrote: Mon Jun 24, 2024 7:33 pm I'm new to this kind of topic. Is this implemented in game or it's just a topic for talking about?
It’s implemented and being tweaked.
Thanks mate. I'm a bit lazy reading patch note. Do you know what version did this change applied? Thannk you!
Loewchen
Global Moderator
Global Moderator
Posts: 9090
Joined: Wed Jan 07, 2015 5:53 pm
Contact:

Re: Friday Facts #416 - Fluids 2.0

Post by Loewchen »

takisama wrote: Mon Jun 24, 2024 7:38 pm I'm a bit lazy reading patch note. Do you know what version did this change applied? Thannk you!
It will be in 2.0 expected to be released in October.
Panzerknacker
Fast Inserter
Fast Inserter
Posts: 234
Joined: Mon Aug 22, 2022 5:27 am
Contact:

Re: Friday Facts #416 - Fluids 2.0

Post by Panzerknacker »

GregoriusT wrote: Mon Jun 24, 2024 5:37 pm Isn't the old System basically letting each individual pipe spread its contents to adjacent pipes? That may seem "realistic" to most people at first, but it actually is just a simplistic/atomic algorithm that has a LOT of issues.

It requires forcefully moving fluids a random direction in order to drain a pipe for example. since when is a fluid puddle moving in an empty Pipe realistic?

There is so much jank required to make the "simplistic" or "atomic" old System work, that it rightfully turned out that a better and actually simple new System needed to replace it, to fix the glaring Issues.

If the Devs come up with an even betterer newerer System to replace this new "every section is ONE tank"-System, then wonderful, that would surely still take any type of lag and throughput Issues into account without trying to hammer in some bad design choices.

But the old System definitely needs to go the way of the Dodo.


to make it short

old System: broken, please delete, will not be missed, gimme back my lost lifetime and UPS!

new System: good, quite a few neat and consistent mechanics in there people didnt notice because of prejudicial "hurr durr, teleport no fun, trains dead somehow" without even thinking about some of the new emerging gameplay. You literally just need to place the Pumps at storage tanks and some junctions as opposed to inline everywhere.
If you put a fluid puddle in an empty pipe, it will spread in both directions (assuming that the pipe is level). That is exactly how the old system works.

old system = beautifully brilliant solution that gives a pretty good aproximation of fluid behaviour for a relatively very small computational cost.
OnisDWA
Manual Inserter
Manual Inserter
Posts: 3
Joined: Mon Jun 24, 2024 6:48 pm
Contact:

Re: Friday Facts #416 - Fluids 2.0

Post by OnisDWA »

The old system was terrible, but the new one is not much better either.
I don't like that now liquid will be teleported in all cases, personally I don't understand what will happen in this case in case of liquid shortage, in what order will be given priority to consumers?
If in case of shortage all factories will receive the same amount of liquid, it's sad, because we will have to shut down extra factories, whereas in the old system the factories closest to the source would work, and we could not worry about it while expanding the production of liquids.

Based on the fff as I understand it, the 6000/s limit remains if the pump is going to be connected to the pipe, I don't see why...

As I see it the solution to fix the liquid teleportation could be fixed by using the old system, for cases where the pipe is filled to say <25%, so when some large section of pipe is connected the liquid would not be teleported instantly, but would flow in waves, which would bring back a realism. I assume that the wave would work like a pump (i.e. with a high flow rate), filling one pipe at the expense of the segment it is connected to, connecting it to the segment, and moving on to the next one.
Sphinx
Inserter
Inserter
Posts: 31
Joined: Fri Jun 19, 2015 1:53 pm
Contact:

Re: Friday Facts #416 - Fluids 2.0

Post by Sphinx »

Bowiemtl wrote: Mon Jun 24, 2024 6:14 pm I much rather prefer the system to be fun but I will say that I'm gonna miss the flow direction animation. It looked nice but is tied in with the previous algorithm from my understanding
It has already been confirmed here that there will be animations again. The ones from the FF are just placeholder graphics.
User avatar
GregoriusT
Filter Inserter
Filter Inserter
Posts: 334
Joined: Wed Apr 10, 2019 6:42 pm
Contact:

Re: Friday Facts #416 - Fluids 2.0

Post by GregoriusT »

Panzerknacker wrote: Mon Jun 24, 2024 8:46 pm If you put a fluid puddle in an empty pipe, it will spread in both directions (assuming that the pipe is level). That is exactly how the old system works.

old system = beautifully brilliant solution that gives a pretty good approximation of fluid behaviour for a relatively very small computational cost.
First of all, ever heard of surface tension and friction? Fluids will very much stop and sit in a perfectly level pipe. This sort of thing is usually not viable for gameplay reasons.

Secondly, the old system is just a slightly optimized version of the most atomically simplistic algorithm possible, which scales on a per pipe entity basis, so more pipes = more lag.

Thirdly the new System merges all those Pipe Entities into one Segment for processing, saving dozens of times the lag the Fluid System generated previously, and boy did it frikkin lag before in kilobases. It really disincentivized using Fluid Pipes for anything.

And lastly, as someone mentioned before, in real life a pipeline does NOT behave like an aqueduct, these things are filled once and then whenever you pressurize on one side, nets you in pressure on the other side. The pressure is being delayed yes, but the transfer of fluid is still instant like a real life water faucet/tap. So that aspect is actually quite realistic as long as the pipe is filled.
Don't underestimate Landmines!
Biters bite, Spitters spit, Spawners spawn and Worms... worm? - No, they throw their vomit! They even wind up to directly hurl it at you! friggin Hurlers...
huwp
Inserter
Inserter
Posts: 20
Joined: Mon Jun 13, 2016 10:01 am
Contact:

Re: Friday Facts #416 - Fluids 2.0

Post by huwp »

Suggestion:

When input flow increases, wait for a small amount of time: a constant * number of pipes to the segment. Yes it would mean closer consumers have to wait equally long as those far away, but I bet it'd feel natural. (And player can fine control with pumps)
Walkop
Manual Inserter
Manual Inserter
Posts: 1
Joined: Mon Jun 24, 2024 11:02 pm
Contact:

Re: Friday Facts #416 - Fluids 2.0

Post by Walkop »

My issue with this system is this: why would you ever use trains to move fluids, now? It kinda takes away a large section of gameplay. Is there a way to create a max segment "length", and if that length is exceeded, max thoroughput is reduced? That way if you create a massive length of pipe, it requires a number of booster pumps to keep it moving, OR you build a rail system to move huge amounts of fluid without making a power network and booster pumps.

This is critical IMO, it completely invalidates fluid carts on trains as it stands.
FasterJump
Fast Inserter
Fast Inserter
Posts: 235
Joined: Sat Jul 09, 2016 11:43 am
Contact:

Re: Friday Facts #416 - Fluids 2.0

Post by FasterJump »

GregoriusT wrote: Mon Jun 24, 2024 9:43 pm
And lastly, as someone mentioned before, in real life a pipeline does NOT behave like an aqueduct, these things are filled once and then whenever you pressurize on one side, nets you in pressure on the other side.
That's convincing.

However in the new system, a single pipe can supply a whole base, which removes the logistic challenge. I still believe that a proper solution exists.
Necandum
Inserter
Inserter
Posts: 40
Joined: Sat Jan 06, 2024 2:05 am
Contact:

Re: Friday Facts #416 - Fluids 2.0

Post by Necandum »

Tertius wrote: Mon Jun 24, 2024 4:11 pm
Necandum wrote: Mon Jun 24, 2024 1:56 pm It is quite easy to just completely break the system (try connect 30 steam turbines in a row. The first 20 have availability, and the last 5. 5 are just...skipped. This is understandable given the algorithm, but completely broken from a realism and gameplay point of view).
35 steam turbines in one row behind 20 heat exchangers (2 rows of 10 exchangers, with some intelligent pipe merging/splitting to handle the combined steam throughput of 2026/s) work perfectly, is tileable, and even completely without pumps. Full 200 MW.

That's actually about the limit you can go comfortably. Water supply is the bottleneck here, in terms of space. The 2.0 system is for the case you want to go beyond that, with more and bigger and faster, and still be comfortable.

Screenshot 2024-06-24 180912.png


Complete tileable reactor setup:
Screenshot 2024-06-24 181515.png
Sorry, I mispoke! I meant heat exchangers, the ones used in nuclear to turn heat into steam (I'm bad with names). The numbers are approximate as I don't remember the exact figures from awhile ago.
Edited original post.

And yes, I'm aware you're not meant to stick 30 of them end to end. I was just messing around in sandbox trying to find the limits of the system to understand it better. I cheated in the heat btw, using one editor only heat pipe per heat exchanger to guarantee max steam production, and had an editor entity per exchanger to void the steam.

Thanks for posting a correction!
functional
Inserter
Inserter
Posts: 37
Joined: Sat Jul 27, 2019 6:37 pm
Contact:

Re: Friday Facts #416 - Fluids 2.0

Post by functional »

FasterJump wrote: Mon Jun 24, 2024 11:11 pm However in the new system, a single pipe can supply a whole base, which removes the logistic challenge. I still believe that a proper solution exists.
It actually doesn't. Routing those pipes is far more annoying in my opinion than solving the problem with trains to begin with. You may disagree on that, and that's fine - but you can't pretend that there's no logistic challenge in trying to route pipes everywhere.

In classical bus base designs, you would typically have a single pipe anyway in status quo. In anything scaled up from that, you would most likely use trains because they specifically solve that whole logistic challenge. Plop down some rails and now you can transfer fluid or items from anywhere to anywhere in the network (assuming its designed that way, like I always do personally). I can't see why I would run 8 pipes (water included) everywhere, even when that no longer requires pumps. It's actually interesting to use the "removes the logistic challenge" argument, because same argument can be just said for trains; with trains you can trivialize your whole production completely by turning it into a set of inputs and outputs without having to worry too much about belts crossing each other etc.

Also, to be quite frank, there is no real "challenge" to begin with. The old system simply had hard limits to it and you could not really solve those (thus not being challenges to begin with), there were just massive design constraints where you had to place million pumps. There's nothing you can do about the 4,8k flow being the max flow (pipe to pump to pipe) and if you wanted more flow, you just had to have more parallel pipes. This isn't a challenge, just repetitive actions. And also some jank was necessary too because you needed a pump after every pipe in your main line.

EDIT: Proper solution may exist, but you have to understand some realities here: currently there's only two to three unique solution (depending on how you count em) and this is how it has been for ages now. First is simply to change nothing. Second is scaling up (which solves very little ultimately) and third is the "electric network" solution which this is a variation of. Stuff like Fluids Must Flow goes into the scaling up bin.

This isn't something they did after a short consideration. There have been proposals for ages for fluid change and clearly devs understood all this time that the fluid system kinda is the least enjoyable part of factorio for most people.
FuryoftheStars
Smart Inserter
Smart Inserter
Posts: 2768
Joined: Tue Apr 25, 2017 2:01 pm
Contact:

Re: Friday Facts #416 - Fluids 2.0

Post by FuryoftheStars »

functional wrote: Tue Jun 25, 2024 3:18 am There's nothing you can do about the 4,8k flow being the max flow (pipe to pump to pipe) and if you wanted more flow, you just had to have more parallel pipes. This isn't a challenge, just repetitive actions. And also some jank was necessary too because you needed a pump after every pipe in your main line.
I'm curious, how is the fact that pipes can only transfer so much per second any different from belts? And really, should this not be expected? I mean, the pipes do have a finite diameter.

Yes, the rate of flow drop off probably occurred too quickly causing the "need" to use pumps so frequently. Though I think that's more a balance discussion?
My Mods: Classic Factorio Basic Oil Processing | Sulfur Production from Oils | Wood to Oil Processing | Infinite Resources - Normal Yield | Tree Saplings (Redux) | Alien Biomes Tweaked | Restrictions on Artificial Tiles | New Gear Girl & HR Graphics
functional
Inserter
Inserter
Posts: 37
Joined: Sat Jul 27, 2019 6:37 pm
Contact:

Re: Friday Facts #416 - Fluids 2.0

Post by functional »

FuryoftheStars wrote: Tue Jun 25, 2024 3:48 am
functional wrote: Tue Jun 25, 2024 3:18 am There's nothing you can do about the 4,8k flow being the max flow (pipe to pump to pipe) and if you wanted more flow, you just had to have more parallel pipes. This isn't a challenge, just repetitive actions. And also some jank was necessary too because you needed a pump after every pipe in your main line.
I'm curious, how is the fact that pipes can only transfer so much per second any different from belts? And really, should this not be expected? I mean, the pipes do have a finite diameter.

Yes, the rate of flow drop off probably occurred too quickly causing the "need" to use pumps so frequently. Though I think that's more a balance discussion?
- Belts do not require (or even have) pumps, as their throughput is (mostly) a constant.
- Their behavior is uniform; a straight line of belts performs exactly as well as a straight line of underground belts.
- Belts also do not require power (unlike pumps)

Lot of differences emerge specifically from pumps. Here is an example of what is required to do a tiny S-bend without losing any of the max throughput:

Image

5 pumps at minimum, possibly 6 if you need to do it on the other side. (Or replace it with underground pipe, I rarely do because I just have the pump on hand anyway...)

Belts also do not merge with one another in unwanted ways (they can, just not like pumps). You can easily run 8 parallel belts in 8-width, but for 8 different pipes youd need 14-width.

Also, to be quite straight with you, I think these differences are painfully obvious...

And its not a balance discussion. Either the pumps are required or they aren't. If they are required, scaling them up does not actually remove the problem.
Henry Loenwind
Long Handed Inserter
Long Handed Inserter
Posts: 58
Joined: Fri Mar 09, 2018 7:33 pm
Contact:

Re: Friday Facts #416 - Fluids 2.0

Post by Henry Loenwind »

Have you considered copying Ender IO Fluid Conduits instead? The basic ones could provide a nice middle ground:

When something pushes into a conduit, it first fills up that conduit's local buffer. If that buffer is full, it fills up the next conduit's buffer and so on. When that encounters an exit connection, it directly pushes there. At the end of the tick, i.e. after all inputs have pushed, the conduits try to first push into outputs (if those have capacity left that tick) and then equalise with their neighbours. The rate limiting is done by tracking all input and output connections and limiting the amount that goes in/out per tick.

The advantage is that a partially filled line will flow and slosh, but a fully filled pipe will have full throughput as if the input and output were connected directly. Also, for pushing into the network, it doesn't matter how full the directly connected conduit (pipe segment) is, as its content will be pushed along the pipe, in a way.

However, this would change the semantics of buffer tanks. With them being treated as big pipe segments, they would reduce the efficiency of the segment (unless they are full). One way to counter this would be to also copy the Capacitor Bank logic. Those act as low-priority targets for non-capacitor sources during the input phase, then try to push out before the conduits try to do so. That way they keep the network filled while taking in any excess.
SirSmuggler
Long Handed Inserter
Long Handed Inserter
Posts: 84
Joined: Tue May 24, 2016 1:55 pm
Contact:

Re: Friday Facts #416 - Fluids 2.0

Post by SirSmuggler »

I think it looks silly to sorund a machine with beacons.
I think its horendus to let inserters grab from the back side of underground belts (or from underground belts at all actualy).

The list can go on. There is however a very simple solution to all my gripes, and it's not yell at the devs and try to force my way of playing on others, its simply to not build my factory in that way.

So my suggestion for thouse who think this change will invalidate trains or that a single pipe supplying infinite througput is silly, is to simply not build in that way just because it is possible.

If you like trains, use them, no one is stopping you. If you think your nuclear plant looks better with a bunch of parallel pipes and some extra pumps, then build it that way, it will still work fine.
Post Reply

Return to “News”