What we need for combinators to be fun

Post all other topics which do not belong to any other category.
Post Reply
hoenas
Manual Inserter
Manual Inserter
Posts: 4
Joined: Tue Jul 28, 2015 9:17 pm
Contact:

What we need for combinators to be fun

Post by hoenas »

Hey guys,

I was just playing a bit with the new logic components in the game and I am amazed by the new possibilities.
But I came to the conclusion, that you could only make practical use of the new components if there were modules which are not (yet?) implented:
  • If we had "belt-scanners", giving us either the amount of items which were transported by it per tick (=derivative of item current) or since reset condition (=integrated item current), we could use this to control production instead of placing smart chests everywhere.
  • Another thing I came up with was an integrator, giving us the posibility of integrating signals.
  • Also some kind of controlable splitter or inserter would be nice, so we can sort different items by condition from belts.
I hope you guys understand what I am trying to express ;)

ratchetfreak
Filter Inserter
Filter Inserter
Posts: 950
Joined: Sat May 23, 2015 12:10 pm
Contact:

Re: What we need for combinators to be fun

Post by ratchetfreak »

integrator already exist if you loop a combinators output to the input and add your "input" to the input.

Inserters are already controllable though only 1 type of item per inserters but that shouldn't stop you from using multiple.

What's really needed is getting more information into the circuit network and more control of individual machines. Part of it is suggest in this topic

hoenas
Manual Inserter
Manual Inserter
Posts: 4
Joined: Tue Jul 28, 2015 9:17 pm
Contact:

Re: What we need for combinators to be fun

Post by hoenas »

ratchetfreak wrote:integrator already exist if you loop a combinators output to the input and add your "input" to the input.

Inserters are already controllable though only 1 type of item per inserters but that shouldn't stop you from using multiple.

What's really needed is getting more information into the circuit network and more control of individual machines. Part of it is suggest in this topic
I don't think that the control we have over inserters at this time is enough. There should be various conditions for various item types. So if I want to have control over 4 types of items i dont need to have 4 smart inserters.

Scalinger
Burner Inserter
Burner Inserter
Posts: 7
Joined: Thu Jul 23, 2015 12:00 am
Contact:

Re: What we need for combinators to be fun

Post by Scalinger »

I do think it would be great to specify a splitter to 1:3 and such, it's annoying placing a pyramid of them to get a specific split, does make your map look geniously complex though.

Zhab
Fast Inserter
Fast Inserter
Posts: 101
Joined: Sat Jul 18, 2015 10:17 pm
Contact:

Re: What we need for combinators to be fun

Post by Zhab »

hoenas wrote:
I don't think that the control we have over inserters at this time is enough. There should be various conditions for various item types. So if I want to have control over 4 types of items i dont need to have 4 smart inserters.
I would like to have one condition for each filter slots. You put the same item in 2 filter slots and both conditions would need to be true. An empty filter slot would mean any item and a condition place there would apply to all other items in other filter slots.

Those conditions would not serve to determine if the inserter should function or not. They would only do something like, yes you can pickup iron plates but only if... Whether or not the inserter is currently allowed to move right now would still be determined by existing conditions.

That way you could still activate or disable the inserter according to possibly very complex combinator wizardry, but when it is active you could have it pick specific items under specific conditions (which could be more combinator wizardry).

Ohhh... The possibilities of that.

Twinsen
Factorio Staff
Factorio Staff
Posts: 1329
Joined: Tue Sep 23, 2014 7:10 am
Contact:

Re: What we need for combinators to be fun

Post by Twinsen »

The way I would like to do it is to have the inserter be able to also work in "filter mode", meaning that if you send copper plates and batteries in the circuit network, the inserter will only pick up copper plates and batteries. Basically a filter programmable by the circuit network.

This way you can also do "one condition for each slot", not directly in the inserter, but with a combinator setup.

User avatar
DanGio
Filter Inserter
Filter Inserter
Posts: 394
Joined: Sat May 10, 2014 6:22 pm
Contact:

Re: What we need for combinators to be fun

Post by DanGio »

A mode where inserters pick up iron plates when you send "copper plates" signal ? Huge headache coming :)

ray4ever
Long Handed Inserter
Long Handed Inserter
Posts: 86
Joined: Sun Jan 12, 2014 9:22 am
Contact:

Re: What we need for combinators to be fun

Post by ray4ever »

