Xeteth wrote:That's actually a really neat and simple setup, well done! I like how you essentially 'mute' an outpost that has a train incoming; that is certainly easier than using memory cells and having a system calculate trains based on the data.
Thank you for your kind words. I don't want to count trains in my system because I think it does not give enough benefit for the complexity that is involved.
I am glad you have decided to do it this way; it shows the devs (Twinsen in particular) that adding certain functionality that is in Smart Trains could be adapted and integrated into the base game and allow players to come up with automated train systems without getting too complex.
That's an interesting aspect, I actually never thought about motivating the devs into any direction while I was designing it. I just wanted something simple enough that
I myself will still be able to understand it 6 months later :), and something simple enough so I won't end up being the only person using it -- and then, of course, there's some beauty in compact designs.
As far as "convincing Twinsen" goes: I think he's doing a great job with the combinator stuff, but he needs to realize that the combinators are used quite differently from what he, or the devs, imagined. In order to solve interesting problems, you need to make circuits, and making circuits is artificially hard because the combinators were created to solve "simple" problems; but nobody solves "simple" problems with combinators, there aren't any. Right now, combinators are either almost useless, or potentially very powerful but only if you invest a lot of time into understanding the quirks. A huge gap as far as player experience goes.
One question I have though; is there a way of you detecting when an outpost has run dry and needs to be removed (and a final train sent to empty the outpost)? I'm guessing the idea is that the player would take a disposal train of sorts and just manually get the last remaining ore which is not a huge issue.
Nah, I don't want to add bells and whistles like that, it's really out of scope. Detection of mining deposit depletion can easily be done separately, and since you have to go there yourself in order to deconstruct the outpost, not much is gained by making it automatic like you've outlined. (Plus, since I'm using the resource monitor mod I don't need separate detection.)
Of course it's fun and interesting to solve this particular problem with a circuit, I just don't consider it part of a logistic train network.
1. I am currently finishing off the system, there's a little more work to do on it but I intend to release it to everyone once it is finished - I'll let you know when it's done :)
Awesome, looking forward to it.
That's great!
Thanks! I find it much easier to work with large scale combinator systems when I just have a free space and purpose built world to deal with. I actually have a blank concreted world scenario saved for any future projects haha
Yeah, I've made such a "sandbox map" as well, it's just the best way if you have to fiddle with complicated stuff like combinators (and also for anything train related).
These features are mainly the result of the system being built for an RSO map; they are likely very much over-engineered for a vanilla map.
Well, I'm playing with RSO myself (never completed a serious playthrough without it), but even then it's not easy to hit a throughput limit with mining outposts (at least not with the standard mining drills, with Bob's Mods it's something else).
I can live with the fact that, at some point, very, very late in my game, it might be possible that a large outpost will be distant enough so that a 4-wagon train won't be enough to allow the outpost to mine at full speed. It's fine. I'll just add another outpost then instead of solving that problem the hard way :).
Having said that, your bases are ginormous... so... the usual rules don't really apply :).
There are multiple unloading stations for the main factory due to the high resource demand and I have come up with a system that dynamically ensures that incoming trains distribute each load to the unloaders as required. Here's a
short video of this in action (sorry no sound).
There's sound, I can hear somebody (you?) breathing :).
I have to admit that I don't really understand the point behind the unloading concept. As far as I can see, the trains (waiting on the stacker before the unload) are basically buffer chests. Why not unload them as quickly as possible, maybe balanced among the unloading stations?
If there are several trains (with ore in them) waiting on the stacker, that means you've picked up too many goods from the outposts, and now you've effectively reduced your total train bandwidth because those trains are forced to idle; and you need infrastructure (such as the stacker) to handle the situation.
You can see that the trains are waiting in the stacker until the resource count in the unloader drops below a certain threshold and it 'requests' a train load from the stacker. This allows us to keep a buffer of resources in the trains that are waiting in the stacker and that they are distributed as needed.
Why are you buffering the resources in trains, in a stacker? So they are closer to the unload when you finally need them? Is that even a problem with a large enough buffer at the unload? The buffer can't suddenly run dry, prompting an "emergency" train delivery, can it?
Maybe I'm missing something here.
There is a set limit to how many trains of each resource type can be active at any given time (15 by default) which ensures that you don't end up with 60 iron trains or 60 copper trains etc and this limit is easily adjustable within the controller.
As far as I can see, as long as the system only delivers goods "on request" (or "on demand" if you will), no such arbitrary limits are necessary (and no stacker at the unload is necessary either).
There's another player here on the forums,
kann_, he's actually made a system that does train requests and deliveries much like the robot logistic network (reddit post is here:
https://www.reddit.com/r/factorio/comme ... _provider/). I want to make my own system work like that as well.
With such a system, in your case, your various unloads would request a set amount of resources. Given that you have constant demand for the rocket manufacturing, you make your unloads (the "requesters") demand enough so there will always be a healthy buffer.
The trains will service these demands (from the various outposts, which are arbitrarily picked and act like "passive provider chests"). As long as the demand is met, the resources are not even considered for pickup. The situation that you have "too many" trains carrying a single resource type is not even possible then, unless you don't have enough trains to begin with. And it won't be possible for trains to "pile up" in front of the unload, because that would mean that way more resources are delivered than have been requested.
Or am I missing a crucial aspect of your map/factory here? (As I've said your bases are so big I can't even imagine some of the challenges that must pose.)
The main controller part uses a lot of combinators, most of which are the memory cells which hold the information for each outpost.
Does that mean you use 1 memory cell per outpost? So your outpost count is limited by the amount of memory at the base?
Note that I have absolutely no prior knowledge of computer science and have taught myself a decent amount of basic computer science throughout learning combinators (with the help of some fantastic people in the community I might add!) and as such there is probably more elegant or simple ways of achieving what I have come up with.
To be honest I don't think computer science knowledge is that useful when it comes to combinator designs. I have a strong (university-level) background in CS, albeit not much experience in hardware design, and it really doesn't help that much when learning this.
Classic electric engineering knowledge, especially, does more harm than help -- combinators don't work like traditional logic circuits.
It helps to know some concepts, such as signal buses, multiplexing, that will make it easier to come up with practical solutions, but beyond that it won't help much.
There are some areas that are arcane enough that you basically have no chance to figure it out unless you have a solid CS background. For example, if you know how signed integers work in low-level computer programming, and if you are aware of the fact that this is exposed in the arithmetic combinators, it opens up possibilities for advanced designs.
Other than that what you actually need is talent and the ability to abstract and think logically. You're probably talented and very smart, otherwise you couldn't have built all this. Problem solved, no CS degree required :).
I love seeing other setups and how they work as I find there are always multiple ways of implementing these kinds of setups
Yes, the possibilities are endless, it's important to get others' designs for inspiration.
Yes, very interesting going by his stream description. I have to write to him on Twitch and see if he can give me a demo map or blueprints or something.
Thanks for the kind words! It was a great read going through your post about your system. I'll keep you updated on my progress; I'm hoping to be finished with my system in the next week or two at most :)
Yes please do, I like the shows you're doing on YouTube, I've yet to join your twitch stream. It's very entertaining and I'm looking forward to seeing the train network in action.