Combinator Logic Rework

Post your ideas and suggestions how to improve the game.

Moderator: ickputzdirwech

McDuff
Fast Inserter
Fast Inserter
Posts: 236
Joined: Sun Jan 11, 2015 11:09 am
Contact:

Combinator Logic Rework

Post by McDuff »

TL;DR
Enable multiple combinator steps to take place in a single unit, for ease of programming/readability/portability/space-saving.

What
A replacement UI for combinators (potentially merging Arithmetic/Decider combinators into a single entity) similar to the Train Stop UI.

The below is an example not a fully tire-kicked design.
Untitled Diagram.png
Untitled Diagram.png (31.48 KiB) Viewed 4341 times
Why ?
The combinator system is one of the most powerful things about Factorio, but it is not without its foibles.
There are many suggestion threads on various things that people would like to see changed, with one of the big ones being readability and scalability. One function takes two squares. Rearranging a "code block" can mean moving a whole array of combinators around and remembering which input goes where. It can often be easier to design things from scratch than to try to modify existing blueprints unless you were extremely well organised at the start.

There are some mods that try to add some programming to the combinators, such as fCPU, but while they're powerful you do have to learn something new and outside the normal factorio system.

This kind of thing would use existing Factorio UI elements seen in the train stop UI, such as the AND/OR buttons, and enable multiple combinator steps to happen in one device, simplifying layouts and enabling a more configurable "building block" approach to contraptions.
User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12889
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: Combinator Logic Rework

Post by ssilk »

Thanks for making a suggestion from viewtopic.php?p=514224#p514224
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...
McDuff
Fast Inserter
Fast Inserter
Posts: 236
Joined: Sun Jan 11, 2015 11:09 am
Contact:

Re: Combinator Logic Rework

Post by McDuff »

Some more ideas, trying to think through how to do real world examples of what's currently possible and what might be additionally possible.
Untitled Diagram(2).png
Untitled Diagram(2).png (76.06 KiB) Viewed 4256 times
Tire-kicking welcome!
User avatar
NotRexButCaesar
Smart Inserter
Smart Inserter
Posts: 1133
Joined: Sun Feb 16, 2020 12:47 am
Contact:

Re: Combinator Logic Rework

Post by NotRexButCaesar »

I think this would make combinatorics too easy. All you would need was one combinator for every contraption imaginable.
—Crevez, chiens, si vous n'étes pas contents!
User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12889
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: Combinator Logic Rework

Post by ssilk »

I think this as a new combinator.

A) it costs more (of course that is nothing which hinders a player to use it :) as always),

B) it is not limitless. I see that combinator as an alternative for suggestions that wish to add on defaults for outputting “-1” or to invert values or ...
It is for “typical combinations” of up to 3 combinators ... you know, I think there are nearly an dozens of suggestions (please correct me) which all can be implemented with this one. Sorry, It’s hard to find them, and I don’t want to search now.
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...
McDuff
Fast Inserter
Fast Inserter
Posts: 236
Joined: Sun Jan 11, 2015 11:09 am
Contact:

Re: Combinator Logic Rework

Post by McDuff »

"Too easy" is a moveable feast though isn't it? Why is *the particular level of difficulty* we have now the best way?

Clearly you can do an awful lot of things with the existing system. There are a lot of things that are prohibitively expensive in terms of time and combinator space. There is also the issue of readability, debugging, and taking parts of one circuit out to use again.

A question: if we didn't have the existing combinator system and this was a new proposal, would it seem "too easy"?
Yoyobuae
Filter Inserter
Filter Inserter
Posts: 509
Joined: Fri Nov 04, 2016 11:04 pm
Contact:

Re: Combinator Logic Rework

Post by Yoyobuae »

McDuff wrote: Fri Oct 09, 2020 2:40 pmClearly you can do an awful lot of things with the existing system.
Since the existing system is turing complete, it can literally do everything a computer could potentially do.
varundevan
Fast Inserter
Fast Inserter
Posts: 182
Joined: Mon Jan 20, 2020 4:41 am
Contact:

Re: Combinator Logic Rework

Post by varundevan »

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

Re: Combinator Logic Rework

Post by ssilk »

I think this suggestion reflects the fact, that the current combinator system is Turing-complete, but the overview it gives is more than the usual chaos. I can easily set up combinators, and wire them so, that i can come back the next day and need to figure out half an hour what it does. Having blueprints that can rotate a circuit maximizes this effect. :D

Circuits cries for “shortcuts”, modularization, separation, clarity, ... to make building it easier.
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...
McDuff
Fast Inserter
Fast Inserter
Posts: 236
Joined: Sun Jan 11, 2015 11:09 am
Contact:

Re: Combinator Logic Rework

Post by McDuff »

ssilk wrote: Mon Oct 12, 2020 4:53 am I think this suggestion reflects the fact, that the current combinator system is Turing-complete, but the overview it gives is more than the usual chaos. I can easily set up combinators, and wire them so, that i can come back the next day and need to figure out half an hour what it does. Having blueprints that can rotate a circuit maximizes this effect. :D

Circuits cries for “shortcuts”, modularization, separation, clarity, ... to make building it easier.
Yep, this.
LoneWolf_LWP
Inserter
Inserter
Posts: 39
Joined: Thu Jan 07, 2021 11:20 pm
Contact:

