bobingabout wrote: Wed Mar 21, 2018 10:11 pm
danyax wrote:danyax wrote:Hi Bob,
I wonder what is the practical difference between Pumps MK1-MK4? I did a lot of experiments with fluid pumping and all of them produce exactly the same results regardless of pump type. Even is the simplest test "storage tank - pump - storage tank" all pumps have exactly the same throughoutput.
Bob, any hint on this question?
It's disappointing to think about. they do actually all have different pumping speeds, 200 for the base game version, 300 for MK2, 400 for MK3 and 500 for MK4.
I basically just updated the entities that already existed when they changed the way pumps work back when they added the fluid wagon, I hadn't actually done any tests to know they were all effectively the same.
I guess if the higher tiers are pointless, I could just remove them.
pumping_speed values above 200 doesn't seem to have any effect in the game.
This is a bug i would say and would need to be brought up to whomever is responsible prototyping.
I did change the base_area to accommodate for the fact that it would need more than 200 units of fluid space at higher speeds. And just to be sure, if i set the pumping speed to 200 (same as vanilla pump) and base_area to 0.5, the pump is slower than the vanilla pump. So base_area does affect the available pumping speed.
Finally, you have a "missing parameter" (more like it's not used normally) in your fluid box definition. "base_level" which defaults to zero. I tested that, first with -1 which reduced the speed of the pump and then i set it to 1 which seemed to make the pump as fast as it should be. According to what i've read, base level is height above sea level and it did affect the pump.
With some further testing, i changed the pumping speed value back to 200 and left base level at 1. The pump is STILL faster than the vanilla pump. So pumping speed itself had no effect, only the base_level.
Setting base_level to 10 (still keeping the rest of the stuff at vanilla values) had no effect on the speed of the pump. base level 1 and base level 10 made no difference.
So i also tested base level 10, pumping speed 2,000 and base_area 10. Just to cover all bases... And BLAMMO! It pumped like a champ! Ten times faster than the vanilla pump for sure! (no, i am not measuring with a timer, by eye only)
So let's work backwards from that... I will start by reducing the base_level back to 1. And the pump got slower. Now, how base_level affects the speed exactly i don't really know. But at this point i do know that pumping_speed does have an effect. And so does base_level. Even the vanilla pump benefits from an increased base_level value. And someone did measure the vanilla pump speed using some in game timer setup and they measured a speed of 138 units per tick. (
viewtopic.php?t=46030)
Now, let's test base_area, setting it back to 1 while keeping base_level at 10 and pumping speed at 2,000. And the results are in... The pump is just as fast as it was with pumping speed 200, base level 1 and base area 1.
And so, i have conclusively determined that ALL THREE values need to be raised for the pumps to actually be faster (apart from vanilla base level on the vanilla pump which might just explain why it's 138 units/tick rather than 200)
With this newfound knowledge i will take the easy way out. I will raise base area and base level on each pump tier to match their tier number.
And finally, i will check pipes. Because i am pretty sure pipes also need to have their base area increased to accommodate the increased pumping speed.
DO NOTE, pumps with a base level above 1 will NOT auto level with tanks. They will automatically drain into any entity with space and a lower base level.
... Did i say i hate fluid mechanics in this game? No? Well i have now!
So, on to pipes... I raised the base area of one pipe to 3 (300 units) and used mk 2 pumps for testing, tank->pump->pipe->pump->tank. And in the other setup i used a base area 1 pipe for comparison.
And indeed, you also need to raise the pipe base_area to allow for the now faster pump to push that liquid faster. The pipe with base area 3 has 190 units of liquid in it, the base area 1 pipe has 100 units of liquid in it while transferring.
And i also tested tank->pipe->tank and to my surprise, the bigger pipe won!
When the pipe with base_area 1 had moved 30k units of fluid, the pipe with base_area 3 had moved 35k units.
This doesn't hold true for more pipes between tanks though. With just ten pipes, the auto equalization was clearly faster with the base_area 1 pipes. I am sure this is down to just how fast the pipes themselves will find an equalization between themselves. Less units means the effective transfer to the tank is faster.
So finally, lets compete using pumps and many pipes, 100 pipes for good measure. And yeap, as expected. The smaller pipe is about a billion times faster than the bigger pipe. What we can conclude from this is that, if you want throughput over short distances (one to two pipe segments between pumps) you should use a bigger pipe. Whereas if you intend to have long distance connections with pipes and no pumps you should use a smaller pipe.
In fact, pipes are just glorified storage tanks anyways.
So if anything, you could make a "fat" pipe for whenever someone needs the throughput between pumps. "Use fat pipes when you have no more than 2 pipe segments between pumps."
Finally, base area 3 for pipes (with a 300 speed pump) is not enough really to make full use of the pumps capacity. So i raised all pipes to base area 10 (twice the size of the mk4 pump speed) and that's surely going to be enough. Either way, i am done messing with the mod.
...
Anyways, i hope this helps.