Proposal to fix: the pulse function on inserters (+belts?) is inconsistent under low power.

Ideas that are too old (too many things have changed since) and ones which won't be implemented for certain reasons or if there are obviously better suggestions.

Moderator: ickputzdirwech

Theikkru
Filter Inserter
Filter Inserter
Posts: 353
Joined: Wed Mar 27, 2019 2:18 pm
Contact:

Proposal to fix: the pulse function on inserters (+belts?) is inconsistent under low power.

Post by Theikkru »

In this topic I demonstrated an inconsistency between inserters and combinators under low power conditions, (namely that the pulses from inserters do not slow down under low power like those from combinators do,) thinking it was a bug.
I was told it's not a bug, but it's still inconsistent behavior, so I made another topic on the inconsistency itself, and argued that it should be alleviated by making all logic devices behave consistently under the same low power conditions. Over the course of the topic, I hashed out a potential solution, which I present in its most refined form at the end of this post, as "The proposal". Unfortunately, there were two major objections that mired down the thread and ultimately resulted in it being locked without a clear resolution. To hopefully prevent the same here, I will address them first:

Objection 1, the direct cause of the previous thread's demise, was, as most charitably interpreted, that the inconsistency would only be encountered under 50% power satisfaction, and therefore wasn't worth addressing, either because it represented a problem to be solved, or because it would not be encountered enough to matter. (I will note, however, that the language from certain parties suggested something much closer to "LOL u sux just git mor power & git gud n00b".)
Superficially, I can immediately point out that these two justifications are mutually exclusive; a problem to be solved is a poor problem indeed if it is not encountered enough to matter.
To refute them more directly, though, this inconsistency disproportionately targets less experienced players who are not as familiar with or not as diligent about managing electricity, and yet requires very thorough understanding of certain internal game implementations (namely the behavior of combinator energy buffers) otherwise irrelevant to gameplay in order to even hope to diagnose. Due to the nature of energy buffer cycling, the problem only rears its head intermittently (when the pulses are out of sync), and worse still, the conditions required for it to occur may themselves be intermittent (since power may only occasionally be dipping below 50% due to bot use or biter attacks), making it very difficult to reproduce. Worst of all, the symptoms may manifest as literally anything, given the Turing completeness of combinator logic.
If inflicting a highly intermittent problem with high diagnostic knowledge requirements and practically unlimited potential consequences on players in inverse proportion to their experience level isn't atrocious game design, it must be sadism.
Finally, in addendum, the behavior is nonetheless inconsistent, which, of itself, should be sufficient cause for action.

Objection 2, from boskid, was that the proposal would result in implementation problems for logic interactions across different electrical networks. I and others replied that leaving such cases as is would be sufficient, (owing to the diagnostic aid of knowing that different electric networks are involved,) but did not receive any response before the thread was terminated. Consider this an open invitation to challenge such specifics of the proposal.

To provide additional perspective on the problem, and an alternate solution in case the proposal ultimately proves unfeasible, for this thread I've prepared a less preferable (Edit for clarity: this means here for discussion purposes; see proposal below for actual implementation), but ridiculously simple "easy fix":

Remove the pulse function from inserters (and maybe belts).

I see no reason unsuspecting players should be lured into using a flawed implementation of a pulse function with potentially disastrous consequences when they could instead be encouraged to reproduce a reliable version so trivially:
fixed.png
fixed.png (477.98 KiB) Viewed 5942 times
If at all possible, however, the following proposal would be superior, as it includes the side benefit of helping optimize the game's performance, especially for complex and interesting logic creations like Facto-RayO:
The proposal
  • Remove the energy buffer from dedicated logic devices (combinators).
  • Install corresponding buffers/"logic clocks" on each electrical network instead
  • Redirect combinator UI elements that previously showed energy buffer levels to the electric network satisfaction level
  • Consolidate calculation of power drain for logic devices on each power network (similar to solar panels)
  • Increment the "logic clock" for each network each tick according to the power drain calculation, and use it to determine whether or not logic devices that drew power from that network have power to do logic that tick
  • Cause all logic devices that are unable to perform logic due to the "logic clock" state to repeat their previous signals (as combinators do now)
  • Optional: consistently apply an additional 1W logic power requirement (to be calculated as described above) to all devices that graphically acquire extra apparatus when linked to a logic circuit
Last edited by Theikkru on Wed Nov 18, 2020 7:21 pm, edited 3 times in total.

