Interchange blocks
Moderator: TTDPatch Moderators
Interchange blocks
Reading about the development of extra-large (12x12) stations gave me an idea.
I've had troubles even with 7x7 stations, if the entire station is fed by one inbound line (rather than having several separate lines using different platforms). You might have a lot of platforms, and you might have plenty of track inbound, but there is still a choke-point somewhere in which there can be only ONE train at a time. This is bad.
Would it be possible for the a block which is bordered by pre-signals and exit signals, to be treated as a special kind of block - an "interchange block" - with different behavior, as follows:
An interchange block would usually be composed of a whole bunch of switches, with many possible exits and/or entrances. For instance, the entry to a large station would be an interchange block, where incoming trains have to select which platform they are going to, and make there way there.
The rules of the interchange block would allow MORE THAN ONE train to be into the block at a time, or rather, would allow another train into the block even if there was one already in there, AS LONG AS:
a.) There was an available exit that the train found satisfactory (normal pre-signal behavior)
b.) The path of the train(s) already in the block, and the path of the train wanting to enter the block, did not intersect; or at least did not have to intersect.
In this way, you could have a train entering a terminal station, and also a train exiting the terminal station, through the interchange block leading to the station, at one and the same time, as long as they were already on the correct sides of the station and didn't have to cross over to get to where they were going.
This would make large stations more efficient and more realistic. If you look at the way the switching works at a major railway passenger station, you'll see trains going in and out at the same time, to and from the various platforms, but of course their routes do not cross.
There might be some small degree of hazard to this, a possibility that if something went wrong (a train broke in the wrong place, for instance) there might be a collision, but this is very realistic as the English railways have discovered...
It seems to me that this would be programmatically possible, since the trains do select their desired exit before they enter the pre-station block, and thus it would be a matter of calculating if they intersect the path of a train that's already there, which code must already exist because it detects and causes a collision. But maybe I'm missing something.
Thoughts?
I've had troubles even with 7x7 stations, if the entire station is fed by one inbound line (rather than having several separate lines using different platforms). You might have a lot of platforms, and you might have plenty of track inbound, but there is still a choke-point somewhere in which there can be only ONE train at a time. This is bad.
Would it be possible for the a block which is bordered by pre-signals and exit signals, to be treated as a special kind of block - an "interchange block" - with different behavior, as follows:
An interchange block would usually be composed of a whole bunch of switches, with many possible exits and/or entrances. For instance, the entry to a large station would be an interchange block, where incoming trains have to select which platform they are going to, and make there way there.
The rules of the interchange block would allow MORE THAN ONE train to be into the block at a time, or rather, would allow another train into the block even if there was one already in there, AS LONG AS:
a.) There was an available exit that the train found satisfactory (normal pre-signal behavior)
b.) The path of the train(s) already in the block, and the path of the train wanting to enter the block, did not intersect; or at least did not have to intersect.
In this way, you could have a train entering a terminal station, and also a train exiting the terminal station, through the interchange block leading to the station, at one and the same time, as long as they were already on the correct sides of the station and didn't have to cross over to get to where they were going.
This would make large stations more efficient and more realistic. If you look at the way the switching works at a major railway passenger station, you'll see trains going in and out at the same time, to and from the various platforms, but of course their routes do not cross.
There might be some small degree of hazard to this, a possibility that if something went wrong (a train broke in the wrong place, for instance) there might be a collision, but this is very realistic as the English railways have discovered...
It seems to me that this would be programmatically possible, since the trains do select their desired exit before they enter the pre-station block, and thus it would be a matter of calculating if they intersect the path of a train that's already there, which code must already exist because it detects and causes a collision. But maybe I'm missing something.
Thoughts?
Development Projects Site:
http://www.as-st.com/ttd
Japan, American Transition, Planeset, and Project Generic Stations available there
http://www.as-st.com/ttd
Japan, American Transition, Planeset, and Project Generic Stations available there
- Mr. Vulcan
- Engineer
- Posts: 39
- Joined: 04 Oct 2003 06:08
Not sure if I'm misunderstanding you, but would something like this work? You'll have to imagine that the other line is connected to the station as well.
- Attachments
-
- The trains enter in the bottom right corner, then they choose one of three paths into the station. From there, they choose one of the four available platforms or they wait for one to be freed up. In the tests that I ran, it seemed to work.
- SCR1.jpg (121.13 KiB) Viewed 5153 times
"They invade our space, and we fall back. They assimilate entire worlds, and we fall back. Not again. The line must be drawn HERE. This far NO farther. And I will make them pay for what they've done." - Captain Jean-Luc Picard
Of course, that will work. But there are two drawbacks:
1. That configuration will work only with a RORO through station, where the trains enter from that side and leave from the other side, which you can't see. This is common enough for industries, but for cities you usually have to have the station nuzzled into the city center as close as you can get it, so as to have as much of the city as possible in the catchment area, and thus there is no room for a through station; instead, it's a terminal station, and trains have to enter and leave from the same end of the station. That's where the interchange block would be useful - a train could be exiting, and another entering, at the same time, as long as they were on the right side of the tracks and didn't have to cross.
2. You STILL have a single choke-point, that is, the three-way switch at the lower right hand corner. ALL the trains must pass over this spot, one at a time, on queue. It's not so obvious with the one inbound track you have, but if you had, say, three tracks feeding into that same station, it would be painfully clear.
1. That configuration will work only with a RORO through station, where the trains enter from that side and leave from the other side, which you can't see. This is common enough for industries, but for cities you usually have to have the station nuzzled into the city center as close as you can get it, so as to have as much of the city as possible in the catchment area, and thus there is no room for a through station; instead, it's a terminal station, and trains have to enter and leave from the same end of the station. That's where the interchange block would be useful - a train could be exiting, and another entering, at the same time, as long as they were on the right side of the tracks and didn't have to cross.
2. You STILL have a single choke-point, that is, the three-way switch at the lower right hand corner. ALL the trains must pass over this spot, one at a time, on queue. It's not so obvious with the one inbound track you have, but if you had, say, three tracks feeding into that same station, it would be painfully clear.
Development Projects Site:
http://www.as-st.com/ttd
Japan, American Transition, Planeset, and Project Generic Stations available there
http://www.as-st.com/ttd
Japan, American Transition, Planeset, and Project Generic Stations available there
Unfortunately what you describe can't work because trains don't decide where they go until they hit each switch. They don't and can't plan ahead. So you can't "reserve" a path for a train and allow other paths which would be possible without collisions. And if you did it on a per-switch setup, it would be too easy to run into deadlock situations where two trains are blocking each other...
- Mr. Vulcan
- Engineer
- Posts: 39
- Joined: 04 Oct 2003 06:08
Ah, ok. I see what you're saying now.
In regards to #1, you don't have to make the station be a terminal station even if it is carrying passengers. Just connect it to a bus station, truck station, or heliport that's in the middle of the city in order to get that coverage that you're missing by making it a RORO station.
As for #2, if you had multiple tracks, couldn't you just assign each track a particular set of 4 tracks in order to speed up the process? I realize that the distrubution of trains would have to be pretty much equal, but it would help a little I guess.
As for your comment Patchman, my reasoning is that there can only be one train that's waiting for each set of 4 tracks since they will trip the signal behind them and prevent further trains from coming in, which will then go to another set of tracks.
In regards to #1, you don't have to make the station be a terminal station even if it is carrying passengers. Just connect it to a bus station, truck station, or heliport that's in the middle of the city in order to get that coverage that you're missing by making it a RORO station.
As for #2, if you had multiple tracks, couldn't you just assign each track a particular set of 4 tracks in order to speed up the process? I realize that the distrubution of trains would have to be pretty much equal, but it would help a little I guess.
As for your comment Patchman, my reasoning is that there can only be one train that's waiting for each set of 4 tracks since they will trip the signal behind them and prevent further trains from coming in, which will then go to another set of tracks.
"They invade our space, and we fall back. They assimilate entire worlds, and we fall back. Not again. The line must be drawn HERE. This far NO farther. And I will make them pay for what they've done." - Captain Jean-Luc Picard
I am a little confused, Josef. My understanding was that, when a train reaches a pre-signal, it doesn't go through the pre-signal (because it's red) until it there is a place for it to exit (at which point the pre-signal goes green), and then before the train goes through the signal, it decides where it is going (that is, which track it will use to exit). Knowing where it is entering, and where it is wanting to exit, cannot the system therefore at least "predict" its route? The trains don't generally go wandering around, they tend to choose the most direct route. And you could see where the other train already was, and if the two would cross.
Development Projects Site:
http://www.as-st.com/ttd
Japan, American Transition, Planeset, and Project Generic Stations available there
http://www.as-st.com/ttd
Japan, American Transition, Planeset, and Project Generic Stations available there
- DominionSpy
- Tycoon
- Posts: 1429
- Joined: 03 Oct 2003 23:59
- Location: Lancashire, UK
- Contact:
I don't think I'm asking my question correctly, let me try again.
I realize that trains have no plan; in other words, they do not determine their path across the switches when they enter a block. They wait until they get to each switch in turn; then they determine which one will progress them in the right direction, and they take it; then they decide the next one, and so on.
Forget the switch-taking decision-making for a second. Just think about entries and exits:
Obviously the train knows where it is entering, we know where it is at any given time.
Does the train know where it wants to exit, when it enters the block? It has to, because otherwise how would it know the right direction to go in at each switch? You don't see trains inside a block randomly bumping up against each possible track until they blunder their way to the "right" one.
Therefore, we know we know where the train is coming from, and where it is going. We don't have a locked-in route for the train, BUT since we know both end-points, and we know the way in which a train chooses how to move, we can calculate and predict the path the train will take to get from one end to the other. We can't control it, and we can't enforce it, but we can predict it.
So, what I'm saying is, we can calculate the predicted path of the two trains, and if the paths do not intersect, the second one can be allowed into the block before the first one leaves. We cannot guarantee that the path will be followed, but I don't see why it wouldn't be unless some aspect of the environment changes (a green signal goes red), but I don't see how that can happen in a terminal station.
Does this make more sense?
I realize that trains have no plan; in other words, they do not determine their path across the switches when they enter a block. They wait until they get to each switch in turn; then they determine which one will progress them in the right direction, and they take it; then they decide the next one, and so on.
Forget the switch-taking decision-making for a second. Just think about entries and exits:
Obviously the train knows where it is entering, we know where it is at any given time.
Does the train know where it wants to exit, when it enters the block? It has to, because otherwise how would it know the right direction to go in at each switch? You don't see trains inside a block randomly bumping up against each possible track until they blunder their way to the "right" one.
Therefore, we know we know where the train is coming from, and where it is going. We don't have a locked-in route for the train, BUT since we know both end-points, and we know the way in which a train chooses how to move, we can calculate and predict the path the train will take to get from one end to the other. We can't control it, and we can't enforce it, but we can predict it.
So, what I'm saying is, we can calculate the predicted path of the two trains, and if the paths do not intersect, the second one can be allowed into the block before the first one leaves. We cannot guarantee that the path will be followed, but I don't see why it wouldn't be unless some aspect of the environment changes (a green signal goes red), but I don't see how that can happen in a terminal station.
Does this make more sense?
Development Projects Site:
http://www.as-st.com/ttd
Japan, American Transition, Planeset, and Project Generic Stations available there
http://www.as-st.com/ttd
Japan, American Transition, Planeset, and Project Generic Stations available there
It make more or less sense.
But currently I don't know who has ever looked how the code for way finding works. I don't like to do it ... So I don't want to say possible/impossible or anything regarding it.
But currently I don't know who has ever looked how the code for way finding works. I don't like to do it ... So I don't want to say possible/impossible or anything regarding it.
TTDPatch dev in retirement ... Search a grf, try Grf Crawler 0.9 - now with even faster details view and new features...


