Friday Facts #389 - Train control improvements

Regular reports on Factorio development.
User avatar
Impatient
Filter Inserter
Filter Inserter
Posts: 883
Joined: Sun Mar 20, 2016 2:51 am
Contact:

Re: Friday Facts #389 - Train control improvements

Post by Impatient »

Respect!
roy7
Filter Inserter
Filter Inserter
Posts: 341
Joined: Fri Dec 12, 2014 4:24 pm
Contact:

Re: Friday Facts #389 - Train control improvements

Post by roy7 »

Someone on Reddit suggested a condition that would test against remaining fuel Mj. This way you don't need to test for low specific fuel type(s). If fuel Mj is low, go refuel. If you change fuel type in the refueling station later on, the train doesn't even need to know.
danbopes
Long Handed Inserter
Long Handed Inserter
Posts: 80
Joined: Mon Feb 07, 2022 9:29 pm
Contact:

Re: Friday Facts #389 - Train control improvements

Post by danbopes »

roy7 wrote: Fri Dec 15, 2023 1:08 pm Someone on Reddit suggested a condition that would test against remaining fuel Mj. This way you don't need to test for low specific fuel type(s). If fuel Mj is low, go refuel. If you change fuel type in the refueling station later on, the train doesn't even need to know.
With the fact that I interrupts are global, I think this point is a bit moot. Only one small update to one global interrupt to fix your whole network.
danbopes
Long Handed Inserter
Long Handed Inserter
Posts: 80
Joined: Mon Feb 07, 2022 9:29 pm
Contact:

Re: Friday Facts #389 - Train control improvements

Post by danbopes »

Kallinger wrote: Fri Dec 15, 2023 12:15 pm IMO this makes LTN and Cybersyn almost irrelevant. Would only like to change priorities of stations, maybe there is a way to do this as well i just have not realized yet.
With interrupts being executed in order, you could put your higher priority stations higher in the list, and they'd be executed first.
svalorzen
Inserter
Inserter
Posts: 21
Joined: Fri Mar 18, 2016 11:44 am
Contact:

Re: Friday Facts #389 - Train control improvements

Post by svalorzen »

Very cool! Something not mentioned that I think would really be an additional improvement on top of interrupts would be the ability to temporarily disable interrupts, or fully disable interrupts and only check them at specific points in a schedule.

For example, if you know that the refueling station is in a certain location, you may not want the train to check the fuel during some parts of its schedule which are particularly far away from it, since it would need to travel a lot to get there, and to get back again, wasting time and occupying the tracks more than necessary.

As another idea, you could have specific "interrupts" not be general for the entire schedule but instead only set to be checked at specific points in the schedule, to create a way to make trains conditionally go to some stations with minimal changes to the interrupt system. In other words, when you reach a certain point in the schedule, there's an "interrupt stop" which checks some conditions and decides whether to take it. Once that point is passed, the interrupt stop(s) is no longer available until the train does a complete round of stops and gets back at that point.
toprakkoyun
Burner Inserter
Burner Inserter
Posts: 13
Joined: Sat Apr 02, 2022 9:41 am
Contact:

Re: Friday Facts #389 - Train control improvements

Post by toprakkoyun »

All of the quality of life improvements that can be added to the current build should be added before 2.0. All of these improvements make me so excited to the point that I cannot wait for them like 6-7 months. I could not get myself to think how they would change my current playthrough and how they would make so many things much easier and enjoyable. Please I am begging you :D :D
Terrahertz
Fast Inserter
Fast Inserter
Posts: 132
Joined: Mon May 15, 2017 7:49 pm
Contact:

Re: Friday Facts #389 - Train control improvements

Post by Terrahertz »

mmmPI wrote: Fri Dec 15, 2023 12:41 pm Curious to see what would be on that other planet that can impact even trains, meteorites ? Alien invasion hijacking trains ?
Don't limit your thinking to the outside of the train ;)
Maybe your cargo is changing temperature, there should be an ice world after all.
It could also decay or transform.

After seeing some of the additions to the game, I also would not put it past the devs to introduce a new locomotive type that needs some special attention or a wagon that produces things while moving.
Last edited by Terrahertz on Fri Dec 15, 2023 1:46 pm, edited 1 time in total.
User avatar
Hares
Filter Inserter
Filter Inserter
Posts: 348
Joined: Sat Oct 22, 2022 8:05 pm
Contact:

Re: Friday Facts #389 - Train control improvements

Post by Hares »

I have a very dumb question. What is the limit for the NUMBER of train stops and/or interrupts in the train schedule?
Justderpingalong
Long Handed Inserter
Long Handed Inserter
Posts: 76
Joined: Wed Mar 08, 2017 3:34 pm
Contact:

