Friday Facts #384 - Combinators 2.0

Regular reports on Factorio development.
Violet_Scarelli
Burner Inserter
Burner Inserter
Posts: 12
Joined: Fri Sep 01, 2023 8:03 pm
Contact:

Re: Friday Facts #384 - Combinators 2.0

Post by Violet_Scarelli »

The one thing on my wishlist for combinators is some emulation/improvement of systems like LTN/Cybersyn in vanilla. The ability to request a train based on what's needed is extremely useful, and having it in vanilla would be useful, since we're suddenly getting more methods of moving things around, and it could be extended to the new rocket/space platform system as well.
mmmPI
Smart Inserter
Smart Inserter
Posts: 3643
Joined: Mon Jun 20, 2016 6:10 pm
Contact:

Re: Friday Facts #384 - Combinators 2.0

Post by mmmPI »

Kadet123 wrote: Fri Nov 10, 2023 7:31 pm Thinking about it more, filtering might even be simpler than I suggested. Set the Decider to have 1 condition of "Any not 0", and the right side is a list of selectable signals to output (using Input Count).

I'm a software dev, so I'm kinda used to thinking about how logic will flow without it being fully testable yet. But still, I might be wrong. But I like the features they are adding.
Currently when setting a decider with "any not 0" output "anything" it only picks up the first signal that is non 0 amongst the input, "first" in the internal naming logic which has implications for colors, some have priority, alphabet and numbers, but seems random when it has to choose between iron ore and stone or coal signal.

What you suggest wouldn't allow to have say green wire conveying lots of different inputs to be filtered, and red wire the control value to select which signals from the green wire to let pass the combinator. It would mean setting up many different conditions on the combinator itself so that wouldn't be as dynamic. But maybe i am misunderstanding, even if i said i was familiar with combinator i still had to build that one in game because the rules were not clear to me in that particular case.

That's still a way to filter signal, though not as powerful as a (green)*(red) would allow, which i think is a good argument to illustrate the positive implications of such feature if it was to be added :)
Brambor
Fast Inserter
Fast Inserter
Posts: 189
Joined: Thu May 07, 2015 1:52 pm
Contact:

Re: Friday Facts #384 - Combinators 2.0

Post by Brambor »

Kadet123 wrote: Fri Nov 10, 2023 4:08 pm
Brambor wrote: Fri Nov 10, 2023 2:58 pm I would like to get a specific tick (morning perhaps) on this surface. I made combinator based calculation of how much power does my anti-meteor defence need until morning and checked that the accumulators will last. This is based on number of ticks in a day, solar power multiplier, ammount of solar panels and ammount of accumulators.

Detecting when the morning starts for the first time reminds as a annoying problem left to solve and the solution is... not nice (after first morning the next arrives after certain number of ticks). I don't care if it is morning, sunset, sunrise, middle of the night, but give me something. Also, not Nautilus time but this surface time.
Wouldn't you be able to do this with an isolated solar panel, accumulator, and something with a small constant power draw? Once set up and charged, whenever the accumulator's charge is >= 99 its "morning", over the night the charge dips < 99. These 2 conditions could be set/reset conditions for logic (search for "RS Latch").
It is not exact enough. You can set up solar power and single combinator that setup starts outputting shortly after sun starts rising. The more solar and the quicker the transition from night to day, the quicker it is. Different planets have different solar efficiency. You can calculate all that for each planet, but I didn't bother. Selector saying that would be very nice.

This problem has been solved numerous ways, I heard that the most accurate is pump with tank on each end connected to solar panel.
adjl
Inserter
Inserter
Posts: 26
Joined: Mon May 07, 2018 6:42 pm
Contact:

Re: Friday Facts #384 - Combinators 2.0

Post by adjl »

I'll second what others have said about upgrading Arithmetic Combinators to be able to perform operations between red and green signals, since that would do a fantastic job of streamlining quite a few builds, but otherwise this is all looking pretty amazing.
Saphira123456 wrote: Fri Nov 10, 2023 6:41 pm Belts move stuff from place to place automatically and are an essential part of the gameplay, they are absolutely essential. For fluids, pipes are essential. And for high-density transport, nothing beats a train.