No, it doesn't know that. It makes that decision anew every time it comes to a switch.krtaylor wrote:Forget the switch-taking decision-making for a second. Just think about entries and exits:
Obviously the train knows where it is entering, we know where it is at any given time.
Does the train know where it wants to exit, when it enters the block?
For example, it may currently be going to the far platform of a station because it has the only green signal. But while it's going there, another signal goes green and the train goes there right away if it can.
Trains simply do not know where they will be going in the next step, only in so far as you know they will attempt to take the shortest route to their goal, which is the station. But unless there's only one platform, even that goal doesn't need to be a single exit and so is impossible to predict in general.
Well... when the train gets to a junction, it looks at all paths leading from the junction, then looks ahead to the next junction and etc. until one of the routes hits where it wants to go. When that happens, it picks the exit that takes it there.eis_os wrote:But currently I don't know who has ever looked how the code for way finding works. I don't like to do it ... So I don't want to say possible/impossible or anything regarding it.
OK, I see what you are saying, here's a couple other points.
1. Is it possible for us to determine which exit a train will use, assuming that conditions do not change?
2. If the answer to that is YES, then this system would work FOR A TERMINAL STATION. It won't work for a RORO setup, but then it is less essential there anyway. This is because, in a terminal station, the signal conditions CANNOT change in a way that would affect the trains: A train that wants to leave the station must already have a green light at its (one-way) exit track or it wouldn't have entered the block in the first place; and there's no way for a one-way entrance to turn red except by that train entering it (it's one way, so no train can enter it from the other direction.) Since the station is a terminal, no trains can exit from the other side, thus no signals will turn from red to green while trains are transiting the interchange block.
3. So therefore, this method would work, because we can predict the route the trains would take if the conditions don't change, and we know they can't change, so it's OK. If the paths don't cross, they won't cross, and we can send the extra train on in.
1. Is it possible for us to determine which exit a train will use, assuming that conditions do not change?
2. If the answer to that is YES, then this system would work FOR A TERMINAL STATION. It won't work for a RORO setup, but then it is less essential there anyway. This is because, in a terminal station, the signal conditions CANNOT change in a way that would affect the trains: A train that wants to leave the station must already have a green light at its (one-way) exit track or it wouldn't have entered the block in the first place; and there's no way for a one-way entrance to turn red except by that train entering it (it's one way, so no train can enter it from the other direction.) Since the station is a terminal, no trains can exit from the other side, thus no signals will turn from red to green while trains are transiting the interchange block.
3. So therefore, this method would work, because we can predict the route the trains would take if the conditions don't change, and we know they can't change, so it's OK. If the paths don't cross, they won't cross, and we can send the extra train on in.
Development Projects Site:
http://www.as-st.com/ttd
Japan, American Transition, Planeset, and Project Generic Stations available there
http://www.as-st.com/ttd
Japan, American Transition, Planeset, and Project Generic Stations available there
That's not true: what about combo signals and/or split signal blocks?krtaylor wrote:2. If the answer to that is YES, then this system would work FOR A TERMINAL STATION. It won't work for a RORO setup, but then it is less essential there anyway. This is because, in a terminal station, the signal conditions CANNOT change in a way that would affect the trains: A train that wants to leave the station must already have a green light at its (one-way) exit track or it wouldn't have entered the block in the first place; and there's no way for a one-way entrance to turn red except by that train entering it (it's one way, so no train can enter it from the other direction.) Since the station is a terminal, no trains can exit from the other side, thus no signals will turn from red to green while trains are transiting the interchange block.

US Train Set v0.87.1 now released: http://www.tt-forums.net/viewtopic.php?t=8754
Don't forget to read the manual: http://wiki.ttdpatch.net/tiki-index.php?page=Manual
Don't forget to read the manual: http://wiki.ttdpatch.net/tiki-index.php?page=Manual
Don't do that. This will work in one very specific circumstance:
S=station
[> = train
=x = track
<> = signal directions
See what we have here: a simple two-track terminal station with a bidirectional (exit) signal in front of each track; a track interchange connecting things; and a double-track main line, one track inbound, the other track outbound.
There is a train in the lower station stall, opposite the exit track.
There is a train inbound, opposite the (empty) upper stall.
Consider that the lower (outbound) train is obviously wanting to go to the exit track, and the upper (inbound) train is wanting to go to the empty upper station stall. The paths of these trains do not and will not cross, although they must pass through the same interchange block that connects things.
Normal signal operation would allow only one train to be in the block at a time. But there's no reason these two trains couldn't share the block, as their routes will not intersect.
Of course it would also apply for a larger station with more stalls, and multiple inbound and exiting tracks, as long as all non-station tracks were one-way only. The station-exiting signals might need to be a bit smarter, and only go green if the exit track that the train wanted to take was green - it should be possible to determine this, since the trains can, so code to do that must exist.
I guess nobody has had cause to look at that code though or play with it. I would think it could be used without modification, as it seems to work just fine, as long as it's a subroutine of some kind that could be used to predict train movement without actually moving trains. Then you have an array of track that the train would move over; and you do the same thing with other trains in the block or wanting to enter; and if you find one without conflicts, you could let the train in.
S=station
[> = train
=x = track
<> = signal directions
Code: Select all
SSSSSSS >< X <=<]====
SSSS[>S >< X >=======
There is a train in the lower station stall, opposite the exit track.
There is a train inbound, opposite the (empty) upper stall.
Consider that the lower (outbound) train is obviously wanting to go to the exit track, and the upper (inbound) train is wanting to go to the empty upper station stall. The paths of these trains do not and will not cross, although they must pass through the same interchange block that connects things.
Normal signal operation would allow only one train to be in the block at a time. But there's no reason these two trains couldn't share the block, as their routes will not intersect.
Of course it would also apply for a larger station with more stalls, and multiple inbound and exiting tracks, as long as all non-station tracks were one-way only. The station-exiting signals might need to be a bit smarter, and only go green if the exit track that the train wanted to take was green - it should be possible to determine this, since the trains can, so code to do that must exist.
I guess nobody has had cause to look at that code though or play with it. I would think it could be used without modification, as it seems to work just fine, as long as it's a subroutine of some kind that could be used to predict train movement without actually moving trains. Then you have an array of track that the train would move over; and you do the same thing with other trains in the block or wanting to enter; and if you find one without conflicts, you could let the train in.
Development Projects Site:
http://www.as-st.com/ttd
Japan, American Transition, Planeset, and Project Generic Stations available there
http://www.as-st.com/ttd
Japan, American Transition, Planeset, and Project Generic Stations available there
I know that, we discussed it earlier, you can't "lock in" a path. This doesn't have to do with signals knowing that a train is bound for them. It's the opposite - knowing that a train will go in such and such of a direction assuming signal conditions do not change. Predicting train movement is the same thing as doing train movement, just without actually doing it.
Development Projects Site:
http://www.as-st.com/ttd
Japan, American Transition, Planeset, and Project Generic Stations available there
http://www.as-st.com/ttd
Japan, American Transition, Planeset, and Project Generic Stations available there
I'm afraid to say, as often, that I think it would be too much work for too little gain. Delays like that don't cause me much of a problem. If they're a problem for you, try using combo signals and split blocks to reduce the effect a bit.
US Train Set v0.87.1 now released: http://www.tt-forums.net/viewtopic.php?t=8754
Don't forget to read the manual: http://wiki.ttdpatch.net/tiki-index.php?page=Manual
Don't forget to read the manual: http://wiki.ttdpatch.net/tiki-index.php?page=Manual
Well, OK, I guess. Maybe someday it will be possible to make the whole signalling system smarter. That might require a new game though. The trouble is, the more realistic the game becomes, then the closer it would approach a real railroading simulation - in other words, it would in effect replicate the software that a real railroad uses, which must have cost a fortune to write.
Development Projects Site:
http://www.as-st.com/ttd
Japan, American Transition, Planeset, and Project Generic Stations available there
http://www.as-st.com/ttd
Japan, American Transition, Planeset, and Project Generic Stations available there
Who is online
Users browsing this forum: No registered users and 17 guests