Re: Friday Facts #389 - Train control improvements

Post by Justderpingalong »

Oh my god... this one actually had me in tears for a bit. It's so beautiful. You've taken LTN and integrated it better than I could've ever imagined it. The channels are groups, the interrupts are requests/provides... I'm having an INCREDIBLY hard time trying to imagine what more you're going to add to make trains even better. Apart from being able to somehow automatically add trains to the network... I just can't see it.

I do want to like, propose a scenario however and all I request is a simple 'yes' or 'no' in terms of how feasable it is.

Right now, LTN will create a request for a train when a requester station's demand is big enough to warrant a train (basically, the amount is below the 'threshhold'. This can be simulated in factorio via simply setting the station limit or even enabling/disabling stations based on demand. Equally, provider stations only turn on if they have enough cargo to load a train provided u set a threshhold.

In an ideal world, I'd like a train with only a depot stop. This train will leave the depot if a request station and a provide station of matching types are active. What I DON'T want to happen is that a train will go to a provide station, load up with cargo, only to realize that it cannot drop off it's cargo anywhere. This could cause a deadlock in the sense that all of my trains end up filling themselves with cargo they cannot drop off, sitting idle in my depot whilst my factory dies.

So I guess my question boils down to: Can I somehow make sure that when a train goes to pick up an item, it will be able to drop this item off somewhere?
nullvoid
Burner Inserter
Burner Inserter
Posts: 16
Joined: Sat May 03, 2014 9:53 pm
Contact:

Re: Friday Facts #389 - Train control improvements

Post by nullvoid »

First of, very cool!

I'm reminded of Greenspun's 10th Rule (Any sufficiently complex system contains a poorly specified, bug ridden, implementation of half of common lisp)
So with that in mind, when do we get pre-conditions for basic schedule stops? I feel like they would be an even better solution for the "generic drop off" train.

Only joking! (or am I?)
Last edited by nullvoid on Fri Dec 15, 2023 2:59 pm, edited 1 time in total.
aka13
Filter Inserter
Filter Inserter
Posts: 801
Joined: Sun Sep 29, 2013 1:18 pm
Contact:

Re: Friday Facts #389 - Train control improvements

Post by aka13 »

Very nice, I have been suspecting that since the closure of the Stop-Disabling behaviours. I appreciate your efforts very much.
Pony/Furfag avatar? Opinion discarded.
Amarula
Filter Inserter
Filter Inserter
Posts: 546
Joined: Fri Apr 27, 2018 1:29 pm
Contact:

Re: Friday Facts #389 - Train control improvements

Post by Amarula »

nullvoid wrote: Fri Dec 15, 2023 1:50 pm Greenspunth's 10th Rule
Ah Greenspun's 10th Rule! https://en.wikipedia.org/wiki/Greenspun%27s_tenth_rule
My own personal Factorio super-power - running out of power.
mmmPI
Smart Inserter
Smart Inserter
Posts: 3643
Joined: Mon Jun 20, 2016 6:10 pm
Contact:

Re: Friday Facts #389 - Train control improvements

Post by mmmPI »

Terrahertz wrote: Fri Dec 15, 2023 1:36 pm Don't limit your thinking to the outside of the train ;)
Maybe your cargo is changing temperature, there should be an ice world after all.
It could also decay or transform.

After seeing some of the additions to the game, I also would not put it past the devs to introduce a new locomotive type that needs some special attention or a wagon that produces things while moving.
Made me think of a wagon with water turret lol. To push biters awway from the track. it gets an interrupt when there is no more water for the train to protect itself, and an interrupt the interupt in case in run out of fuel while getting water to continue its defense duty.

It would also work with crude oil or lava like flame turret.

That would work for the arty trains actually. But those all they produce is noise not empty barrel.

It used to be in game that you can't make steam barrel and you can only make water barrel, but maybe this will change, you could make ice barrel and after a few minutes rolling on vulcanus it's full of steam :)
User avatar
BlacKcuD
Inserter
Inserter
Posts: 20
Joined: Sat Mar 05, 2016 3:50 am
Contact:

Re: Friday Facts #389 - Train control improvements

Post by BlacKcuD »

This is completely nuts and I can´t even express how fakking awesome this all reads. I have run megabases with LTN with friends for years and this sounds so much better.
Modded Multiplayer Mega Bases Only!
adam_bise
Filter Inserter
Filter Inserter
Posts: 447
Joined: Fri Jun 08, 2018 10:42 pm
Contact:

Re: Friday Facts #389 - Train control improvements

Post by adam_bise »

Well! this is now my favorite QoL update!

Both train groups and interrupts will be a huge improvement for large train set-ups.