Robots on the other hand, not so much. They don't do anything any better than the player and his or her built structures already can do manually, especially at the point where they become available. They do NOT increase efficiency, defensibility, or etcetera, and are quite simply, completely unnecessary and entirely optional.
These are contradictory statements. Sure, everything bots do could be done some other way. Construction bots can be replaced by manually building or repairing items yourself, and logistics bots can be replaced by belts, trains, chains of inserters, or manually running around between chests. But the same can be said of everything else you're mentioning. What can a train do that a long belt can't? Why use pipes when you could just barrel everything right at the source and ship those around (putting aside for a moment that you would need *some* pipes because assemblers are too big to reach all fluid connections for refineries/chem plants without them)? Why use belts when you can just hand-feed the entire factory?

Like everything else in the game, bots and the circuit network are tools. Logistics bots help to automate restocking and are by far the best solution for moving around small quantities of items that are needed in remote locations. Construction bots help maintain defensive structures that are under constant attack so players don't need to babysit them, or automate the construction of larger builds (especially rail networks; building intersections by hand more than once is madness). The circuit network offers greater control over your factory so you can tweak things as desired (the simplest and most common example being controlling pumps to balance oil cracking so you don't need perfect ratios). None of them are necessary to launch a rocket, but most of the tools in the game aren't necessary to launch a rocket, and launching one rocket is only a tiny fraction of the content the game has to offer. They're available not because they're necessary, but because giving players multiple ways to solve the game's puzzles makes the game more fun for more people, and that's overwhelmingly a good thing.

You don't want to use the circuit network or bots? Go for it. You've been given multiple ways to solve the game's puzzles, so you can and should take your pick of the ones you enjoy best and ignore the others. But suggesting that "nothing of value would be lost" by entirely removing bots and the circuit network completely ignores the substantial number of people that do enjoy using them, and that kind of egocentrism adds nothing of value to this thread.
Sad_Brother
Fast Inserter
Fast Inserter
Posts: 209
Joined: Mon Jan 08, 2018 4:54 pm
Contact:

Re: Friday Facts #384 - Combinators 2.0

Post by Sad_Brother »

Great Thanks!

But why is Arithmetic Combinator 2.0 cannot work like GreenSignal / RedSignal ? It would be useful.

Also ability to have something like GreenMinusRed on input side would be useful for some schemes. Yet another Combinator add yet another tick of time.

I hope Green / Red would be also selectable in many places, where we need to separate input and output. For example Inserter filter control and hand content.

Thanks again and best wishes!
Chard
Burner Inserter
Burner Inserter
Posts: 6
Joined: Fri Mar 22, 2019 6:50 pm
Contact:

Re: Friday Facts #384 - Combinators 2.0

Post by Chard »

mmmPI wrote: Fri Nov 10, 2023 8:05 pm What you suggest wouldn't allow to have say green wire conveying lots of different inputs to be filtered, and red wire the control value to select which signals from the green wire to let pass the combinator. It would mean setting up many different conditions on the combinator itself so that wouldn't be as dynamic. But maybe i am misunderstanding, even if i said i was familiar with combinator i still had to build that one in game because the rules were not clear to me in that particular case.

That's still a way to filter signal, though not as powerful as a (green)*(red) would allow, which i think is a good argument to illustrate the positive implications of such feature if it was to be added :)
If you set a decider combinator with inputs to be filtered on green and with the control signal indicating what things to allow through on red, you can configure it as "If Each (Red) != 0, then Output Each Input Value (Green)". This will achieve the desired result with only what has been shown in FFF. Right?

Not that I don't really, REALLY, want the ability to multiply two circuits together component-wise. :D
dragon_gawain
Long Handed Inserter
Long Handed Inserter
Posts: 63
Joined: Sun Dec 19, 2021 11:37 pm
Contact:

Re: Friday Facts #384 - Combinators 2.0

Post by dragon_gawain »

With all these circuit network improvements, perhaps we'll even see the rise of a third wire.
While two wires are powerful, three is even more powerful! Just imagine what we could do with the might of the blue wire! (for example)
mmmPI
Smart Inserter
Smart Inserter
Posts: 3643
Joined: Mon Jun 20, 2016 6:10 pm
Contact:

Re: Friday Facts #384 - Combinators 2.0

Post by mmmPI »

Chard wrote: Fri Nov 10, 2023 8:30 pm
mmmPI wrote: Fri Nov 10, 2023 8:05 pm What you suggest wouldn't allow to have say green wire conveying lots of different inputs to be filtered, and red wire the control value to select which signals from the green wire to let pass the combinator. It would mean setting up many different conditions on the combinator itself so that wouldn't be as dynamic. But maybe i am misunderstanding, even if i said i was familiar with combinator i still had to build that one in game because the rules were not clear to me in that particular case.

