Page 1 of 1

Furnaces with insane speed bonus create from nothing

Posted: Sun May 06, 2018 9:18 am
by Sir3n
So i was playing around with Fast Furnaces mod which gives you t5 speed and productivity modules with improved beacons along with the Advanced Furnace it provides. I set up the test area as shown below
TestArea.png
TestArea.png (1.12 MiB) Viewed 7368 times
Furnace.png
Furnace.png (190.79 KiB) Viewed 7368 times
As you can see above, the productivity bonus was +400%. Thus, when smelting iron ore to iron plate, we expect a ratio of 5 plates per iron ore. So i did some tests with increasing number of speed modules in the beacons. The productivity bonus remained the same throughout the whole experiment. The results in the form of a graph (plate to ore ratio v/s speed of machine) are as follows:
Graph.png
Graph.png (4.95 KiB) Viewed 7368 times
You can find the actual numbers below.
Numbers.png
Numbers.png (16.06 KiB) Viewed 7368 times
Initially, at low speeds, the ratio is fine, but as you can see, as we go higher and higher up in speed, the consumption actually decreases. The production of iron plates stays locked at 10.8 k for most of it, most likely due to the belt speed bottleneck. Worth noting is i have a mod that increases blue belt speed to 60/s.

Regardless, the consumption should not decrease as the speed of the machine increases. The furnace is basically creating iron plates out of thin air. I would have added more speed modules to the beacons but it seems that the speed bonus is hard capped at +32767 %.

The same type of behaviour actually happens with the non-modded electric furnace too. I did not do extensive testing for this one but here are the results from replacing the advanced furnace with a regular vanilla furnace.
VanillaFurnace.png
VanillaFurnace.png (197.55 KiB) Viewed 7368 times
VanillaProduction.png
VanillaProduction.png (337.77 KiB) Viewed 7368 times
As you can see, i have a 100% production bonus on the machine but it consumes only 2.6 k/m and outputs 10.8 k/m, which is a plate to ore ratio of 4.16 compared to the expected 2.

Again, the machine is creating plates out of thin air.

Re: Furnaces with insane speed bonus create from nothing

Posted: Sun May 06, 2018 9:43 am
by Deadlock989
You'll also see that your speed bonus is capped at +32767%. That's a suspiciously round number in binary minus one, looks like a signed two byte integer. The game isn't built for such insane levels of bonus and you've maxed out the stats beyond what the engine can deal with, so not really surprising that it breaks. Essentially, it's not a well designed mod.

Re: Furnaces with insane speed bonus create from nothing

Posted: Sun May 06, 2018 10:19 am
by Sir3n
Well i know that vanilla factorio would never reach those types of speed bonuses but what i wanted to point out is how the consumption is actually lower than expected. I might be wrong but if the logic was correctly written, that should never happen.

I don't think that part is on the mod author necessarily.

EDIT:
I did some further tests on it and it seems to only happen when productivity is involved. If i take out all productivity modules, i get this result:
NoProd.png
NoProd.png (69.65 KiB) Viewed 7346 times
It's capped at 3.6 k/m = 60 /s = 1 per tick. So the excess speed bonus just gets ignored if it is only speed bonuses. And that is perfectly fine as far as i'm concerned.


However, as soon as i add one productivity module to the machine, things go wrong as you can see here:
OneProd.png
OneProd.png (76.6 KiB) Viewed 7346 times
One productivity module in this case would net me 50% productivity bonus.
If we go by the earlier cap of 1 crafting operation per tick as upper limit, We would get 3.6 k/m input, with 5.4 k/m output.

So the logic for handling productivity bonuses at high speeds is the part that seems to be flawed and i have no idea what the cause might be. The number 2.8k/m seems really arbitrary.

Re: Furnaces with insane speed bonus create from nothing

Posted: Sun May 06, 2018 12:39 pm
by Dominik
Yes, as Deadlock wrote - you are overstepping the boundaries of what the engine allows. I hope you understand that we are not going to rewrite it so that this setup would work.
The cap on productivity is simple to explain - you can get max 1 extra item per tick from the productivity bonus.

Re: Furnaces with insane speed bonus create from nothing

Posted: Sun May 06, 2018 7:45 pm
by Sir3n
Obviously rewriting the engine is just a waste of time since mostly this is not a problem unless pushed to their limits like i tried to there. I just thought it would be a good idea to point out that machines can produce incorrect results when pushed to the limit.

Also, would it be possible to internally process recipes in batches? like say the speed limit goes beyond 1 per tick. At that point, the machine would multiply the recipe by 2 and burns 2 ores and pushes out 2 plates in one go. And the multiplier would adjust based on the speed of the machine

I wonder if this can be used for improving performance. For large bases, having a machine process recipes once per say 10 ticks might save a lot of computation power. At that point, it would process the recipe x10 in one go.

Idk, is that optimisation already in the game?

Re: Furnaces with insane speed bonus create from nothing

Posted: Mon May 07, 2018 7:37 am
by Dominik
The first proposal, making more items in one tick, is exactly the rewriting of the engine :)

Of course that is not in place. It needs to be accurate. If it worked like that, you would get gaps on belts, wrong signals, logistic requests etc.