0.16 rework in progress
Now that 0.16 feels like it is starting to stabilize it's time to revise parts of this post, mostly regarding deadlocks. As it seems like the pathfinding changes made in 0.15.27 are going to stick I'm going to change the deadlock ratings as all the builds I've seen so far can be signalled to be safe, as long as long as you don't disable stations/break paths.First out is the updated throughput setup. The new and improved version for 0.16 can be found just above the results.
Regarding the 0.15.27 path-finding changes
With the changes made to the path-finding algorithm in 0.15.27 almost all intersections rated from B to E (inclusive) are safe as long as the player does neither, disable the train station the train is heading to while travelling, nor, destroy/build rails/signals that makes the train's path invalid.However, as there are still some quirks with the current implementation (to be fixed in 0.16), I will wait for those changes to to be made before I make any drastic changes to this post.
Test details
As a part of trying toDeadlock analysis
This is pretty much a worst case analysis, the only thing I assume about the rest of the train system is that the output block is properly sized. Trains are allowed to change path at the worst time, basically I'll do my best to make it break. While this is mostly manual analysis I will provide examples of any deadlock from my tests if I'm able.
Here is how I grade how "deadlockable" an intersection is.
- A - Safe, will not be the source of a deadlock
- B - Can deadlock if more than one train changes path inside the intersection, may resolve itself if output block becomes free
- C - Can deadlock if more than one train changes path inside the intersection, requires player to resolve
- D - Can deadlock if a train changes path in the intersection, may resolve itself if output block becomes free
- E - Can deadlock if a train changes path in the intersection, requires player to resolve
- F - Can deadlock in regular traffic, usually caused by loops that can be saturated
Also note that in reality B pretty much as good as A. Any problems will be very rare (unless you're super unlucky with your rail system design) and are likely to resolve themselves pretty quickly. C is very close behind as problems are still exceedingly rare, they may require the player to step in though.
Throughput testing
For throughput testing I've written a mod to spawn in trains as needed to ensure a good enough saturation of all input lanes (about 29.35 trains per minute for each input lane, which should be full saturation as the trains can't travel closer to each other). The trains have a randomized destination to make them go straight or turn left/right, the probability of each direction can be controlled by assigning different direction different weights. Each test consists of one run of each set:
Set 1:
Left: 33.3%
Right: 33.3%
Straight: 33.3%
Set 2 (for left hand drive)
Left: 35%
Right: 15%
Straight: 50%
Set 2 (for right hand drive)
Left: 15%
Right: 35%
Straight: 50%
Set 1 is equal probability. Set 2 is to simulate a more "realistic" usage situation where the player has planned the routes a bit.
All tests are done using fully upgraded 2-4 trains running on rocket fuel.
I let it run for 15 min while counting how many trains exit the intersection. When the time is up I calculate the average throughput in trains/min. Note that this is not too exact and small measured differences between intersections may not really mean that much.
For intersections that require lane changers I'm using these that are designed by Tallinu. (Note that I only have 4-lane versions so if your 6-/8-lane design needs lane changers you need to design them yourself)
Notes
If there is a design you want me to test that is not already covered just give me a blueprint string of your intersection. I'm always looking for
Thought of a good test to add, let me know and I'll see if I can make it work.
Are you the creator of any of the designs here? Most of these are intersections I've tested for various threads so just shoot me a link to the original post and I'll add some credits.
This message is sponsored by Creative mode, /u/RattlemBones train counter(0.15 blueprint string), (self plugging intensifies) Screenshot camera and, (it's getting even worse) Automatic train deployment
Some good resources on signalling and deadlocks.
Try it for yourself
If you want to try things out for yourself take a look at the attached save below. For usage instructions see the thread for the mod or the thread linked below.
Results
Grouped by deadlock rating and roughly sorted by throughput. Names are basically just some bullshit to keep them apart. To see the full images (rendered at 0.5 zoom) just open them in a new tab.Deadlock examples can be found here
A
A
A
Nothing here yet.
F