So I tried to make some fairly complex metro lines in sandbox and of course they dead locked as soon as traffic got higher. Sometimes they would even deadlock with light traffic and once dead locked they remained so for a long time. Useless.
Next after some browsing on the forums I reverted to simple loop lines with no junctions. No junctions, no dead locks. This got me far in the campaign etc. However it meant having horrible looking loop backs at the half way point, making interchange hubs look messy.
Finally I had an epiphany. Dead locks only occur when lines of different directions mix at junctions.
So following one simple rule; "Never cross tracks at a junction", I have been able to make very complex metro track layouts without being able to deadlock them (within reason), even when the entire track is covered in trains. Even including the 4 track sections for high speed, low speed bidirectional loops.
Another way to look at it is to treat metro tracks just like express ways. Avoid junctions by creating graded junctions etc. Never having a crossing intersection.
An example:
A standard railway Y junction at a depot. High level layout:
You want Line A(left) and line B(right) both to reverse at the depot.
If you look closely, at the depot, line b's outline will cross line a's in line and vice versa. As soon as you have a train exiting onto line a at the same time as a train arriving on line b, it will dead lock.
The solution is to use single track. Connect the outer most lines directly and cross the directional track with a graded junction, like so:
Now what if you want to be able to run trains direct from the left depot to the right depot? Well, you can create bypasses like this:
Still deadlock free?
Lets see:
It did eventually deadlock, but only because the track space AND depot space maxed out at the right hand depot. If the lines where realistically long, this would not have occured unless you a HUGE amount of trains.
One note... you are limited in the number of trains on any of the intersecting lines by the number of trains that will arrive at a deport concurrently. If you have a depot that can handle 10 trains and 11 arrive, the last one will need to wait outside. You can eventually dead lock it this way as the queue for the depot build up enough to block another depot, but this takes a huge amount of traffic and is easily fixed by lowering the traffic and deleting a few trains.
Sometimes junctions will get very complex and an easy way to handle them is the "roundabout" paradigm. Like this:
Create an inner one way loop and branch into and out of that loop.
Now consider this:
A one way depot sorting loop with two way branches connecting out to a 4 track outer express/all stop two way ring. Trains can route from any depot to any stop, in either direction and from any stop to any other stop, either express inner lines or all stop outer lines.
Inner sorting loop.
It does require some interesting outer ring junctions:
Both IN and OUT of the spoke can connect to/from fast or slow lines in both directions.
Now, one thing, if the devs are listening that would make certain junctions a lot simpler is if we could branch off the inner lines of a 4 track section. It seems we can only branch off the outer line, so to compensate we have to create a one way break out and graded pass like this:
A 4 way express route merges onto a one way 2 track interchange.
It would be so much simpler if joining a 2 track one way section to a 4 track section, branched both inner and outer off.
Paul
Next after some browsing on the forums I reverted to simple loop lines with no junctions. No junctions, no dead locks. This got me far in the campaign etc. However it meant having horrible looking loop backs at the half way point, making interchange hubs look messy.
Finally I had an epiphany. Dead locks only occur when lines of different directions mix at junctions.
So following one simple rule; "Never cross tracks at a junction", I have been able to make very complex metro track layouts without being able to deadlock them (within reason), even when the entire track is covered in trains. Even including the 4 track sections for high speed, low speed bidirectional loops.
Another way to look at it is to treat metro tracks just like express ways. Avoid junctions by creating graded junctions etc. Never having a crossing intersection.
An example:
A standard railway Y junction at a depot. High level layout:
You want Line A(left) and line B(right) both to reverse at the depot.
If you look closely, at the depot, line b's outline will cross line a's in line and vice versa. As soon as you have a train exiting onto line a at the same time as a train arriving on line b, it will dead lock.
The solution is to use single track. Connect the outer most lines directly and cross the directional track with a graded junction, like so:
Now what if you want to be able to run trains direct from the left depot to the right depot? Well, you can create bypasses like this:
Still deadlock free?
Lets see:
It did eventually deadlock, but only because the track space AND depot space maxed out at the right hand depot. If the lines where realistically long, this would not have occured unless you a HUGE amount of trains.
One note... you are limited in the number of trains on any of the intersecting lines by the number of trains that will arrive at a deport concurrently. If you have a depot that can handle 10 trains and 11 arrive, the last one will need to wait outside. You can eventually dead lock it this way as the queue for the depot build up enough to block another depot, but this takes a huge amount of traffic and is easily fixed by lowering the traffic and deleting a few trains.
Sometimes junctions will get very complex and an easy way to handle them is the "roundabout" paradigm. Like this:
Create an inner one way loop and branch into and out of that loop.
Now consider this:
A one way depot sorting loop with two way branches connecting out to a 4 track outer express/all stop two way ring. Trains can route from any depot to any stop, in either direction and from any stop to any other stop, either express inner lines or all stop outer lines.
Inner sorting loop.
It does require some interesting outer ring junctions:
Both IN and OUT of the spoke can connect to/from fast or slow lines in both directions.
Now, one thing, if the devs are listening that would make certain junctions a lot simpler is if we could branch off the inner lines of a 4 track section. It seems we can only branch off the outer line, so to compensate we have to create a one way break out and graded pass like this:
A 4 way express route merges onto a one way 2 track interchange.
It would be so much simpler if joining a 2 track one way section to a 4 track section, branched both inner and outer off.
Paul