Playing Factorio took me down the deepest of rabbit holes to understand railway signals. One of the most difficult situations to deal with is deadlock, where one train blocks another train, which blocks yet another train until the network is jammed. While there are design heuristics to avoid deadlock, I never found a formal way to verify deadlock avoidance. This in turn led me down a sub rabbit-hole about envisioning a language to specify a train network layout that could provide guarantees about deadlock.
Since IRL railways don't seem to deadlock as much as my in-game networks, I'm assuming railway designers have figured out a way to handle them that I haven't been able to replicate.
If anyone has experience in this field, I'd love to learn more. Oh, and if you're planning to play Factorio, you should probably block off your calendar for a couple weeks. It's notoriously addicting, especially for process-orientated engineering type folks.
If you want to do railway, try OpenTTD. The real railway networks are not safe from deadlocks. But they use planned schedules, which significantly reduce chances. These are available in OpenTTD.
Since IRL railways don't seem to deadlock as much as my in-game networks, I'm assuming railway designers have figured out a way to handle them that I haven't been able to replicate.
If anyone has experience in this field, I'd love to learn more. Oh, and if you're planning to play Factorio, you should probably block off your calendar for a couple weeks. It's notoriously addicting, especially for process-orientated engineering type folks.