Assemblers return cancelled items

Place to discuss the game balance, recipes, health, enemies mining etc.
Post Reply
Aru
Fast Inserter
Fast Inserter
Posts: 212
Joined: Wed Apr 13, 2016 11:31 pm
Contact:

Assemblers return cancelled items

Post by Aru »

Since this post might never be read otherwise. It's about getting your materials back when you cancel an initiated assembler task (or equivalently, mine the assembler back into inventory). Currently, they are permanently consumed when the assembler begins production, rather than when it finishes. So if you cancel, you get back the materials that are still in the slots, but you don't get back the materials that were being used for the canceled task. And you also don't get the product of the task, obviously. So, it just disappears, the resources are deleted, rather than returned or transformed or compensated in some other way.

Currently when you cancel a manual task, you get back all of the materials, so why not assemblers? I read one argument (from kovarex) about this idea conflicting with productivity modules, that it could be exploited, but I don't see how. If there are other arguments against, even non-technical ones, I would like to see them. (Note: Practical productivity limit is 140%, but returning materials at >200% would be exploitable without special behavior described in posts below.)

(Perhaps the issue is not that they conflict with productivity modules, but that the items truly are consumed when crafting starts, so it would be less trivial to determine in code exactly what ought to be returned. But still doable.)
kovarex wrote:It is not a bug, it is there by a design.
Consider the bonus production and productivity modules for example, it would be exploitable.
DaveMcW wrote:Productivity modules only work on cheap intermediate products, and you probably got more bonus resources before you cancelled the job. So it makes sense to not return items made with productivity modules.

But it is rather harsh to nerf all other recipes too.
BlakeMW wrote: I do not understand how it would be exploitable with production bonus, as it should just return the resources actually consumed and ignore the productivity bar progress, that progress should simply be lost with no compensation for the free item(s) you're now not going to get.
Aru wrote:I also wouldn't care if there's no compensation for the productivity bar. I can't imagine how you would do that, and it's impossible to do it perfectly in any case, because you can't have fractional items. The bonus bar is just like the bar above it... when you cancel, you don't get compensation for the partially completed crafting, but you should still get the raw materials back. And the bonus bar doesn't consume any raw materials, so it ought to give you none back. While the main bar does consume, and so should give back. I hope that makes logical sense. Not getting these items back, is indeed an annoying inconsistency. The losses really add up over time. When I first noticed it, I thought it was a mistake / bug.

By the way, I think the way the productivity bar is displayed (and the way the productivity modules work) is brilliant. It should allow what I'm saying here to be more understandable.
Quotes summarize this "not a bug" thread:
viewtopic.php?f=23&t=23274
Last edited by Aru on Thu Apr 28, 2016 6:36 am, edited 2 times in total.

Bushdoctor
Fast Inserter
Fast Inserter
Posts: 183
Joined: Sun Feb 21, 2016 6:33 pm
Contact:

Re: Assemblers return cancelled items

Post by Bushdoctor »

Hello Aru,

As far as I understand it, you want materials to be returned once an assembly process is interrupted or halted. My question is: Why?
It's just about the single item being processed, right? Because we do get back the stacks that were in the assembler when picking it up.
Maybe I'm missing the point, but I'm not really bothered by a couple of copper plates or steel beams disappearing.

Also, from a 'real world perspective' it makes sense that once you drop raw materials into a machine and they get processed
(mashed up, or shredded or melted), you can't get those raw materials back when you stop the process. I realize that our game is not
the real world, but it still feels logical.

Did I miss your point?

User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12888
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: Assemblers return cancelled items

Post by ssilk »

Well, if you make something expensive, this really can hurt. But I also have no better solution.

Moved from Suggestions to Balancing.
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...

starholme
Fast Inserter
Fast Inserter
Posts: 201
Joined: Tue Oct 21, 2014 7:25 pm
Contact:

Re: Assemblers return cancelled items

Post by starholme »

The productivity exploit maybe works like this:

Create enough of the recipe items to almost fill the 'extra' item bar. During the cycle that the 'extra' bar completes, disassemble the machine AFTER the extra item is done, but before the 'regular' item is done. You get the material back for the regular item, AND you get the 'extra' item for free.

Seems like an awfully minor exploit though. Unless you have more than 100% extra productivity, you still have to use up raw materials to fill the extra bar. And it would be crazy time consuming.

Aru
Fast Inserter
Fast Inserter
Posts: 212
Joined: Wed Apr 13, 2016 11:31 pm
Contact:

Re: Assemblers return cancelled items

Post by Aru »

starholme wrote:The productivity exploit maybe works like this:

