You might have noticed that a lot of rail related stuff was broken during these past releases, and now it is working more or less fine again. The story behind it is not so trivial.
Rail signal logic
The rail signal logic for automated trains is quite straightforward:
As a train moves forward, it tries to reserve signals in front of it. If it can reserve a signal, the whole block guarded by the signal gets reserved for the train. If the train can't reserve the signal, as the block is reserved or occupied by different train(s), it stops in front of the signal and waits. Once the train passes a signal and enters a new block, it removes the reservation on the signal and block it had reserved. Once it exits the block, the block can be reserved and entered by other trains.
This looks nice and simple, nothing fundamentally wrong could happen with this logic right? Especially since we have it there for almost five years and it all just works right?...
Read more