Trains reserve paths by segments instead of blocks

Post your ideas and suggestions how to improve the game.

Moderator: ickputzdirwech

sparr
Smart Inserter
Smart Inserter
Posts: 1331
Joined: Fri Feb 14, 2014 5:52 pm
Contact:

Trains reserve paths by segments instead of blocks

Post by sparr »

https://wiki.openttd.org/Signals

In OpenTTD there are block signals that work the same as in Factorio.

Then there are path signals, instead of our chain signals. The way path signals work is that two trains are allowed inside the same block iff they can both reserve separate track segments through the block. Reservations happen at the segment level instead of the block level. If Factorio trains could reserve segments instead of blocks, then interchanges could be a lot smaller, because we wouldn't have to cover them with so many signals, including making space to put the signals.

User avatar
mngrif
Fast Inserter
Fast Inserter
Posts: 173
Joined: Wed Feb 13, 2013 10:44 am
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by mngrif »

yes
yes
yes
yes
yes
yes
My Silly Factorian Tricks
<_aD> OBSERVE SIGNAL ASPECT BEFORE CROSSING TRACK

Moosfet
Long Handed Inserter
Long Handed Inserter
Posts: 64
Joined: Fri Jun 10, 2016 1:50 pm
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by Moosfet »

The intersections with many signals are a problem, but I think the source of that problem is that such complex intersections (tracks going both directions intersecting with other tracks going in both directions) are necessary at all. In real life, trains manage to make do without such intersections, and instead run trains in both directions on a single track. So why are dual tracks required in Factorio?

The cargo wagon's capacity is simply too small. It's smaller than the car's trunk, and it's smaller than my personal inventory. So we need lots of trains, and so we need tracks running in both directions, and so we need complex intersections, and so we need fully automatic train routing... Also, the need for so many trains makes the train more costly than simply running conveyor belt, and the belt would have better throughput than the trains. The trains are simply under-powered, and it's because the cargo wagon's capacity is too small.

I'd prefer we just increase the cargo wagon's capacity and stick to the simple signals. This new signal seems over-powered, in that I could make my entire rail system one large "block" and just let the trains reserve separate paths through it, which would defeat the need to place any signals at all. Indeed, if there is to be a new signal, it might as well just be a stop light (like for cars), since car signals are designed for a non-stop flow of traffic, whereas rail signals are designed for the occasional train, which is why the rail signals seem so insufficient: They're being applied to a problem they're not intended to solve.

Moosfet
Long Handed Inserter
Long Handed Inserter
Posts: 64
Joined: Fri Jun 10, 2016 1:50 pm
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by Moosfet »

Of course, three minutes after I post, it occurs to me that maybe the problem might actually be in the engines: I'd make way longer trains if it weren't that, after about ten cars, the speed of the train is so low that I don't want to make it any longer. (Slower acceleration makes sense, but I wouldn't expect the top speed to take such a huge hit as well.) IRL, trains are 50 to 100 cars long, but in Factorio I stick to 10 or less.

Loading/unloading might be a chore, but I could probably make it happen by setting up a series of stops such that the train just pulls up a couple of car lengths to let the next two cargo wagons unload. I'll have to give this idea a try today and see what I think of it...

sparr
Smart Inserter
Smart Inserter
Posts: 1331
Joined: Fri Feb 14, 2014 5:52 pm
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by sparr »

Moosfet wrote:This new signal seems over-powered, in that I could make my entire rail system one large "block" and just let the trains reserve separate paths through it, which would defeat the need to place any signals at all.
No. If a train reserved a path from start to finish through your whole one-block network it would be terrible. No train could be ahead of it, or cross its path ahead of it. Blocks would still exist and be necessary.
Moosfet wrote:Indeed, if there is to be a new signal
I would prefer this simply replace the chain signal, rather than being a new type. I can even write the algorithm for updating old maps (by deleting all but the entrance chain signals from current chain intersections), if that's useful.
Moosfet wrote:it might as well just be a stop light (like for cars)
So, a signal on a timer? That's a neat idea, but belongs in a different thread.

sparr
Smart Inserter
Smart Inserter
Posts: 1331
Joined: Fri Feb 14, 2014 5:52 pm
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by sparr »

