Page 1 of 1

factory production queue time instead of quantity

Posted: Tue Nov 15, 2016 7:35 pm
by HurkWurk
currently factories store 2 times the needed materials to produce their result. there is an issue with items that have a short production time of 0.5 to 2 seconds where the swing time of robot arms can cause the machine to idle.

I would propose that instead of a fixed amount of 2x, that machines be allowed to store up to 10 seconds of production resources (or the minimum 2x for production over 10 seconds)

Re: factory production queue time instead of quantity

Posted: Wed Nov 16, 2016 12:05 pm
by ssilk
How about adding more inserters instead?

Re: factory production queue time instead of quantity

Posted: Wed Nov 16, 2016 12:12 pm
by Artentus
I don't see how this can be a problem for you, for me inserters can keep up fine.
Of course if you speed beacon the hell out of a wire + green circuit assembler it's going to require and produce a lot of items so the regular inserters obviously won't cut it. It's intended to be that way. End game tech should be expensive.

Re: factory production queue time instead of quantity

Posted: Wed Nov 16, 2016 12:43 pm
by Klonan
Assemblers already scale their overload multiplier based on the assembling machines speed,

However if you boost the speed too high, you will simply need more than 1 inserter

The common problem i see people have, you put a single stack inserter, and assume it will be able to keep up,
In this case, a pair of fast inserters will be much more effective at feeding the assembling machine

So in the end, this is a gameplay decision, in that in not all situations is a stack inserter the best idea

Re: factory production queue time instead of quantity

Posted: Wed Nov 16, 2016 9:43 pm
by HurkWurk
the factory that this is the most noticeable is wire. you can overload it, but it will not allow loading until the remaining copper drops below 2. however, this factory is capable if consuming 2 copper faster than any robot in game can load. thus the machine pauses while it waits for copper.

any of the 0.5 production machines that only require 1 resource can cause this effect. while a stack inserter could keep up, the factory simply doesnt request resources often enough to prevent this pause.

thus, if say, everything below 5 seconds construction time allowed you to store at least 5 seconds of production requirements (and would request to store that much), this problem would go away.

Re: factory production queue time instead of quantity

Posted: Wed Nov 16, 2016 10:05 pm
by DaveMcW
Klonan wrote:So in the end, this is a gameplay decision, in that in not all situations is a stack inserter the best idea
It's a bug in stack inserter AI. You can make excuses about why it isn't fixed, but it is still a bug.

Re: factory production queue time instead of quantity

Posted: Thu Nov 17, 2016 12:39 pm
by Klonan
DaveMcW wrote:
Klonan wrote:So in the end, this is a gameplay decision, in that in not all situations is a stack inserter the best idea
It's a bug in stack inserter AI. You can make excuses about why it isn't fixed, but it is still a bug.
Its not a bug, the stack inserter inserts exactly when it is told to.
We observed this behavior before 0.13 was even released, and it was declared not a bug.

Re: factory production queue time instead of quantity

Posted: Thu Nov 17, 2016 5:30 pm
by HurkWurk
Klonan wrote:Assemblers already scale their overload multiplier based on the assembling machines speed,

However if you boost the speed too high, you will simply need more than 1 inserter

The common problem i see people have, you put a single stack inserter, and assume it will be able to keep up,
In this case, a pair of fast inserters will be much more effective at feeding the assembling machine

So in the end, this is a gameplay decision, in that in not all situations is a stack inserter the best idea
the issue isnt the inserter overloading or not. its that the factory doesnt request materials until its less than what is needed to produce. i forget if this is 1 production or 2, but basically on fast machines, its small enough that the entire stack can be consumed before an inserter, even several fast inserters, can feed the machine.

so what im after is eliminating that pause. my idea was that instead of overloading the machine, that the machine hold a certain number of seconds production as its minimum, rather than requesting when the resource goes below a specific number.

so in the case of the wire machine. since its 0.5 seconds to produce, it would ask for more materials any time it dropped below 10 times the amount needed to craft 1 item, since that would be less than 5 seconds of materials.

Re: factory production queue time instead of quantity

Posted: Thu Nov 17, 2016 5:38 pm
by Deadly-Bagel
By that logic, an Assembler crafting T3 Assembling Machines would want to store 40 Speed Modules.