Gracias!
scarhoof
Inserter
Inserter
Posts: 46
Joined: Tue Sep 15, 2015 5:44 am
Contact:

Re: Friday Facts #389 - Train control improvements

Post by scarhoof »

Very cool stuff. I don't do crazy things with trains, but these changes are going to simplify the factory quite a bit. Can't wait to see what else is in store!
User avatar
Dial-up
Inserter
Inserter
Posts: 29
Joined: Sun Nov 12, 2023 2:02 am
Contact:

Re: Friday Facts #389 - Train control improvements

Post by Dial-up »

So we made it that interrupts are shared globally (identified by their name), and when you edit an interrupt it changes for all the trains with that interrupt. This made it much more convenient and less error prone.
I didn’t understand a little, if I add an interruption, then it is automatically applied to all trains or I can add it to one train, and then how, for example, with an existing station, select from the list?
although it seems to me that it’s the latter, otherwise it would be strange.

Also, I would like the ability to copy stations in lists, now when I rarely set up trains but need to copy a station either to the same train (but with a different station under the same conditions) or to another train but with a different schedule, I wonder if it is possible how to do this?
DrakeyC
Inserter
Inserter
Posts: 28
Joined: Mon Oct 23, 2023 6:52 pm
Contact:

Re: Friday Facts #389 - Train control improvements

Post by DrakeyC »

These new train systems sound GLORIOUS. I remember I wanted a train to transport artillery shells to various outposts and had to rig up each station to disable or enable based on if it had shells, plus have the train come back to resupply after each stop so it doesn't visit stations while not carrying anything. This would make such a thing SO much simpler, and being able to have trains carry multiple times of cargo and auto-reroute to different stations opens up worlds of possibilities.

A couple questions from previous FFF that crossed my mind - recycling machines are going to be a thing. How do they handle items with fluid components, like electric engines or blue circuits? I'm assuming the fluid is just lost to the aether? Also in regards to the quality mechanic, I recall that components can have quality, but can fluids as well?
ElderAxe
Fast Inserter
Fast Inserter
Posts: 153
Joined: Thu May 18, 2017 8:04 am
Contact:

Re: Friday Facts #389 - Train control improvements

Post by ElderAxe »

Justderpingalong wrote: Fri Dec 15, 2023 1:40 pm Oh my god... this one actually had me in tears for a bit. It's so beautiful. You've taken LTN and integrated it better than I could've ever imagined it. The channels are groups, the interrupts are requests/provides... I'm having an INCREDIBLY hard time trying to imagine what more you're going to add to make trains even better. Apart from being able to somehow automatically add trains to the network... I just can't see it.

I do want to like, propose a scenario however and all I request is a simple 'yes' or 'no' in terms of how feasable it is.

Right now, LTN will create a request for a train when a requester station's demand is big enough to warrant a train (basically, the amount is below the 'threshhold'. This can be simulated in factorio via simply setting the station limit or even enabling/disabling stations based on demand. Equally, provider stations only turn on if they have enough cargo to load a train provided u set a threshhold.

In an ideal world, I'd like a train with only a depot stop. This train will leave the depot if a request station and a provide station of matching types are active. What I DON'T want to happen is that a train will go to a provide station, load up with cargo, only to realize that it cannot drop off it's cargo anywhere. This could cause a deadlock in the sense that all of my trains end up filling themselves with cargo they cannot drop off, sitting idle in my depot whilst my factory dies.

So I guess my question boils down to: Can I somehow make sure that when a train goes to pick up an item, it will be able to drop this item off somewhere?
With the new interrupts i can imagine this will be possible with some station circuit magic and a global train dispatcher.
ElderAxe
Fast Inserter
Fast Inserter
Posts: 153
Joined: Thu May 18, 2017 8:04 am
Contact:

Re: Friday Facts #389 - Train control improvements

Post by ElderAxe »

Dial-up wrote: Fri Dec 15, 2023 2:30 pm
So we made it that interrupts are shared globally (identified by their name), and when you edit an interrupt it changes for all the trains with that interrupt. This made it much more convenient and less error prone.
I didn’t understand a little, if I add an interruption, then it is automatically applied to all trains or I can add it to one train, and then how, for example, with an existing station, select from the list?
although it seems to me that it’s the latter, otherwise it would be strange.

Also, I would like the ability to copy stations in lists, now when I rarely set up trains but need to copy a station either to the same train (but with a different station under the same conditions) or to another train but with a different schedule, I wonder if it is possible how to do this?
I think new interrupts are not added to all trains automatically. But When you add an interrupt, if another interrupt with the same name already exists on another train, they will merge with each other.
Post Reply

Return to “News”