Moosfet wrote:Of course, three minutes after I post, it occurs to me that maybe the problem might actually be in the engines: I'd make way longer trains if it weren't that, after about ten cars, the speed of the train is so low that I don't want to make it any longer. (Slower acceleration makes sense, but I wouldn't expect the top speed to take such a huge hit as well.) IRL, trains are 50 to 100 cars long, but in Factorio I stick to 10 or less.
I've seen someone running a 20-60-20 train (20 engines, 60 cargo wagons, 20 more engines). Consider adding more engines if your train is too slow.

Harkonnen604
Filter Inserter
Filter Inserter
Posts: 285
Joined: Thu Jun 09, 2016 5:56 am
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by Harkonnen604 »

I personally think all that stuff about signals could be assumed and automated a lot, e.g. like if a virtual train signal is placed at every junction where blocks connect. with no real need to set up these signals. The real purpose of signals should be not in preventing trains from colliding, but in preventing trains from deadlocking or wasting usable railspace. And I think that should be performed via circuit conditions.
Last edited by Harkonnen604 on Sun Jun 12, 2016 8:51 pm, edited 1 time in total.

sparr
Smart Inserter
Smart Inserter
Posts: 1331
Joined: Fri Feb 14, 2014 5:52 pm
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by sparr »

Signals also have the important effect of marking one-way track.

silverkitty23
Fast Inserter
Fast Inserter
Posts: 117
Joined: Wed May 11, 2016 6:52 am
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by silverkitty23 »

Moosfet wrote:In real life, trains manage to make do without such intersections, and instead run trains in both directions on a single track. So why are dual tracks required in Factorio?
because IRL we have scores of people full-time employed to manage rail lines and schedules to make sure trains are using the track appropriately, but in Factorio you're one person and you don't even spend all your time managing trains?

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

Re: Trains reserve paths by segments instead of blocks

Post by ssilk »

This suggestion will come in conflict to
viewtopic.php?f=80&t=19953 New types of rails (curves, s-curves ...)


The devs originally have planned path signals but changed their mind during implementation. So I gues: this will not be implemented. ;)
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...

Harkonnen604
Filter Inserter
Filter Inserter
Posts: 285
Joined: Thu Jun 09, 2016 5:56 am
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by Harkonnen604 »

silverkitty23 wrote:because IRL we have scores of people full-time employed to manage rail lines and schedules to make sure trains are using the track appropriately, but in Factorio you're one person and you don't even spend all your time managing trains?
Factorio is about emulating those IRL people via automated production, automated construction, train signals, circuit network conditions and other stuff. "but in Factorio you're one person" can be read as "in Factorio just craft everything. and mine by hand". This game is about what IRL you would do via people :)

silverkitty23
Fast Inserter
Fast Inserter
Posts: 117
Joined: Wed May 11, 2016 6:52 am
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by silverkitty23 »

Harkonnen604 wrote:
silverkitty23 wrote:because IRL we have scores of people full-time employed to manage rail lines and schedules to make sure trains are using the track appropriately, but in Factorio you're one person and you don't even spend all your time managing trains?
Factorio is about emulating those IRL people via automated production, automated construction, train signals, circuit network conditions and other stuff. "but in Factorio you're one person" can be read as "in Factorio just craft everything. and mine by hand". This game is about what IRL you would do via people :)
Sure, but you left out that I was answering a pretty specific question: why do we have dual lines and complex intersections with weird chain signals? My answer was: we're automating jobs that take many people with very simple tools. Whereas it takes planning to say "well, we need these three trains to get to Chicago by Saturday, and these 2 trains to get to Kansas City by Friday, so we'll route train 1 along line A north, and when it clears station 612, we'll route train 2 south on that line down to station 1043, where it will then switch to line B, which should clear up line A again for train 3 to go north on it..." we don't have the benefit of that bunch of intelligent planning agents - and our less complex planning agents require compromises - like, say, running line A as two tracks in parallel for north-south movement.

sparr
Smart Inserter
Smart Inserter
Posts: 1331
Joined: Fri Feb 14, 2014 5:52 pm
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by sparr »