Things I would like to see ingame:
  • Assemblers should be connectable to the network: Basicly I want to control the remotley, e.g. switching production on and off
  • Belt sensors in any way
  • A compact and easy to use "If-Than-Else-Combinator" (would be much easier to use for the broader audience than the current possibilities)
  • Ability to set the output of a combintor to 0 and not just 1 and input count (maybe just make the output amount choosable constant)
  • Maybe an easier to use (e.g. not bitwise) And / Or inserter (So you could easily build something like if x > 200 and y < 100 set z = 50)

Zhab
Fast Inserter
Fast Inserter
Posts: 101
Joined: Sat Jul 18, 2015 10:17 pm
Contact:

Re: What we need for combinators to be fun

Post by Zhab »

Twinsen wrote:The way I would like to do it is to have the inserter be able to also work in "filter mode", meaning that if you send copper plates and batteries in the circuit network, the inserter will only pick up iron plates and batteries. Basically a filter programmable by the circuit network.

This way you can also do "one condition for each slot", not directly in the inserter, but with a combinator setup.
Well I can work with that too. Sounds interesting. (by the way I'm going to assume you meant "pick up copper plates" there).

So to make sure I understand. You still have a condition. Something like if signal "A" > 0 then activate. But then you could set static filters (up to 5) or press a toggle switch or something and enter "dynamic filter mode" or something where what you are allowed to pick up correspond to any "item signal" you are receiving regardless of their value.

From there, you should use combinators to not only control if the inserter should operate at all to begin with, but also to control whether or not a specific item signal is or is not sent to the inserter.

For example,

(1) Constant combinator: signal "electronic circuit" set to 4 then output toward (2), (3) and (5)

(2) If signal "Iron plate" from smart chest is < than signal "electronic circuit" then output signal "Iron plate" (value 1) toward inserter

(3) signal "Electronic circuit" * 3 and output as signal "A" toward combinator (4) and (5)

(4) If signal "copper cable" from smart chest is < than signal "A" then output signal "copper cables" toward inserter

(5) Signal "Electronic circuit" + signal "A" and ouput as signal "B" toward combinator (7)

(6) Smart chest signal "iron plates" + smart chest signal "Copper cables" and output signal "C" toward combinator (7)

(7) If signal "C" = to signal "B" then output signal "D" (value 1) toward inserter

(inserter) If signal "D" = 0 then work

Side Note: I purposefully avoided reusing the same "letter signals" to avoid confusion.


Let's imagine a belt with iron plate and copper cables on it passing by a smart inserter that is standing in front of the smart chest. The little setup above would have the smart inserter place exactly 4 iron plates and exactly 12 copper cables in the smart chests. Setting the constant "electronic circuit" to 6 instead would have the inserter place 6 iron plates and 18 copper cables in the box.

If I got that right, then I can work with that. But it is not exactly compact thou. Use 6 combinators and the items are not even in the assembler yet (which would be nice to be able to connect to btw. read signal and enable or disable work. Would allow use to skip the extra smart chest step and follow up input procedure). Imagine doing that for 50 assemblers... But still, I can work with that.

While we are on the subject. There is something bugging me about the constant combinator. The values are always live... even when you are currently typing the number you want. Is there a way to freeze "live value" when you open the GUI and only update "live values once you close the GUI ? Or at the very least update after the cursor have left to text box ?

Also it would be nice if the slider could slide down to 0.
Last edited by Zhab on Fri Jul 31, 2015 9:31 am, edited 3 times in total.

Zhab
Fast Inserter
Fast Inserter
Posts: 101
Joined: Sat Jul 18, 2015 10:17 pm
Contact:

Re: What we need for combinators to be fun

Post by Zhab »

ray4ever wrote:Things I would like to see ingame:
  • Assemblers should be connectable to the network: Basicly I want to control the remotley, e.g. switching production on and off
And read item content via signal. Very important.
ray4ever wrote: [*] Belt sensors in any way
That would be cool, but somehow I don't see this happening. But if we could have an inserter pulse the value 1 for one tick everytime it pick and item up we could feed that into a special memory cell and count the output. It would be an easy way to tell that 7 iron plates were taken from that chest even if the chest is constantly resupplied. Better yet, we could track how many items were taken off one track and move to an other.
ray4ever wrote: [*] Ability to set the output of a combintor to 0 and not just 1 and input count (maybe just make the output amount choosable constant)
Oh yes ! instead of just 1 let us choose between typing a number or "input count". Feeding an output of 1 into an arithmetic combinator just for the sake of having an other value than 1 is bothersome.
ray4ever wrote: [*] Maybe an easier to use (e.g. not bitwise) And / Or inserter (So you could easily build something like if x > 200 and y < 100 set z = 50)[/list]
Not sure what that would look like. Example ?

Gus_Smedstad
Fast Inserter
Fast Inserter
Posts: 163
Joined: Fri May 16, 2014 2:30 pm
Contact:

Re: What we need for combinators to be fun

Post by Gus_Smedstad »

You can control assemblers, steam engines, chemical plants, and refineries by controlling their inputs or outputs. There's a lag, but if you want to shut an assembler down, turn off the smart inserter removing finished products from the assembler, or shut down any of the inputs. The only case where this doesn't work is if both inputs and outputs are all long-handled inserters, and I've never run into that myself. For fluids, hook your signal to a pump feeding the plant.

Zhab
Fast Inserter
Fast Inserter
Posts: 101
Joined: Sat Jul 18, 2015 10:17 pm
Contact:

Re: What we need for combinators to be fun

Post by Zhab »

Consider the following scenario. I want to be able to request X amount of electronic circuits and divide the work load as evenly as possible across my 4 electronic circuits assembler. I want my factory to start completely empty and finish completely empty (beside requested circuits). No buffer whatsoever. Not even a single stray item left on a belt. Pure Emptiness (or as much as possible). I'm talking about pure resources management and very precise "on demand crafting".

If X equal 7 that means that at one point I will have to distribute 21 copper cables across 4 assemblers. However, if each assemblers receive 5 copper cables with the 4th one receiving 1 extra, I would craft 5 electronic circuits and the remaining copper cables would be stuck in assemblers. You cannot craft the remaining 2 circuits and the factory is left with components in it. Total failure.

You would need is to take into consideration multiples of 3 and send 6 copper cables in the first 3 assemblers and only 3 in the last one. This allows you to craft your 7 circuits and leave the factory empty.

Now that we know how to distribute the 21 copper cables. The important question is how ?

We could send them down a belt and have smart inserters pick what they need for their corresponding assembler.

Problem number 1) How is the inserter supposed to know when it have picked up enough copper cables if it place them directly into the assembler ? Because once something is place into an assembler it disappear from the surface of the earth. It might as well have entered a black hole as far as the circuit network is concerned. The only solution so far is to not insert directly to an assembler and instead use a smart chest to accumulate the attributed quota of items.