User avatar
Deadlock989
Smart Inserter
Smart Inserter
Posts: 2528
Joined: Fri Nov 06, 2015 7:41 pm

Re: The pulse function on inserters (+belts?) is inconsistent (under low power) and a noob trap. Please remove if unfixa

Post by Deadlock989 »

Or you could just power your combinators properly.

Someone even made a mod that lets you avoid having to make that incredibly minimal effort.

I mean, the sheer arrogance of asking for a whole feature to be removed from the game just because you can't be bothered to use it properly.
Image

Theikkru
Filter Inserter
Filter Inserter
Posts: 353
Joined: Wed Mar 27, 2019 2:18 pm
Contact:

Re: The pulse function on inserters (+belts?) is inconsistent (under low power) and a noob trap. Please remove if unfixa

Post by Theikkru »

What feature? The pulse function on inserters? I just demonstrated how it could easily be reproduced without broken behavior, so how is that removing it from the game?

foamy
Filter Inserter
Filter Inserter
Posts: 432
Joined: Mon Aug 26, 2019 4:14 am
Contact:

Re: The pulse function on inserters (+belts?) is inconsistent (under low power) and a noob trap. Please remove if unfixa

Post by foamy »

Deadlock989 wrote:
Sun Nov 15, 2020 2:06 am
Or you could just power your combinators properly.

Someone even made a mod that lets you avoid having to make that incredibly minimal effort.

I mean, the sheer arrogance of asking for a whole feature to be removed from the game just because you can't be bothered to use it properly.

Your contributions are less than helpful, in my books. Someone suggesting a way for the game to be made better -- even if you disagree with it! -- ought not to be dismissed or sneered at. It's antithetical to the entire purpose of this forum and it discourages anyone else who might have thoughts.

As things stand right now in a logic system it is only, specifically, the arithmetic and decider combinators that require power. Nothing else needs electricity to perform logic operations. Switches don't, belts don't, and while inserters can't act with no power, they will still both generate, and perform logic on, logic signals.

Smoothing that out to consistent behaviour is not a bad thing! There is no actual gameplay benefit to leaving it as it stands, and it means similar systems behave in dissimilar ways for no compelling reason.


Removing the pulse signal entirely is a drastic answer and I don't endorse it -- because it's a very useful thing that I use all the time, so kindly don't sneer at me for being unable to make things work --, but it's not the actual proposal here. The idea of clocking every logic device based on the electric demand/supply balance of the network rather than using individual buffers is.

My questions with regard to that would be things like:

1. What happens if a logic device is receiving power from multiple networks?
2. What about logic devices that also execute physical functions which require power (inserters, pumps)?
3. Would power draw be added to devices that currently have none at all (belts, switches)?

Theikkru
Filter Inserter
Filter Inserter
Posts: 353
Joined: Wed Mar 27, 2019 2:18 pm
Contact:

Re: The pulse function on inserters (+belts?) is inconsistent (under low power) and a noob trap. Please remove if unfixa

Post by Theikkru »

foamy wrote:
Sun Nov 15, 2020 2:32 am
[...]
Removing the pulse signal entirely is a drastic answer and I don't endorse it -- because it's a very useful thing that I use all the time, so kindly don't sneer at me for being unable to make things work --, but it's not the actual proposal here. The idea of clocking every logic device based on the electric demand/supply balance of the network rather than using individual buffers is.
Rest assured, you are correct. My "easy fix" suggestion is primarily a rhetorical demonstration of the absurdity of the inconsistency and how trivial it would be to fix things. In the event it's actually implemented, you'd have to use the 2-combinator setup I showed to recreate the pulse function, but that would be it.
foamy wrote:
Sun Nov 15, 2020 2:32 am
My questions with regard to that would be things like:

1. What happens if a logic device is receiving power from multiple networks?
2. What about logic devices that also execute physical functions which require power (inserters, pumps)?
3. Would power draw be added to devices that currently have none at all (belts, switches)?
1. Belong to the network with more power available for both power draw calculations and logic clocking. If power availability is equal or ambiguous, it can be arbitrary/random.
2. Logic power calculations would be consolidated together and calculated separately from other power functions, so the effects would be applied separately too. An inserter or pump would get an allotment of power for its physical energy buffer separately from the logic clock tick telling it to do logic.
3. Belts yes, switches no. Switches already have wire attachment points and don't get an extra doodad on them when wired to a circuit.