ssilk wrote:This suggestion will come in conflict to
viewtopic.php?f=80&t=19953 New types of rails (curves, s-curves ...)


The devs originally have planned path signals but changed their mind during implementation. So I gues: this will not be implemented. ;)
I don't understand how there's a conflict here. That system doesn't change anything that seems relevant to this idea. The rail system will still be comprised of segments and blocks, and from what I can see blocks will still work the same way in the new system so I expect segments will too.

Shokubai
Filter Inserter
Filter Inserter
Posts: 470
Joined: Mon May 02, 2016 3:17 pm
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by Shokubai »

Wholeheartedly agree with the pathfinding ideas and I Think chain signals could be used to trigger a pathfind. This would mean that a T junction with crossovers and ONLY signals outside the junction(one big block) could allow as many trains into the block as could find a path through it.
ssilk wrote:This suggestion will come in conflict to
viewtopic.php?f=80&t=19953 New types of rails (curves, s-curves ...)


The devs originally have planned path signals but changed their mind during implementation. So I gues: this will not be implemented. ;)
1) WHAT? There is no conflict there.
2) That sucks but don't assume. You make an a@$ out of u & me.

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

Re: Trains reserve paths by segments instead of blocks

Post by ssilk »

Ok, reasons:
When introducing new segments, some segments can be much longer than blocks on that segment. That is yet not the case, but think to rails with much bigger radius (see linked thread): You just need that, when a train is much shorter than a segment.
And: With v0.13 there is no such big difference between segments and blocks anymore. You lay only straight rails, you have no control, what segments a curve is made of.
And: In Factorio, rails can be layed in a much more complex pattern, than in any other railway game I know. It can be really difficult to calculate every tick, which segments belongs to a block; the other way around is much simpler. :)
And: The devs would not have changed their mind, if they have no good reasons. Normally it's a long discussion. Sorry, I don't know that reasons, but they must be there.
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...

Shokubai
Filter Inserter
Filter Inserter
Posts: 470
Joined: Mon May 02, 2016 3:17 pm
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by Shokubai »

ssilk wrote:Ok, reasons:
When introducing new segments, some segments can be much longer than blocks on that segment. That is yet not the case, but think to rails with much bigger radius (see linked thread): You just need that, when a train is much shorter than a segment.
And: With v0.13 there is no such big difference between segments and blocks anymore. You lay only straight rails, you have no control, what segments a curve is made of.
And: In Factorio, rails can be layed in a much more complex pattern, than in any other railway game I know. It can be really difficult to calculate every tick, which segments belongs to a block; the other way around is much simpler. :)
I still see no conflict unless you are hung up on the "rail segment" idea. A train should easily be able to pathfind from a chain signal to a block signal. Obviously this requires a lot of new code to work but is in no way a conflict.
ssilk wrote:And: The devs would not have changed their mind, if they have no good reasons. Normally it's a long discussion. Sorry, I don't know that reasons, but they must be there.
Changing one's mind is not the same as putting something in the garbage. It could be as simple as the amount of code required to make it work was more than they wanted to invest at the time. The idea is worth keeping alive.

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

Re: Trains reserve paths by segments instead of blocks

Post by ssilk »

Shokubai wrote:I still see no conflict unless you are hung up on the "rail segment" idea. A train should easily be able to pathfind from a chain signal to a block signal. Obviously this requires a lot of new code to work but is in no way a conflict.
O.K. let's say it's no conflict.
Why should the devs do that? Just for fun? Cause it is a programming challenge?
Surely not. :)
So tell me, what is the bargain of this suggestion? What make this so much better than chain signals, that it becomes worth implementing now?
(*)
Changing one's mind is not the same as putting something in the garbage. It could be as simple as the amount of code required to make it work was more than they wanted to invest at the time. The idea is worth keeping alive.
I never put ideas into the basket, cause I don't like them. I have a list of things that I can objectively measure, and if they are not fulfilled, I begin to ask uncomfortable questions, cause I see that as part of my job as moderator around this subboard. :)


(*) It's no question, that path signals are better, the question is, is it more worth than - let's say - train routes? Or more worth than electric trains?
And how often will this be used? How much player time can be spared? Is this easier to understand? Obviously yes, but should the chain signals be removed then?
And so on and so on... there are also such technical questions from the first reply... and in the end I see this as a good idea, but it's currently not worth implementing it, cause the chain signals already exist.
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...