That's still a way to filter signal, though not as powerful as a (green)*(red) would allow, which i think is a good argument to illustrate the positive implications of such feature if it was to be added :)
If you set a decider combinator with inputs to be filtered on green and with the control signal indicating what things to allow through on red, you can configure it as "If Each (Red) != 0, then Output Each Input Value (Green)". This will achieve the desired result with only what has been shown in FFF. Right?

Not that I don't really, REALLY, want the ability to multiply two circuits together component-wise. :D
Maybe it will achieve the desired result, with "each" as you say, but maybe it will also include the signal from (red input) that are not 0 on the (green output) even if they are not present on the green input. Or maybe it will only pass the value from the red input that are non 0 on the green output totally ignoring the green input. The way those are implemented i have hard time to know what's "logical".

Unless it would be the ability to multiply to circuits together component-wise, that seem quite intuitive way to do the filtering with a control signal that has only 1 or 0 so that it filter or not the input on the other signal :D
bugboy2222
Manual Inserter
Manual Inserter
Posts: 3
Joined: Fri Nov 10, 2023 8:51 pm
Contact:

Re: Friday Facts #384 - Combinators 2.0

Post by bugboy2222 »

It's probably been said already but the biggest thing for me with circuit networks is not being able to see the contents of a very large network. If you have too many signals, mousing over a power pole or something similar will display some of the network, but the rest of it will continue off screen. Ideally clicking the power pole would bring up a gui where you could scroll through the contents of necessary, perhaps something along side the power screen? Like another tab or something?
Agamemnon
Inserter
Inserter
Posts: 37
Joined: Fri Jun 29, 2018 9:48 pm
Contact:

Re: Friday Facts #384 - Combinators 2.0

Post by Agamemnon »

Oh, was that a call that I may wish for a feature for the new combinator?

Severely missed in my Space Exploration Playthrough: A quick and easy way to filter Signals by a list of other signals. (Basically the operations INNER JOIN, RED JOIN, GREEN JOIN as if for database tables)