User avatar
NotRexButCaesar
Smart Inserter
Smart Inserter
Posts: 1120
Joined: Sun Feb 16, 2020 12:47 am
Contact:

Re: The pulse function on inserters (+belts?) is inconsistent (under low power) and a noob trap. Please remove if unfixa

Post by NotRexButCaesar »

Theikkru wrote:
Sun Nov 15, 2020 2:51 am
1. What happens if a logic device is receiving power from multiple networks?
2. What about logic devices that also execute physical functions which require power (inserters, pumps)?
3. Would power draw be added to devices that currently have none at all (belts, switches)?
1. It should get full power and work normally similar to other machines in multiple networks.
2. What about them? Logic and function are separate: apply function first, then logic.
3. No, that makes no sense to me.
—Crevez, chiens, si vous n'étes pas contents!

foamy
Filter Inserter
Filter Inserter
Posts: 432
Joined: Mon Aug 26, 2019 4:14 am
Contact:

Re: The pulse function on inserters (+belts?) is inconsistent (under low power) and a noob trap. Please remove if unfixa

Post by foamy »

AmericanPatriot wrote:
Sun Nov 15, 2020 2:56 am
2. What about them?
Because they do other, power-consuming actions, they can't be converted to the monotonic system like the pure-logic devices could; they'd still need the conventional power buffer and draw in order to perform their non-logic functions.

EDIT: I see @Theikkru made the same point.

Another question for ikkru, though: How would you handle power variance? Particularly in extreme scenarios, which can be generated easily (intentionally or not) through circuit-controlled power systems?

Say for example on Tick 1, the system has 25% power and runs at, say, 1/8th speed or whatever. So a logic operation would take 8 ticks. At Tick 2, the system slams on to 100% power and stays there. When does the operation complete?
Last edited by foamy on Sun Nov 15, 2020 3:06 am, edited 2 times in total.

Theikkru
Filter Inserter
Filter Inserter
Posts: 353
Joined: Wed Mar 27, 2019 2:18 pm
Contact:

Re: The pulse function on inserters (+belts?) is inconsistent (under low power) and a noob trap. Please remove if unfixa

Post by Theikkru »

AmericanPatriot wrote:
Sun Nov 15, 2020 2:56 am
[...]
3. No, that makes no sense to me.
Belts do get that fancy laser scanner thingy going on when you hook them up. I think that justifies at least 1W of power draw (besides being convenient for consistency). I did list that as optional though.

Theikkru
Filter Inserter
Filter Inserter
Posts: 353
Joined: Wed Mar 27, 2019 2:18 pm
Contact:

Re: The pulse function on inserters (+belts?) is inconsistent (under low power) and a noob trap. Please remove if unfixa

Post by Theikkru »

foamy wrote:
Sun Nov 15, 2020 3:01 am
[...]
Another question for ikkru, though: How would you handle power variance? Particularly in extreme scenarios, which can be generated easily (intentionally or not) through circuit-controlled power systems?

Say for example on Tick 1, the system has 25% power and runs at, say, 1/8th speed or whatever. So a logic operation would take 8 ticks. At Tick 2, the system slams on to 100% power and stays there. When does the operation complete?
Tick 2. The "logic clock" would basically be a rebranding of the energy buffer (except residing on an electrical network) and would behave the same way energy buffers do now, so the network would fill the clock based on how much energy it can give to logic (always 100% if power is sufficient) and deduct a "tick"'s worth of clock if it can tell its constituents to do logic.

foamy
Filter Inserter
Filter Inserter
Posts: 432
Joined: Mon Aug 26, 2019 4:14 am
Contact:

Re: The pulse function on inserters (+belts?) is inconsistent (under low power) and a noob trap. Please remove if unfixa

Post by foamy »

Theikkru wrote:
Sun Nov 15, 2020 3:10 am
foamy wrote:
Sun Nov 15, 2020 3:01 am
[...]
Another question for ikkru, though: How would you handle power variance? Particularly in extreme scenarios, which can be generated easily (intentionally or not) through circuit-controlled power systems?

Say for example on Tick 1, the system has 25% power and runs at, say, 1/8th speed or whatever. So a logic operation would take 8 ticks. At Tick 2, the system slams on to 100% power and stays there. When does the operation complete?
Tick 2. The "logic clock" would basically be a rebranding of the energy buffer (except residing on an electrical network) and would behave the same way energy buffers do now, so the network would fill the clock based on how much energy it can give to logic (always 100% if power is sufficient) and deduct a "tick"'s worth of clock if it can tell its constituents to do logic.
Okay, so this would scale speed directly with satisfaction? Or would you try to establish some kind of threshold or priority system such that it would still run at full speed if there was marginal power?