I think multiplying it by the speed of the assembler (rounded, 0.5 and up rounds up) is a better approach but according to Klonan it already does this or something like it so there's not a problem.

Re: factory production queue time instead of quantity

Posted: Thu Nov 17, 2016 5:49 pm
by HurkWurk
yes, it would keep requesting until it had 40. thats the point. that way the machine would never idle while waiting for inserters to swing.
if you fed it less than that, it would still pause, but that would be you not feeding it, rather than it not feeding itself.

what Klonan said was that they will overload based upon speed. but the overload is not the point at which more materials are requested.
what he is talking about is that a assembling one that is making wire needs 1 copper so will store 2 copper.
meanwhile an assembling three that is making wire needs 1 copper so will store 8 copper. thats the overload..
however BOTH machines will only ask for more copper when they drop below 2.

Re: factory production queue time instead of quantity

Posted: Thu Nov 17, 2016 9:26 pm
by ssilk
Sorry, I read this over and over: I really don't understand the problem. :)

My thoughts:
If someone upgrades an assembly with modules, that it is so fast, that inserters couldn't keep up, then it is obviously not a good way to upgrade it (or this recipe is not useful for upgrading, cause it is already fast).
Instead it's eventually a much better way to built a second, a third, a fourth... assembly. Which needs a also not so much modules. Which is also much cheaper.

So for me this is not an issue. ;)

Re: factory production queue time instead of quantity

Posted: Thu Nov 17, 2016 10:59 pm
by DaveMcW
ssilk wrote:If someone upgrades an assembly with modules, that it is so fast, that inserters couldn't keep up, then it is obviously not a good way to upgrade it (or this recipe is not useful for upgrading, cause it is already fast).
A stack inserter can keep up, if it operates continuously. The bug is it stops after every insertion and waits for ingredients to decay to 2x the recipe.

Re: factory production queue time instead of quantity

Posted: Fri Nov 18, 2016 12:35 am
by Deadly-Bagel
It's not a bug. Everything is working exactly as intended. If you've overclocked your machines to faster than double half the response time of the inserters you're doing something wrong.

Re: factory production queue time instead of quantity

Posted: Fri Nov 18, 2016 3:52 am
by HurkWurk
this is not a bug, its a feature request that assemblies dont wait until they are at less than 2 production before loading more raw materials.
and the reason for this is configuration density. which is part of the game.

Re: factory production queue time instead of quantity

Posted: Fri Nov 18, 2016 8:42 am
by ssilk
Sorry, I'm out here, I cannot follow (one of the seldom cases). Can someone explain that in easier english? In pictures?

("2 production before loading", "configuration density", "faster than double the response time of the inserters")

Edit: It's not so, that I don't understand it, but I'm not 100% sure, if I understand everything correct.

Re: factory production queue time instead of quantity

Posted: Fri Nov 18, 2016 9:29 am
by Deadly-Bagel
The problem is that you might have speed modules boosting an Assembly Machine making a 0.5s item, for example Copper Wire, that the recipe takes 0.1s to complete. The problem isn't that Inserters can't keep up, it's that the Assembler (apparently, haven't tried myself) only asks for 2x the recipe, so 2 Copper Plates. An inserter puts in a stack, say 3 items, and the machine stops requesting items and the Fast Inserter stops working.

The machine consumes the first Copper Plate, and now has 2 Copper Plates, still not requesting items as it still has 2x the recipe. Then starts building the next one and now has 1 Copper Plate and starts asking for materials again.

The Fast Inserter reaches out to grab a Copper Plate from the belt/chest, but by the time the Fast Inserter can pick up the plate and deliver it to the Assembler, all the Copper Plates already in the Assembler have been used and the Assembler sits idle for a moment.

The "less than 2 production before loading" refers to that an Assembler only requests two lots of any recipe and then stops loading. As with the Copper Wire example, an Assembler stops loading once it has at least 2 Copper Plates in its Recipe box.

The response time of an Inserter is how fast an Inserter can go from idle to having inserted a material into the Assembler. In hindsight that should probably be "half the response time of the Inserters", referring to that the Assembler consumes its two lots of stored recipe before the Inserter can restock it.

Re: factory production queue time instead of quantity

Posted: Fri Nov 18, 2016 1:50 pm
by ssilk
Thanks. I think that explanation allows following also for others.