Use case: I have a readout of two seperate logistics nets on red and green input. I want to output the difference between them, but only for things that are actually present at the time in both. (plus later in my logic there may be some more arithmetic that may be different for each item, and I don't want to carry through all the junk data every step of the way - logistics readouts are guaranteed bigger than the tooltip on a pole and very inconvenient to check visually), so I want it to only forward a signal, if that signal exists in both inputs.

Use case2: I have a train with filtered wagons containing a mixture of materials each. I want to unload only certain materials at a given station, but I don't want to set up filter stack inserters for each. (also more than 12 types) I also want to unload fast, and in a given ratio. And the train to leave when out of one item, but not when others are still unloading, stay where it is when I compare its contents to the logistics readout of the resupply station and conclude that driving back for more is pointless... etc... I am doing this right now in 11 parts or so, half of which are just workarounds for filtering. It's a mess. I think with easy filters I could do all that in 5 and have a much nicer time setting one such station up and troubleshooting it.
Chard
Burner Inserter
Burner Inserter
Posts: 6
Joined: Fri Mar 22, 2019 6:50 pm
Contact:

Re: Friday Facts #384 - Combinators 2.0

Post by Chard »

mmmPI wrote: Fri Nov 10, 2023 8:45 pm
Chard wrote: Fri Nov 10, 2023 8:30 pm If you set a decider combinator with inputs to be filtered on green and with the control signal indicating what things to allow through on red, you can configure it as "If Each (Red) != 0, then Output Each Input Value (Green)". This will achieve the desired result with only what has been shown in FFF. Right?

Not that I don't really, REALLY, want the ability to multiply two circuits together component-wise. :D
Maybe it will achieve the desired result, with "each" as you say, but maybe it will also include the signal from (red input) that are not 0 on the (green output) even if they are not present on the green input. Or maybe it will only pass the value from the red input that are non 0 on the green output totally ignoring the green input. The way those are implemented i have hard time to know what's "logical".

Unless it would be the ability to multiply to circuits together component-wise, that seem quite intuitive way to do the filtering with a control signal that has only 1 or 0 so that it filter or not the input on the other signal :D
That's fair, I guess we can only make assumptions about how this works right now. My assumptions feel reasonable to me, but I shall have to wait and see. More than any of the previous ones, this FFF is leaving me with more questions than answers.
mmmPI
Smart Inserter
Smart Inserter
Posts: 3643
Joined: Mon Jun 20, 2016 6:10 pm
Contact:

Re: Friday Facts #384 - Combinators 2.0

Post by mmmPI »

Chard wrote: Fri Nov 10, 2023 9:05 pm
That's fair, I guess we can only make assumptions about how this works right now. My assumptions feel reasonable to me, but I shall have to wait and see. More than any of the previous ones, this FFF is leaving me with more questions than answers.
The feeling i have is getting new legs with an additionnal joint wich on the paper would be better than my current legs, but for the time being i can't picture how to walk with them :)

Aside from the questionning i have a little defensive feeling that i may be continuing to do things out of habits while missing the new opportunity to do the same things made easier, similar feeling as needing to re-learn how to do basic/vital things in regular game. ( am i missing the obvious way to do such thing ? duh )

Although when considering only the combinator-puzzle part, that's refreshing all the different little build, making the expansion worth some replayability. And also leaving me curious, but it was written in the FFF that was probably not the last post about combinators so maybe some of the assumptions will be confirmed or more question raised ^^
MrDayne
Burner Inserter
Burner Inserter
Posts: 9
Joined: Fri Dec 23, 2022 9:56 am
Contact:

Re: Friday Facts #384 - Combinators 2.0

Post by MrDayne »

Hi. I have a few recommendations from my personal gameplay experience.

1. I would like to select the train station circuit option regardless of it being connected or not. Sometimes I'm editing that and I would like to set the option before connecting the cable, but I have to connect the cable and then go back into the configuration. Since I use train limits on all my stations that case has probably occurred over 100 times in my last playthrough alone.

2. In the arithmetic combinators I would love to be able to select the cable color of the output as well. Also I've found myself wanting a feature in them that is to apply to anything an operator, let's say multiply, and multiply every signal by the same signal that I have on the other color cable. This would allow to operate on them very easily with a constant combinator. Say I have 6 signals that I want to divide by their stack size. I set a constant combinator with all those 6 signals and each signal with the number of the stack size. Then I just connect the signals that I have to the arithmetic combinator on red, set combinator to divide all with their green cable counterpart, and I get stacks.

3. I would love to be able to read the fuel of a train in the train stations.

Loved this FFF. I'm a circuit neeeerrrrdddd!!!
User avatar
ThePiachu
Inserter
Inserter
Posts: 35
Joined: Sat Aug 22, 2015 8:54 pm
Contact:

Re: Friday Facts #384 - Combinators 2.0

Post by ThePiachu »

One thing I'd love to see is this scenario:

I have two big chests from Space Exploration loading my train with 2 wagons. I have a Storage Chest feeding excess material into one of them. I want to balance items between them. Since the chests are big enough for me to put Inserters between them, I can balance them with the logic of "if left has more items than right, move items from left to right". So I'd like that to be just a red and green wire going into one inserter and the inserter being able to compare red and green signals of the same item to activate or deactivate. So that I can just use 4 wires and 2 inserters to balance the two chests both ways. Heck, this could be used to balance a chain of chests like that back and forth! Would be very useful for train logistics when you also use Passive Provider chests and bots steal from one of the chests unevenly.
Cerberus
Long Handed Inserter
Long Handed Inserter
Posts: 60
Joined: Sat Sep 17, 2022 8:12 am
Contact:

Re: Friday Facts #384 - Combinators 2.0

Post by Cerberus »

Somtuk wrote: Fri Nov 10, 2023 1:27 pm
I think I have a better (and short) explanation for the modes...

Mode 1: The selector picks 1 output from a list of MULTIPLE inputs
Mode 2: The selector picks 1 output from 1 input (the list is the properties of that 1 input)
I agree with this. The selector seems very random right now because it has so diverse functionality.
It would make more sense if everything of mode 2 was a different combinator. Slightly annoying because yet another assembler machine to set up, but more intuitive, the "property extractor combinator" (bad name). It could output multiple signals too. Like R signal for rocket capacity, S for signal strength, Q for quality etc. Now you would need different selector combinators if you want multiple values. On contrast to "mode 1" from your post which will always get 1 value max.

But it also feels like nitpicking because in practice I don't think you might need both the stack size and the rocket capacity a lot of times anyway.

A QoL change, maybe a bit unrelated but this FFF reminds me, that I would like much more is if stack size became visible on the mouseover properties of an item (you know, together with the list of "min power", "crafting speed", ...). Useful for deciding how many slots to keep open for a chest to prevent overproducing an item. Now you need to look at your personal logistics or a requester chest to see the default value to know the stack size, which is cumbersome. Especially if you don't have bots yet, or that item is already being requested so you have to edit it to something else and back to see the value.
gGeorg
Filter Inserter
Filter Inserter
Posts: 436
Joined: Wed Jun 19, 2019 8:06 pm
Contact:

Re: Friday Facts #384 - Combinators 2.0

Post by gGeorg »

Saphira123456 wrote: Fri Nov 10, 2023 5:48 pm I'll be honest here: I have never used the signal network and am entirely unlikely to start because there's no tutorials on it
Wiki tutorial made by developers:
https://wiki.factorio.com/Tutorials#Circuit_network
other sources - Nilaus is probably most durable youtber with programming background :
https://www.youtube.com/watch?v=j9I2l7r4pWM
but you can find much more
https://www.youtube.com/results?search_ ... k+tutorial
Tricorius
Filter Inserter
Filter Inserter
Posts: 279
Joined: Fri Jul 01, 2016 9:04 pm
Contact:

Re: Friday Facts #384 - Combinators 2.0

Post by Tricorius »

Saphira123456 wrote: Fri Nov 10, 2023 5:48 pm Robotics and the signal network are, at least to me, the most difficult and cumbersome parts of the game to learn and use, since there's no tutorials or any other way to do so. They are also pretty much useless, there's literally no need to use them to complete the game in 1.1. I don't see why they were even included in the base game, in the first place.
Just because YOU don’t use them doesn’t mean they are useless. Technically most aspects of the game are useless according to your definition. You could technically manually mine and feed every ore and intermediate into assemblers and just build fluids. But why would you?

The circuit network and robots are Quality of Life features. Some of us like to build large and as you build larger these things are indispensable.

Personally, I rush robots in any new game because they are so useful by doing tedious things for me while I focus on other things. Even up to my very first rocket launch they are insanely useful. And I have some standard blueprints (such as outposting) that use circuits.

🤷‍♂️
User avatar
Jon8RFC
Filter Inserter
Filter Inserter
Posts: 554
Joined: Tue May 10, 2016 3:39 pm
Contact:

Re: Friday Facts #384 - Combinators 2.0

Post by Jon8RFC »

Great changes!

I'd love to see:

Expanded into a single wire which carries all signals, for simplicity, since input selection now exists. An intertwined wire?

More signal networks with that single wire and being able to choose the network.

Just being able to manually number a network. Wow, that would make things so simple to understand by labeling and knowing what does what. No more automatic, seemingly-haphazard network number changes, not knowing which network goes where and why it changed and where it changed.

Have power lines carry signals by default once it's connected. Connect one wire to/from each combinator and a power pole and it is done. No more manually stringing things long distances after the fact. Cumbersome.

Connecting wires still automatically connects to the set network, and all can be manually changed since network selection now exists!

Click & drag box selection of combinators then pop-up "use this network" and "name this network".

Legacy option to keep it cumbersome and less powerful for those missing the axes with limited life.
Image
Tertius
Filter Inserter
Filter Inserter
Posts: 936
Joined: Fri Mar 19, 2021 5:58 pm
Contact:

Re: Friday Facts #384 - Combinators 2.0

Post by Tertius »

Saphira123456 wrote: Fri Nov 10, 2023 5:48 pm If the signal network feature was eliminated from the game entirely in 2.0, nothing of value would be lost because there's no legitimate need for it. That's my opinion on this FF and on the circuit network in general.
That's your point of view. My point of view with this topic is that the circuit network is an essential part of the game, and I would be lost without the control it provides, because I would sink all time in manually micromanaging too many things instead of building things and grow the factory.

The circuit network isn't a toy or something artificial or unreal. The functionality it provides has been (and is probably still) real in real world factories. It provides basic control beyond manual or purely mechanical switches and relays, known today as the third industrial revolution which culminated in controlling whole factories with sophisticated programmable computers. This all faithfully matches the factory and logistics simulation Factorio provides.
Zomis
Inserter
Inserter
Posts: 33
Joined: Fri Apr 21, 2017 7:01 pm
Contact:

Re: Friday Facts #384 - Combinators 2.0

Post by Zomis »

Something that is currently very difficult, and requires O(log n) time, is to take the maximum or minimum value from a circuit. So that would be a great fit for the selector. "Select maximum value(s)" + "Select minimum value(s)"

Average value is currently easy to do with combinators, but max/min is ridiculously complicated.
Post Reply

Return to “News”