sparr
Smart Inserter
Smart Inserter
Posts: 1331
Joined: Fri Feb 14, 2014 5:52 pm
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by sparr »

ssilk wrote:Why should the devs do that? Just for fun? Cause it is a programming challenge?
Surely not. :)
So tell me, what is the bargain of this suggestion? What make this so much better than chain signals, that it becomes worth implementing now?
[...]
It's no question, that path signals are better, the question is, is it more worth than - let's say - train routes? Or more worth than electric trains?
And how often will this be used? How much player time can be spared? Is this easier to understand? Obviously yes, but should the chain signals be removed then?
And so on and so on... there are also such technical questions from the first reply... and in the end I see this as a good idea, but it's currently not worth implementing it, cause the chain signals already exist.
Yes, this is worth more than train routes or electric trains. It will be used in almost every rail network. It will save some player time, and uncountable train-hours of waiting time.

Shokubai
Filter Inserter
Filter Inserter
Posts: 470
Joined: Mon May 02, 2016 3:17 pm
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by Shokubai »

ssilk wrote:(*) It's no question, that path signals are better, the question is, is it more worth than - let's say - train routes? Or more worth than electric trains?
And how often will this be used? How much player time can be spared? Is this easier to understand? Obviously yes, but should the chain signals be removed then?
I'm sure you have seen train junctions grow in size due to the current REQUIREMENT that signals be placed throughout the junction in order to divide and subdivide the rail into smaller and smaller blocks.

Here is a great example(*old pic*) of the volume of signals necessary to make a junction traversable by multiple trains at once. Easier to see here.
Image

Now imagine if the trains could chose their path through a junction I could simply place signals on the outside only and have this.
Pathing.png
Pathing.png (965.78 KiB) Viewed 7311 times
As for "is it more important than _____"? I dunno but trains are a frequent point of frustration for many players and creating something that simplifies train logic for the user can't be bad. For the advanced user, trains and logic for trains can eat bucket loads of time. The problem is only compounded by the volume of trains on your network and there is currently NO GOOD WAY to manage large volumes of trains. Pathing simplifies the signaling necessary for junctions, queuing, and stations.

As for what to do with chain signals. I think they fill the spot that would be the path signal. Given the chain signals requirement that a train pass the NEXT block signal fits perfectly into a path signal logic.

Backstory...Im a long time player of OpenTTD and the way trains are implemented here fits (in my mind) perfectly into the mold that was created there. Many of that games features such as "Wait Load, Transfer and Leave Empty, Unload or Load Only, have merit in this game and I would love to see Trains here modified in much the same way.

Stole this from Openttd Wiki and I think it illustrates the issue quite well.
Image
The most important difference between block signal setup and path signal setup as shown in this example: two parallel tracks are connected by a crossover.
In the block signal setup, the signal does not authorize the lower train to enter the signal block because it is currently occupied by the upper train, even though there is absolutely no risk of letting the lower train pass through it.
In the path signal setup, the lower train is authorized to pass through the junction as long as the upper train does not switch path from upper tracks to lower.
The solution, in Factorio world, to the block signal crossover issue is to place a signal on the crossover piece thus creating two blocks. In the Path signal implementation both trains can find a PATH without the need for additional signaling.
Last edited by Shokubai on Mon Jun 13, 2016 7:08 pm, edited 1 time in total.

silverkitty23
Fast Inserter
Fast Inserter
Posts: 117
Joined: Wed May 11, 2016 6:52 am
Contact:

Re: Trains reserve paths by segments instead of blocks

Post by silverkitty23 »

Shokubai wrote:Here is a great example of the volume of signals necessary to make a junction traversable by multiple trains at once. Easier to see here.
Off topic, and sorry to distract, but why are all those regular signals? Old pic or am I still doing it wrong (extension of conversation you and I had in a separate thread a month ago) because I have chains all through my intersection? (Also, that conversation we had is a great example of your point - I had like 400 hours of play behind me and was still struggling with signalling)

Post Reply

Return to “Ideas and Suggestions”