Combinators with multiple comparisson/calculations options

Post by LoneWolf_LWP »

TL;DR
Combinators with multiple comparisson/calculations options to reduce frustration :p

What ?
Be able to do more comparisons/calculations in a combinator and use the results to become a final result (See below what i mean)

Why ?
I have searched the forum and found a few almost likewise topics. The reason i created this new one is to propose the following that i didnt find in those posts, if i missed it then my appologies (keep reading until the 2nd image)

(note english is not my native language, sorry if there are to many spelling errors)

now consider that the following example does apply to my current problem/frustration, but probably not my last and many other people theirs circuit designs

the following picture does only this

"if a train is in then station reduce the limit by 1"
+ a constant comparator as on/off switch to deactivate the circuit and let the station run normal

Image

a small explenation as these things just don't make any sense just looking at it like this.

on 0 the station is considerd closed and no trains will come until i reset it and i send to the network that this staion is fullfilled, all the required trains have been serverd,
this way i can control that all stations with the same name are getting their trains that they want and not one is favoritzed by the algorithm the trains use now to calculate where they can get the fastest depending on the penalty system. if they all got their loads. resset all stations and restart the cyclce.

now considering i still need to put in the reset conditions for the network that for setting it back to its orignal settings and reacts to other stations output on the network and setup this stations output based on the trains that have arrived itself i can safely say this is growing out of proportions (number of combinaters needed) to achieve a simple goal.

it will be reusable by just setting 2 setting in a constant combinator though. "train limit" and "cargo needed" but all these little extra things that are so simple in logic when you say it or write it in a routine just explode in number of combinators needed.

This is why i also think so many people just hurl at thinking about setting up a circuit network.
hoping someone will create a circuit that fit your excact needs, good luck with that because everybody has different end goals/requirments.
its also more rewarding to be able to make something yourself, just in a more fun/easy way then how its done now.

now i admit i only recently started diving into circuits and i was stumped how complicated it was to achieve my first working simple if-then-else
Just due to the fact i had to keep switching between combinators screen that would not stay open, that would already been a help that i could look at multiple combinators at the same time, the criss cross of cables everywhere, and the finaly puting it all in a nice line when i finaly adchieved the first goal in the line (that removed all the cabling again, grrrrrrr) drove me crazy.

yes the fun in playing factorio wasnt there anymore at this point, thats for sure.

now what i propose because i think its bassicly already as good as in the game is to use the same system as a train.

Image

There we can already (but just for the train sadly) put multiple nested (only 1 deep but ok not gonna push it :p) 'AND' and 'OR' combinations.
and maybe an 'IF THEN ELSE' (wishfull thinking 'ELSEIF) could be added but the combined 'AND' and 'OR' would be a great start to reduce frustrations and maybe be more intuitive for people just starting or even are already experienced with circuits.

As balance the building (combinator) could be bigger 2x2 maybe even 3x3 (but in the end still smaller compared to the gazzilion combinators you need now :p)/more expensive in materials to build
input would remain the same as now. any signal inputed through red or green wire can be used inside.

thank you for your time.
User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12889
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: Combinators with multiple comparisson/calculations options

Post by ssilk »

I think that is, what you mean:
viewtopic.php?f=6&t=90147 Combinator Logic Rework

:?:
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...
LoneWolf_LWP
Inserter
Inserter
Posts: 39
Joined: Thu Jan 07, 2021 11:20 pm
Contact:

Re: Combinators with multiple comparisson/calculations options

Post by LoneWolf_LWP »

ssilk wrote: Wed Jan 20, 2021 12:10 pm I think that is, what you mean:
viewtopic.php?f=6&t=90147 Combinator Logic Rework

:?:
Yes thats exactly the same proposal. 'use the current UI train as a base for combinators improvement' (read as : less frustration, hair pulling, monitor punching :p)

He does ask for more options. (not bad, go big or go home :p) i was staying humble and just start with what is there in the train ui :p
you can merge this as its clearly 99% the same.
User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12889
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: Combinator Logic Rework

Post by ssilk »

merged — ssilk

I think this could have many more advantages:
- removing some latency: every combinator takes one tick to calculate the next result. That makes some calculations really hard and takes extra complexity to compensate, which eats up more cpu at the end.
- many calculations in a row on the same data can be done faster inside the cpu, than the one by one calculation on tick basis where the data always changes.
- great simplification and real speed up of calculations
- would also replace some suggestions about adding options like “output negative result”, using “*” on both sides of the operator, and many more
- reduces the wire cludder a lot.
- would enable things that are currently not possible, because the switching gets too complex.
- could be made more ore less upward compatible.

Disadvantages:
Would make combinators as they are obsolete:
- the nice sign on top, which shows the operation would make no sense anymore. (But I could live with it.)
- it would make no sense anymore to have an algorithmic and conditional combinator.

- it reduces the cludder: Reduces the puzzle-factor.
- you cannot understand the logic anymore of some simple switching, without looking inside (could live with that, because even very simple things can get super complex)
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...
LoneWolf_LWP
Inserter
Inserter
Posts: 39
Joined: Thu Jan 07, 2021 11:20 pm
Contact:

Re: Combinator Logic Rework

Post by LoneWolf_LWP »

also be able to ouput a pulse instead of a fixed value would be nice.
Post Reply

Return to “Ideas and Suggestions”