Problem number 2) The smart inserter will also need to pick a precise amount of iron. However current smart inserter cannot handle picking precise amount of more than 1 item type. With what Twinsen is talking about we could. But for now the easiest option is to use a second separated inserter and for the sake of avoiding a funky belt design we will use a second smart chest as well (because 45 degree inserter are not a thing even if every inserter are clearly capable of 360 rotation... go figure).

Once item quota of every chest is reached and memory cell is activated that will lock inputting inserters and allow secondary inserters to move the content of all chests into the assemblers. If memory cell is active and that all chest are empty then we disable the memory cell. Which unlock component input for the next batch.


Now imagine that we could read item count from assembler and that we could enable and disable an assembler. We could lock production until item quota is reach and then start production. Completely removing the need for "proxy smart chests".

But what would be even better would be the ability to tell the assembler which game item to craft based on a signal input like could tell which item to filter for with an inserter. This would allow a very intricate combinator circuit layout to reuse the same assembler to craft a smart inserter using copper and iron plates.

Just imagine the factory setups that would be possible. But for now, just getting what Twinsen is suggesting about smart inserters would already be a huge step forward.

Lupoviridae
Fast Inserter
Fast Inserter
Posts: 155
Joined: Mon Apr 20, 2015 6:26 pm
Contact:

Re: What we need for combinators to be fun

Post by Lupoviridae »

ray4ever wrote:Things I would like to see ingame:
  • Assemblers should be connectable to the network: Basicly I want to control the remotley, e.g. switching production on and off
  • A compact and easy to use "If-Than-Else-Combinator" (would be much easier to use for the broader audience than the current possibilities)
  • Ability to set the output of a combintor to 0 and not just 1 and input count (maybe just make the output amount choosable constant)
  • Maybe an easier to use (e.g. not bitwise) And / Or inserter (So you could easily build something like if x > 200 and y < 100 set z = 50)
All of these are quite easy to do with only a handful of combinators.

To control production remotely, you can use smart inserters going into the assemblers (or out), and set them to only operate When, for example, Green == 1. Connect all the smart inserters to the circuit network, and you're good to go.