Theikkru
Filter Inserter
Filter Inserter
Posts: 353
Joined: Wed Mar 27, 2019 2:18 pm
Contact:

Re: The pulse function on inserters (+belts?) is inconsistent (under low power) and a noob trap. Please remove if unfixa

Post by Theikkru »

foamy wrote:
Sun Nov 15, 2020 3:23 am
Okay, so this would scale speed directly with satisfaction? Or would you try to establish some kind of threshold or priority system such that it would still run at full speed if there was marginal power?
Honestly, it's a bit unclear. I'm basically blackboxing some specifics because I'm not privy to all the internal game mechanics. Based on boskid's post in the "bug" topic, there appears to be some sort of priority control based on buffer sizes. What I can say is that since the proposal still uses a buffer, the current behavior of combinators would be reproduced across all logic devices in sync on the same electrical network. Judging from my own testing, that suggests everything would get slow below 50% satisfaction. I assume that's adjustable. I personally think it would make more sense for the slowing to start as soon as power falls below 100%, though I suspect a couple tweaks to the calculations would be required to get that to scale nicely.

User avatar
MEOWMI
Filter Inserter
Filter Inserter
Posts: 307
Joined: Wed May 22, 2019 12:21 pm
Contact:

Re: The pulse function on inserters (+belts?) is inconsistent (under low power) and a noob trap. Please remove if unfixa

Post by MEOWMI »

Why would you have 50% satisfaction? I could understand it if it was a bug that happened frequently when you have random, instantaneous dips in power, but it sounds like you're consistently sitting on very low power (considering the baseline is 100% satisfaction).

Trying to min-max entity behavior in consistently low power settings is by no means at all a beginner or noob thing. It's reasonable to make a bug report, but at that sort of meta level you're going to run into all kinds of quirks and it's definitely not a noob thing.

To be honest, circuits are not noob friendly to begin with. I have a lot of experience with similar systems both in other games and outside of games, and yet it still took even me a long time to wrap my head around all the crazy stuff involved.

Theikkru
Filter Inserter
Filter Inserter
Posts: 353
Joined: Wed Mar 27, 2019 2:18 pm
Contact:

Re: The pulse function on inserters (+belts?) is inconsistent (under low power) and a noob trap. Please remove if unfixa

Post by Theikkru »

MEOWMI wrote:
Sun Nov 15, 2020 4:49 am
Why would you have 50% satisfaction? I could understand it if it was a bug that happened frequently when you have random, instantaneous dips in power, but it sounds like you're consistently sitting on very low power (considering the baseline is 100% satisfaction).
[...]
Power can easily crash from 100% down below 50% intermittently due to things like sudden bot use from construction or logistical orders, or laser turrets firing.
MEOWMI wrote:
Sun Nov 15, 2020 4:49 am
To be honest, circuits are not noob friendly to begin with. I have a lot of experience with similar systems both in other games and outside of games, and yet it still took even me a long time to wrap my head around all the crazy stuff involved.
This is all the more reason to remove confounding factors like an undocumented inconsistency in behavior that can unexpectedly and intermittently break all sorts of logic and trash attempts at learning in the process. While I was able to pin down the cause, I was half-intentionally looking for it, and I had an idea of what to look for. Anyone not so fortunate or familiar with how circuits and energy allocation work would likely just suffer the consequences of random logic failures without any chance whatsoever of determining the root cause. I wonder how many players have quietly given up on combinator logic after encountering erratic behavior like this and failing to reproduce it.

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

Re: The pulse function on inserters (+belts?) is inconsistent (under low power) and a noob trap. Please remove if unfixa

Post by ssilk »

moved to won’t implement — ssilk
It makes no sense to remove a feature, that has been proven to be useful, only because of an edge case that some players might not be able to handle correctly.

Edit: and the more I think about it: perhaps a different behavior for the combinators is the best solution of this problem.
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...

foamy
Filter Inserter
Filter Inserter
Posts: 432
Joined: Mon Aug 26, 2019 4:14 am
Contact:

Re: The pulse function on inserters (+belts?) is inconsistent (under low power) and a noob trap. Please remove if unfixa

Post by foamy »

