TL;DR
The new fluid system which will preserve the ease-of-understand of new 2.0 system, fast calculation time, but also will keep some complexity to the fluid managing mechanic.What ?
=== About old system.- The throughput is very unclear and not really logical to grasp, it is not written that pipes have a throughput and what is it or how to improve it. Plus flow rate graph is non-sence.
- The liquid behaves strangely on pipe splits. Last steam turbine in array uses steam instead of first one.
- Tank to tank flow is non-sense.
- Cannot handle amounts for 2.0.
+ Some sort of challenge... not the best one, far from the best, but it added some depth to the game.
+ Pseudo realistic behaviour.
However not everything in factorio is clear, i.e., Inserters, and more like how much items per second one inserter will throw into machine from the belt. Logically thinking for bulk inserter: this should be 12 * 864 / 360 items per second, but it is not, and even not for chest to chest. So how do you deal with that? Add more inserters. So with pipes you add more pipes.
=== About new system.
- From realistic perspective behaviour is questionable. Even for wires it is more logical, presume they are just super conductors. But fluids are physical things and they cannot be blastic through pipes at several speeds of sound. Not that game *should* be realistic, gameplay is first, but Factorio keeps itself closer to realistic-industrial aesthetics.
+ Esily to grasp. Yeah sure, because it now has 0 comlpexity.
+ You no longer need to clog your brain with flowrate between pumps.
+ It looks very tidy and perfectionists will be happy.
+ The system can handle amount of liquids for 2.0.
=== Akara's idea for new system:
First, let's acknowledge that belts are simple to grasp, they are clear and exact, and have some depth to them. You need to manage how belts are laid down and how much they can transfer. However you do not need to bother yourself with max length of a belt lines or powering them with electricity or some belt pusher engines.
So why do not make pipes same way?
My idea is simple: Keep everything from 2.0 fluid system but add 1 thing: absolute throughput limit.
Lets say for water this is 6000 units per second per fluid segment. This means each tick all machines can add to the segment maximum of 100 units and also take maximum of 100 units.
Throughput is absolute and fixed regardless of configuration where machines are placed. For belts throughput can be "expanded" if you load and unload belts on the go, but pipes have an advantage in being omnidirectional.
Each pipe has a tool-tip: max flow-rate per segment is 6000 units / second. Or, additionally, for liquid metals it can be set to 600 units.
But issue arises: what if you accidentally connect 2 systems? The flow-rate will be cut in 2, and this is non-intuitive, illogical and just bad.
This is where we have to make pipe segments:
- Pipes with 0-2 connections to other pipes form one segment (like in 2.0), separated by junctions.
- Each pipe with 3 connections or 4 connections to other pipes is its own segment, i.e. junctions.
Machines affect segmentation but do not counts as segments (more about segment optimization on that later), and also prioritize taking / dumping fluid from straight segments and only then junctions.
The flow is back, but it should be instant, each segment / junction pushes its content at max throughput to connected segments to equalize the content between them. To keep flow-rate at max 6000 rate, filled up segments with machines not being able to push liquid in will recursively propagate signal that they are full and cannot take more liquid in, if segment has such nearby segment (with fluid overflow state), it will dump maximum possible amount of content to segments without such state (even if that implies that this segment will become empty).
Also when holding a pipe they highlight different fluid segments, so you can see where can be possible bottlenecks.
Why ?
New fluid system completely destroys all the complexity when working with pipes.I get that it is done to give road for other mechanics. But remember - we have only 2 crafting ingredient categories: items and fluids. So omitting fluids like electricity is not a fair comparison. It would be the same as giving belts an infinite throughput.
With my idea for new players in the early to mid game fluid system will be not an issue at all, but when going on a megabase scale, it will be not harder to understand than trains. It will be clean and simple as belts, but also give some extent of logistic challenge.
Examples
Machines try to add fluid to the segment, but cannot push out all liquid - segment becomes overflowed.-------------------------------------------------------------------
In the beginning of calculation segment is flagged as overflowed, but hasn't 100% fluid in it, flag removes but calculation still goes as for segment with overflow.
-------------------------------------------------------------------
Calculating segment which has neighbors with overflow flag:
-------------------------------------------------------------------
Calculating segment with overflow flag:
-------------------------------------------------------------------
If segment and all its neighbors are with same flag / no flag, they just equalize content.
-------------------------------------------------------------------
Machines add liquid to segment in the beginning of calculation.
-------------------------------------------------------------------
Machines consume liquid in the end of calculation, even if segment got marked as overflowed in this tick, machine takes from this segment and makes it no longer overflowed.
Segment optimization
1st. If segment has only 1 connected machine to it, it can be combined will all neighbor segment which have no machines connected to them.2nd. If segments has only consumer machines and its neighbor has only production machines, segments get combined.
3rd. 2 segments each connected only to output of its only machines gets combined. Same for inputs.
4th. If segment without counting machines as connections has only 1 point of connection to another segment, they get combined.