Yeah, it's a really funny use case. The feature for people who don't need the featurepleegwat wrote: βFri Mar 15, 2024 10:50 pm I don't think radar signals are for people who are already using factory-wide signal networks. They are probably primarily intended at players who use circuit-wired rail blueprints "because", never use it, until at some point late in they find a usecase and then find out there are too many gaps in their network where they had to do a few meters of rail manually and their circuit network doesn't connect.
Friday Facts #402 - Lightspeed circuits
Re: Friday Facts #402 - Lightspeed circuits
-
- Inserter
- Posts: 38
- Joined: Tue May 14, 2019 12:56 am
- Contact:
Re: Friday Facts #402 - Lightspeed circuits
Yeah, this just highlights that the issues I'm talking about (size, complexity, write-once being the only viable approach, no documentation method, etc) exist and are very real.Qon wrote: βFri Mar 15, 2024 8:18 pm I made an assembly language for combinators to sidestep most of the issues that fiddling with combinators and wires manually creates: https://qon.github.io/combinassembly/
Some instructions: https://github.com/Qon/combinassembly
2D-layout is a planned feature.
Size issue kind of fixed: https://mods.factorio.com/mod/SchallCircuitScaling
So thank you for your upvote?
And you're not the only one. Anyone who's tried to do anything even semi-serious with circuits runs into these problems. Even loading train with exactly the requested items is fraught with issues, complex, and not to be underestimated. Doable, certainly, but not in a clear or understandable way that is easy to correct, modify, or deal with later.
When dealing with circuit blueprints of any complexity, it's generally easier to re-do the whole damn thing than it is to understand, correct, or modify it. And your implementation of an "assembly language" level interface is a perfect example of this. Doesn't work right? Has bugs? Rip the whole thing out and re-do it with a brand new design from this external tool! Yay!
Even minecraft's redstone circuits are better - you can at least put signs up everywhere saying what's supposed to be going on. Can't really do that in factorio, except as a comment on the blueprint as a whole. No method at all to point to a particular input and describe why its there and what it's doing.
Don't get me wrong, circuits are useful as heck, and kinda make fun and challenging minigame for the programming/logic obsessed. But I really don't think that was the intention behind the design.
And I'm glad they're part of the game, they make many things possible that wouldn't be at all otherwise. Possible, but not easy!
-
- Manual Inserter
- Posts: 2
- Joined: Sat Mar 16, 2024 12:27 am
- Contact:
Re: Friday Facts #402 - Lightspeed circuits
I really like this. However, I have one really quick quality-of-life changes that I would REALLY love to have implemented as someone who uses the circuit network a lot:
I think ctrl + clicking on a constant combinator should toggle its state (e.g. on to off). Constant combinators are great but the switch is really small in the ui and having to click on the model, then try to hit that tiny little switch, and then close it feels like a lot of work for what should just be clicking a switch. (The same could be applied to power switches as well, but I use them less). I know its a pretty minor change, but its one of those little things that I now can't not think about every time I have to use a constant combinator. With all the work being put into space age on UI/interaction, I think it would be a nice touch.
Cheers!
I think ctrl + clicking on a constant combinator should toggle its state (e.g. on to off). Constant combinators are great but the switch is really small in the ui and having to click on the model, then try to hit that tiny little switch, and then close it feels like a lot of work for what should just be clicking a switch. (The same could be applied to power switches as well, but I use them less). I know its a pretty minor change, but its one of those little things that I now can't not think about every time I have to use a constant combinator. With all the work being put into space age on UI/interaction, I think it would be a nice touch.
Cheers!
Re: Friday Facts #402 - Lightspeed circuits
Will the wireless transmission be limited to the radar coverage area?
Re: Friday Facts #402 - Lightspeed circuits
Here's a use case i have had:Tertius wrote: βFri Mar 15, 2024 2:45 pm
Currently, I don't see a compelling use case for use signal transmission by radar - the same as with far reaching wire. At least not globally from every outpost, since all signals from all connected outposts are merged, so you don't know what outpost sent which signal. You need to have some kind of outpost ID, then encode signals with that ID do be able to identify who sent what. All current ways for this are rather clumsy.
I try to apply a rule that green wires are status wires, and red are controll wires, for some level of intercompatibility between BPs, and just a rule of thumb to intuite what things are doing. I've made BPs where outposts send what they have available for pickup on green to the 'central rail wire', and if they need anything to send that on red. So green is a 'the overall train network has this available' wire, and red is 'The overall train network is in need of these items' wire.
The red wire would be used to load up a supply train that would pass all outposts, and each individual outpost would only become active if they have outstanding requests, and only take from the train what is neccesary to fulfill requests.
It's not as efficent as say LTN, but it did work a treat in vanilla.
Re: Friday Facts #402 - Lightspeed circuits
I've also used those to remote controll the sapce ships, since I designed my ships in a version where ships would clear current cirquit network signals on launch/landing, so you couldn't use a normal latch memmory cell to store the destination in your ships. I'd make a complex controller in 1 place, and just send command signals to and recieve status siganls from the ship; keep the logic and memory on 1 planet/surface even if the ship travels. After the update where the current state of cirquit networks WAS remembered, Erendel emposed a 1000 signals limit on that. Should be enough for anyone right?jgilmore42 wrote: βFri Mar 15, 2024 5:44 pmYes. I don't know for sure which one, but the current modpack for "space exploration" has a uplink/downlink pair of machines with an infinite number of named channels. Not sure if they're available as a stand-alone mod, but it wouldn't surprise me.
They're used to coordinate among the different "planets" for what's required in various places.
Haven't played in awhile, let me update and look through my mods list... Found it: https://mods.factorio.com/mod/aai-signal-transmission
Anyway, my overly complex remote controll system with multiple separate networks on the same ship, combined with long lists of signals for the complete cargo manifest, meant that that limit was exceeded regularly and crashing the game for me, so he upped/removed the limit.
Re: Friday Facts #402 - Lightspeed circuits
I'm making plenty of use of them in my current game of Nullius. I've built a priority request and supply system. Two levels for requests and most supplies. Three levels for mines (where I want to build something (or the main supply base from emptying my inventory on expeditions), can be mined out by miners reaching under rails or around coastlines, and not in the way of anything). Stations switch off (set limit to 0) when they're satisfied or there's a higher-priority request for whatever they take or make.Tertius wrote: βFri Mar 15, 2024 2:45 pm From the FFF:
That's almost exactly how my rail blueprints look like - could have been a screenshot from my current factory
I also added red and green wires "just in case a real use case pops up". I'm still waiting. The wires are everywhere but not being used.
That sounds like a huge headache to implement. The sort of thing that probably had to be solved to make WiFi work, come to think of it.Currently, I don't see a compelling use case for use signal transmission by radar - the same as with far reaching wire. At least not globally from every outpost, since all signals from all connected outposts are merged, so you don't know what outpost sent which signal. You need to have some kind of outpost ID, then encode signals with that ID do be able to identify who sent what. All current ways for this are rather clumsy.
Re: Friday Facts #402 - Lightspeed circuits
If you organize your combinators and know what you are doing they can be quite readable, especially with some comments so that you know what you are looking at.jgilmore42 wrote: βFri Mar 15, 2024 11:18 pmYeah, this just highlights that the issues I'm talking about (size, complexity, write-once being the only viable approach, no documentation method, etc) exist and are very real.Qon wrote: βFri Mar 15, 2024 8:18 pm I made an assembly language for combinators to sidestep most of the issues that fiddling with combinators and wires manually creates: https://qon.github.io/combinassembly/
Some instructions: https://github.com/Qon/combinassembly
2D-layout is a planned feature.
Size issue kind of fixed: https://mods.factorio.com/mod/SchallCircuitScaling
So thank you for your upvote?
And you're not the only one. Anyone who's tried to do anything even semi-serious with circuits runs into these problems. Even loading train with exactly the requested items is fraught with issues, complex, and not to be underestimated. Doable, certainly, but not in a clear or understandable way that is easy to correct, modify, or deal with later.
[...]
Even minecraft's redstone circuits are better - you can at least put signs up everywhere saying what's supposed to be going on. Can't really do that in factorio, except as a comment on the blueprint as a whole. No method at all to point to a particular input and describe why its there and what it's doing.
My mod Signal Signs lets you put comments fairly easily next to combinators and IO. And combinassembly should also be able to add comments in its output as well in some future update. Though you don't have to read the combinassembly output combinator network that much, better to try to find bugs in source (though stepping through it can only be done in the output network of course). Maybe a simulator for the language and a debugger would be good to have? Though it wouldn't be able to interact with the rest of the Factorio world so it's of limited use.
Well, the point is that the text source is supposed to be your way to edit, read and reason about your code. In Factorio you rip it out and replace with the new build, but that's just like a .exe file. It's not like C compilers modify an existing executable file when you change a line in your source.jgilmore42 wrote: βFri Mar 15, 2024 11:18 pm When dealing with circuit blueprints of any complexity, it's generally easier to re-do the whole damn thing than it is to understand, correct, or modify it. And your implementation of an "assembly language" level interface is a perfect example of this. Doesn't work right? Has bugs? Rip the whole thing out and re-do it with a brand new design from this external tool! Yay!
So you are wrong about "re-do it with a brand new design", the design is in the source, which is iteratively updated like any other source code.
My mods: Capsule Ammo | HandyHands - Automatic handcrafting | ChunkyChunks - Configurable Gridlines
Some other creations: Combinassembly Language GitHub w instructions and link to run it in your browser | 0~drain Laser
Some other creations: Combinassembly Language GitHub w instructions and link to run it in your browser | 0~drain Laser
Re: Friday Facts #402 - Lightspeed circuits
There are other use-cases for that.Tertius wrote: βFri Mar 15, 2024 2:45 pm From the FFF:
That's almost exactly how my rail blueprints look like - could have been a screenshot from my current factory
I also added red and green wires "just in case a real use case pops up". I'm still waiting. The wires are everywhere but not being used.
Currently, I don't see a compelling use case for use signal transmission by radar - the same as with far reaching wire. At least not globally from every outpost, since all signals from all connected outposts are merged, so you don't know what outpost sent which signal. You need to have some kind of outpost ID, then encode signals with that ID do be able to identify who sent what. All current ways for this are rather clumsy.
Currently, with the buffer chests acting as a requestor for construction bots but being counted up towards the total logistics inventory, the only way to scale the base is to count up number of buffer areas and multiply it to the buffer inventory, so your materials supply will always be suffecient, thus the wiring must cover the entire megabase -- I talked about it in my Request: Add option to exclude buffer (green) chest inventory from the logistics network.
There are other usages for that, and encoding the signal is one you mentioned (or the lock-based system).
You can use it to measure the total resource reserve or production on outposts (i.e., you know you require 10 lanes of copper for 500spm, so you can measure your outposts capability to determine how much SPM you can afford).
Re: Friday Facts #402 - Lightspeed circuits
Excellent news! Really can't wait for the update+DLC. It's almost cruel to tell us all these wonderful things and not being able to play them
And several of the suggestions in this thread would make it even better, of course.
@Qon: That looks like a great tool, I'll definitely keep that in mind for when I finally do something non-trivial with circuit networks.
And several of the suggestions in this thread would make it even better, of course.
@Qon: That looks like a great tool, I'll definitely keep that in mind for when I finally do something non-trivial with circuit networks.
- brunzenstein
- Smart Inserter
- Posts: 1117
- Joined: Tue Mar 01, 2016 2:27 pm
- Contact:
Re: Friday Facts #402 - Lightspeed circuits
"To avoid this dilemma, we added a long requested feature of wireless circuit transmission using Radars."
I tried to replicate the clock combinator setting and could not figure out - pls anyone share the setting for the constant and the decider combinator for this clock or S/R latch
I tried to replicate the clock combinator setting and could not figure out - pls anyone share the setting for the constant and the decider combinator for this clock or S/R latch
Re: Friday Facts #402 - Lightspeed circuits
That's just a simple clock, see the wikibrunzenstein wrote: βSat Mar 16, 2024 11:46 am "To avoid this dilemma, we added a long requested feature of wireless circuit transmission using Radars."
I tried to replicate the clock combinator setting and could not figure out - pls anyone share the setting for the constant and the decider combinator for this clock or S/R latch
- brunzenstein
- Smart Inserter
- Posts: 1117
- Joined: Tue Mar 01, 2016 2:27 pm
- Contact:
Re: Friday Facts #402 - Lightspeed circuits
No, it is not because it features only a single combinator and sets resets after 3 lightsNidan wrote: βSat Mar 16, 2024 12:50 pmbrunzenstein wrote: βSat Mar 16, 2024 11:46 am "To avoid this dilemma, we added a long requested feature of wireless circuit transmission using Radars."
I tried to replicate the clock combinator setting and could not figure out - pls anyone share the setting for the constant and the decider combinator for this clock or S/R latch
That's just a simple clock, see the wiki
Re: Friday Facts #402 - Lightspeed circuits
Constant combinator: T=1brunzenstein wrote: βSat Mar 16, 2024 1:16 pmNo, it is not because it features only a single combinator and sets resets after 3 lightsNidan wrote: βSat Mar 16, 2024 12:50 pmbrunzenstein wrote: βSat Mar 16, 2024 11:46 am "To avoid this dilemma, we added a long requested feature of wireless circuit transmission using Radars."
I tried to replicate the clock combinator setting and could not figure out - pls anyone share the setting for the constant and the decider combinator for this clock or S/R latch
That's just a simple clock, see the wiki
Decider: T < 240 , output: input count T
Lamps: T > 60, T > 120, T> 180
Or, the timer from the wiki
Re: Friday Facts #402 - Lightspeed circuits
I was referring to this , which is described on the wiki, including a picture.brunzenstein wrote: βSat Mar 16, 2024 1:16 pm No, it is not because it Features, Only a Single Combinator.
Addendum: Which Trig90 now copied here.
- brunzenstein
- Smart Inserter
- Posts: 1117
- Joined: Tue Mar 01, 2016 2:27 pm
- Contact:
Re: Friday Facts #402 - Lightspeed circuits
Thank you I am 76 years and a little bit slow on Combinator settings.
Re: Friday Facts #402 - Lightspeed circuits
Dury is right. Wireless network with one channel is either good for beta-testing testing or has very niche player usage.Drury wrote: βFri Mar 15, 2024 10:58 pmYeah, it's a really funny use case. The feature for people who don't need the featurepleegwat wrote: βFri Mar 15, 2024 10:50 pm I don't think radar signals are for people who are already using factory-wide signal networks. They are probably primarily intended at players who use circuit-wired rail blueprints "because", never use it, until at some point late in they find a usecase and then find out there are too many gaps in their network where they had to do a few meters of rail manually and their circuit network doesn't connect.
Players who use combinators intensively, need more channels.
Re: Friday Facts #402 - Lightspeed circuits
The circuit ID changes when you connect or split circuit networks. Would be horrible to program all receivers every time you play with the wires of the sender.Justderpingalong wrote: βFri Mar 15, 2024 12:11 pm This one felt... surprisingly short.
One thing I will say however is that the simple addition of being able to hook radars into the wire network is GREAT. It should allow a full implementation of LTN, which I am glad for. However: I'd like to offer an improvement:
Currently, red and green circuits have a 'circuit ID'. What if we used this circuit ID to create distinct channels? Could be a simple if/else for both red and green. Either you use the circuit ID you're given as your channel, or you connect to a different circuit ID, of which you can copy/paste the numbers. Simple!
Re: Friday Facts #402 - Lightspeed circuits
The fact that radars will only have one channel per surface is rather limiting. This is how my rail blueprint looks like:
Because I sometimes need to transmit more than red/green long distance so my rails have 2 channels.
So please consider adding channels to radars. You already have one channel per surface so I guess code to pick a channel is already there. Should be easy to extend the radar GUI to have a text field where one can set or select a channel.
Secondly if the radar only works on a surface what will there be to send signals to orbit and back? Or between planets?
Because I sometimes need to transmit more than red/green long distance so my rails have 2 channels.
So please consider adding channels to radars. You already have one channel per surface so I guess code to pick a channel is already there. Should be easy to extend the radar GUI to have a text field where one can set or select a channel.
Secondly if the radar only works on a surface what will there be to send signals to orbit and back? Or between planets?
Re: Friday Facts #402 - Lightspeed circuits
that's why I adore this game so much as a player and hate writing mods so much, every time I try to implement something that goes beyond the "standard" I run into a whole bunch of problems, from partially implemented functions (or their internal logic that works only according to some conditions or only on specific prototypes) to the unavailability of some data when neededkovarex wrote:I felt uneasy about it, because it goes against the coding principle of "write it when you need it"
and the saddest thing is that when I found posts on forums about my problems, the answers were something like βfew people need this function,β βitβs difficult to implement,β or βThatβs takes the time (e.g. startup or runtime).β but then, when the developers themselves needed it, it becomes (easily) doable, which to me looks...
but in any case, you can ignore this message, Iβm writing mostly because I need to vent somewhere, well, we have different approaches to programming stuff (In my opinion), and in my opinion the current mod api forces us to resort to hardcoding some things or overcomplicating things