ssilk wrote:
Sun Nov 15, 2020 8:49 am
Edit: and the more I think about it: perhaps a different behavior for the combinators is the best solution of this problem.
That's, uh, sort of what this suggestion is about? I dunno why the OP titled it as they did, but the actual suggestion is the one behind the spoiler cut. I think they were just annoyed at the people who didn't bother to read the other thread.

Although granted it's not so much that the combinator behavior would change, as the behaviour of all other logic entities would be changed to match combinators.

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

Re: The pulse function on inserters (+belts?) is inconsistent (under low power) and a noob trap. Please remove if unfixa

Post by ssilk »

Don’t take me serious, that opinion will change again tomorrow. :)

I see the problems beginners have with it, and I fall always myself into that trap (too optimistic about my power production), so I understand the frustration. And at the same time I think the whole stuff is completely logical and if someone cares just for 10 seconds she/he will see the problem.

It’s a computer game and if they are not difficult they make no fun.
If Factorio would be real-life it would never enter the gates of any factory. 8-)

So: no reason to kick another feature for that. :lol:
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...

User avatar
Deadlock989
Smart Inserter
Smart Inserter
Posts: 2528
Joined: Fri Nov 06, 2015 7:41 pm

Re: The pulse function on inserters (+belts?) is inconsistent (under low power) and a noob trap. Please remove if unfixa

Post by Deadlock989 »

I mean, you can win the game without ever placing a single combinator. So much for it being a "noob trap".

OP is just embarrassed because they built something elaborate that rested on a pulse mechanism like the Princess and the Pea, but forgot that combinators need power, so they've charged in here suggesting "bad game design". The devs have said that this logic isn't changing. There is no "problem". It's up to you to change, not the game.

Can we please keep at least a couple of learning points and barriers in this game before it becomes pure tapioca.
Image

Optymistyk
Long Handed Inserter
Long Handed Inserter
Posts: 52
Joined: Sun Jun 14, 2020 9:41 pm
Contact:

Re: The pulse function on inserters (+belts?) is inconsistent (under low power) and a noob trap. Please remove if unfixa

Post by Optymistyk »

Well if I try running my CPU at 50% power it's probably not gonna run properly so... Yeah.

I propose a different sollution: Make combinators not use power like belts ("Powering up combinators is a challenging and interesting part of the game!" - said noone ever)

User avatar
Deadlock989
Smart Inserter
Smart Inserter
Posts: 2528
Joined: Fri Nov 06, 2015 7:41 pm

Re: The pulse function on inserters (+belts?) is inconsistent (under low power) and a noob trap. Please remove if unfixa

Post by Deadlock989 »

I mean, why stop there. Belts don't need power. Ammo turrets track and fire without power. Why should I be vexed by the tedious problem of powering inserters and assemblers too?

It's called the race to the bottom.

You can mod combinators and any other powered entity to not use power (or at least tap infinite void power). There are things which can be polished in Factorio (fewer every week) but for other personal taste situations they went to extreme lengths to provide us with a modding interface so that folks can customise the game to their own liking instead of forcing their preferences on everyone else.
Image

Optymistyk
Long Handed Inserter
Long Handed Inserter
Posts: 52
Joined: Sun Jun 14, 2020 9:41 pm
Contact:

Re: The pulse function on inserters (+belts?) is inconsistent (under low power) and a noob trap. Please remove if unfixa

Post by Optymistyk »

Deadlock989 wrote:
Sun Nov 15, 2020 12:35 pm
I mean, why stop there. Belts don't need power. Ammo turrets track and fire without power. Why should I be vexed by the tedious problem of powering inserters and assemblers too?

It's called the race to the bottom.

You can mod combinators and any other powered entity to not use power (or at least tap infinite void power). There are things which can be polished in Factorio (fewer every week) but for other personal taste situations they went to extreme lengths to provide us with a modding interface so that folks can customise the game to their own liking instead of forcing their preferences on everyone else.
Well yeah except assemblers and inserters use a bunch of Power so they are actually challenging to feed. Assemblers also produce Pollution and Pollution is based on Power. Combinators use almost no power and you will never find them eating up any noticeable ammount of electricity. It only ever comes into play if something else drains all the power and starves out the circuit.

Another benefit of not having to power combinators is that it would reduce clutter cuz you would not need to place down power poles, making circuits easier to read.

I mean, if you really wanted to you could make a mod that requires everything to be powered instead of "forcing" your way of playing on everyone else. The discussion is on whether or not it's sensible to have some things take up power in Vanilla

Locked

Return to “Outdated/Not implemented”