Create enough of the recipe items to almost fill the 'extra' item bar. During the cycle that the 'extra' bar completes, disassemble the machine AFTER the extra item is done, but before the 'regular' item is done. You get the material back for the regular item, AND you get the 'extra' item for free.

Seems like an awfully minor exploit though. Unless you have more than 100% extra productivity, you still have to use up raw materials to fill the extra bar. And it would be crazy time consuming.
That sounds acceptable to me, that's not really an exploit, but rather is as it should be. Because, you only get the bonus product if the bonus bar finishes it's task, and you still lose out on any partial progress on either bar. That would be in line with the existing nature of the bonus bar.

It would be possible to exploit if productivity were greater than 200%, but the practical limit currently is 140%. (If mods push it higher, the correct behavior for >200% is to queue the bonus products and create them when the main bar finishes.)

I guess I should also add, that these losses might be minor for most players, but much bigger for new players, and the newbie experience ought to be as smooth as possible, as it is very important for Factorio in the long run. I remember some issues when I was starting, with resources mysteriously shrinking when I was frequently moving initial assemblers, and it took me a while to pin down this sense of resource loss, even longer to track down where they were going.
Bushdoctor wrote:Also, from a 'real world perspective' it makes sense that once you drop raw materials into a machine and they get processed
(mashed up, or shredded or melted), you can't get those raw materials back when you stop the process. I realize that our game is not
the real world, but it still feels logical.

Did I miss your point?
It's inconsistent with manual crafting returning materials when cancelled. From the 'real world perspective', it's just as implausible either way. Not all materials are going to be mutilated beyond recovery within the first fraction of a second, but at the same time, yes many of them will be as the end of the crafting approaches... but then, you might also expect to extract *some* useful products, like a partial iron plate, etc. That's all outside of the spirit and nature of the game though, and I'd rather go with the 'returning materials' route than the current 'deleting materials' route, it's just the more pleasant and consistent one for new players (for all players, really).

In any case, it's an inconsistency that ought to be fixed, the only question is how much effort it takes to fix and whether it's worth it. It could be very very easy, or not so much, depending on the underlying assembler mechanics.
Last edited by Aru on Thu Apr 28, 2016 6:19 am, edited 1 time in total.

greep
Fast Inserter
Fast Inserter
Posts: 108
Joined: Mon Apr 25, 2016 3:12 am
Contact:

Re: Assemblers return cancelled items

Post by greep »

I can't really see how this could affect anyone in game. Its kind of like a millionaire complaining about a dropped fake penny. Maybe if you try building the airplane in an assembler and cancel?

Aru
Fast Inserter
Fast Inserter
Posts: 212
Joined: Wed Apr 13, 2016 11:31 pm
Contact:

Re: Assemblers return cancelled items

Post by Aru »

greep wrote:I can't really see how this could affect anyone in game. Its kind of like a millionaire complaining about a dropped fake penny. Maybe if you try building the airplane in an assembler and cancel?
It probably manifests the most for new players, who might pick up and move assemblers a bunch. That was where I first noticed it, but I wasn't totally certain why my items were mysteriously diminishing. I thought it was just another bug, and it increased my sense of this being a buggy game. Later I figured it out, and realized that it's "not a bug", just poor design, and therefore had no intention of being fixed. So yeah, it does affect players for real. But mostly only new players, and most of them might feel and notice the inconsistent effects, but not know why, thinking a bug is stealing their resources... a very unsatisfying experience. "Not a bug" or not, it felt like a bug, and had the same frustrating feeling of having things unfairly stolen from me that bugs do. The opinions and experiences of new players are very important for a growing independent game. Being able to pick up assemblers freely without losing items, is a freedom new players would appreciate, and think that they already have. However the effect is not very significant for more experienced players who will advance more rapidly and do less picking up assemblers at the starts of new games.

So, while it is impossible to get over +40% productivity in vanilla Factorio, the correct (non-exploitable) behavior if you were to push over +100% via a mod: When the bonus bar finishes, you get no items, ever. Instead it is tallied up, and compensated at the next main bar completion. If bonus bar finishes 3 times, then main bar gives you 4 items when it finishes. Then bonus finishes 2 times, then main finishes and gives 3. This way, there is no >+100% exploit. (I could also describe this in terms where the condition is the number of completions of each bar, rather than 'if productivity > 2', which is what makes it correct. But the non-exploitable behavior is the same.)

bobucles
Smart Inserter
Smart Inserter
Posts: 1669
Joined: Wed Jun 10, 2015 10:37 pm
Contact:

Re: Assemblers return cancelled items

Post by bobucles »

Honestly it just seems like an oversight. If cancelling hand crafting caused the player's items to be permanently lost, the forums would be up in arms. Instead it only happens in a rather obscure situation, occurring when a factory has partial construction progress and is picked up.