An If-Then- Else setup can be made with only two combinators. For example, one could be {If Iron > 500; Output Green == 1} with a second as {If Iron < 501; Output Red == 1}.

Setting a constant value output can be done with two combinators. Say you want to output Iron == 50 when green == 1 on the red wire. Make a constant combinator outputting Green = -1 and iron == 50. Then take a decider set to {When green == 0 output Everything (input count)} Connect your red wire to the deciders input, and a green wire from the constant to the deciders other input.

An and/or setup can be done with four combinators. Take two deciders, one set to if x>200, output Blue == 1, and the other if y<100, output Blue == 1. Set a constant to output Blue == -2 and z == 50. Connect all three of these to a decider set to If blue == 0, output everything (input count)

Everyone keeps saying they want everything doable with just one combinator, but this is not how combinators are intended to work. You need to get a bit creative.

ray4ever
Long Handed Inserter
Long Handed Inserter
Posts: 86
Joined: Sun Jan 12, 2014 9:22 am
Contact:

Re: What we need for combinators to be fun

Post by ray4ever »

Lupoviridae wrote: [...]
All of these are quite easy to do with only a handful of combinators.
[...]
Everyone keeps saying they want everything doable with just one combinator, but this is not how combinators are intended to work. You need to get a bit creative.
You are not wrong, but I have to disagree. Yes, all my points are already somehow doable. Will most of the players find out these workarounds? Probably not. Do i find using lots of combinators and space fun? Probably not for many.

My point is that combinators should be fun and thus somewhat easy to use.

Lupoviridae
Fast Inserter
Fast Inserter
Posts: 155
Joined: Mon Apr 20, 2015 6:26 pm
Contact:

Re: What we need for combinators to be fun

Post by Lupoviridae »

ray4ever wrote: Will most of the players find out these workarounds? Probably not.
Fair enough. On the flip side I plan on beginning work on the combinator wiki tonight, where I plan to lay out how to do all of these things, so hopefully that will help people some. I somehow doubt that any major changes will be made to the way they function.

On a side note, combinators are still 1,000,000 times easier to understand than redstone circuits. :lol:

Gus_Smedstad
Fast Inserter
Fast Inserter
Posts: 163
Joined: Fri May 16, 2014 2:30 pm
Contact:

Re: What we need for combinators to be fun

Post by Gus_Smedstad »

A reflexive comment on if-then-else example - never put the same constant in two different places if you can avoid it, because you can break the circuit by changing one but not the other. Better than (Iron > 500 => Green = 1 / Iron < 501 => Red = 1) is (Iron > 500 => Green = 1 / Green = 0 => Red = 1). Now the two are always linked.

I do think that allowing outputs of constants other than 1 makes sense and is consistent with the rest of the combinator interface, where you can routinely select constants for comparisons.

Lupoviridae
Fast Inserter
Fast Inserter
Posts: 155
Joined: Mon Apr 20, 2015 6:26 pm
Contact:

Re: What we need for combinators to be fun

Post by Lupoviridae »

I think this would also make it easier to output a constant:
https://forums.factorio.com/forum/vie ... =5&t=13706

It would at the very least make it so you don't have to filter out every signal you dont want.
A constant could just output [Green==50], with the decider set to [If Iron > 500; Output Green(input count)]

It's not quite as straightforward, but it would require no gui change and would make it so much easier to filter out unwanted signals in many other situations,eliminating the need for negative outputs.

ray4ever
Long Handed Inserter
Long Handed Inserter
Posts: 86
Joined: Sun Jan 12, 2014 9:22 am
Contact:

Re: What we need for combinators to be fun

Post by ray4ever »

I just came back from my holiday and have to say that the combinators haven't realy kicked off since than. I mean most people seem to like the principle concept of them, but I haven't seen many examples of combinators in use.
What I found interesting is the combinator build code factory as this is the type of factory that I would envision for my own. But there are a few points why I wouldn't use it:
  • It is HUGE, compared to a standard main bus layout --> Not efficient
  • It is COMPLICATED to set up, compared to a standard main bus layout --> Not efficient
So maybe we (or the devs ^^) should find a solution to how combinators can be used to build something similar but with less combinators and logic involed. The result should be that a player would think: "Well I build a factory in the main bus layout but there need to be a more intelligent way to build stuff. Hey cool, I could just connect the required factorys with wires to a combinator and output it to some belts/inserters and they are working efficiently."

Post Reply

Return to “General discussion”