greep
Fast Inserter
Fast Inserter
Posts: 108
Joined: Mon Apr 25, 2016 3:12 am
Contact:

Re: Assemblers return cancelled items

Post by greep »

Aru wrote:
greep wrote:I can't really see how this could affect anyone in game. Its kind of like a millionaire complaining about a dropped fake penny. Maybe if you try building the airplane in an assembler and cancel?
It probably manifests the most for new players, who might pick up and move assemblers a bunch. That was where I first noticed it, but I wasn't totally certain why my items were mysteriously diminishing. I thought it was just another bug, and it increased my sense of this being a buggy game. Later I figured it out, and realized that it's "not a bug", just poor design, and therefore had no intention of being fixed. So yeah, it does affect players for real. But mostly only new players, and most of them might feel and notice the inconsistent effects, but not know why, thinking a bug is stealing their resources... a very unsatisfying experience. "Not a bug" or not, it felt like a bug, and had the same frustrating feeling of having things unfairly stolen from me that bugs do. The opinions and experiences of new players are very important for a growing independent game. Being able to pick up assemblers freely without losing items, is a freedom new players would appreciate, and think that they already have. However the effect is not very significant for more experienced players who will advance more rapidly and do less picking up assemblers at the starts of new games.

So, while it is impossible to get over +40% productivity in vanilla Factorio, the correct (non-exploitable) behavior if you were to push over +100% via a mod: When the bonus bar finishes, you get no items, ever. Instead it is tallied up, and compensated at the next main bar completion. If bonus bar finishes 3 times, then main bar gives you 4 items when it finishes. Then bonus finishes 2 times, then main finishes and gives 3. This way, there is no >+100% exploit. (I could also describe this in terms where the condition is the number of completions of each bar, rather than 'if productivity > 2', which is what makes it correct. But the non-exploitable behavior is the same.)
WHile I think the exploit is kind of silly and shouldn't be considered since it has to be done manually and can only be done with cheap intermediate products (could also make an exception for purple science), the exploit doesn't need 100% productivity.

Consider the two cases:

A) Player A has 4 L3 productivity. Cuts off exactly on hitting 100%. This means he's created two products, is halfway to the third, and is refunded his stuff. He does this twice. So he has 6 units (4 + 2 freebies). So 5 production time, 4 products worth of resources, 2 freebies

B) Player B just plays normally, producing 5 items. 5 production time, 5 resource worth, 2 freebies. An extra resource worth is used.

Aru
Fast Inserter
Fast Inserter
Posts: 212
Joined: Wed Apr 13, 2016 11:31 pm
Contact:

Re: Assemblers return cancelled items

Post by Aru »

greep wrote:WHile I think the exploit is kind of silly and shouldn't be considered since it has to be done manually and can only be done with cheap intermediate products (could also make an exception for purple science), the exploit doesn't need 100% productivity.

Consider the two cases:

A) Player A has 4 L3 productivity. Cuts off exactly on hitting 100%. This means he's created two products, is halfway to the third, and is refunded his stuff. He does this twice. So he has 6 units (4 + 2 freebies). So 5 production time, 4 products worth of resources, 2 freebies

B) Player B just plays normally, producing 5 items. 5 production time, 5 resource worth, 2 freebies. An extra resource worth is used.
I see. So you're getting 150% productivity by canceling, when you should get 140%.

So, you can maximize both products per material, and products per time, without either ratio exceeding productivity. The only way to do this, is with the behavior that you might expect from a 'productivity' mechanic. That is, normal crafting except sometimes you don't consume resource, you get it for free. You consume 1/productivity materials per craft, and crafting time is reduced by a factor of 1/productivity. Materials consumed is rounded up, and the negative 'rounding error' is tracked and added to the next material cost. (Example: productivity is 1.4, time and material consumption per product is C=1/1.4~=0.71429; first C-length interval, A += C, ceil(A) materials consumed, deficit is A -= ceil(A) (A is -.286); repeat, consumption is 0 at product 4.) Now, the question is how to do this while keeping the elegant and intuitive productivity bar, or something like it? The most obvious way, is for the second bar to track the temporal progress toward the free item. Then, it's finish always coincides with completion of the main bar. The positive effect of productivity on crafting speed would be reflected in the main bar, while currently it is not. This may or may not be a good thing. (Example: 2x productivity 3 modules, speed of main bar is 0.84 = (1-.15*2)*(1+.1*2), instead of 0.7.) This is still not really satisfactory to me, though the more consistently-timed production would work with inserters better. I really want to keep the way the current productivity bar works. Thinking.

Post Reply

Return to “Balancing”