In my network I have trains which livelock (that is, they wait on the main line until the destination station is free). Trains _could_ path around the livelocked train but refuse to because of the following rule:
Code: Select all
When the path includes a train stop that is not the destination -> Add a penalty of 2000
After scrutinizing the rules I find a few odd ones:
Code: Select all
When the path includes a train stop that is not the destination -> Add a penalty of 2000.
When the path includes a train stop with a train stopped in it -> Add a penalty of 500.
When the path includes a train that doesn't have a path -> Add a penalty of 1000
Here's my suggested improvements:
1. Reduce the empty station penalty. A penalty of 500 would allow pathing through an empty station to get around: circuit controlled red light, stopped train with no schedule, and train with no path.
2. Increase the stopped train penalty from 0.1/tick to 1/tick. This change along with #1 would allow a train to path through an empty station around a train that has been stopped for ~6 seconds instead of 5-6 minutes currently.
3. Increase the occupied stations penalty. A penalty of 2000 makes sense here as occupied stations should be avoided unless it is the destination. Assuming the penalties for empty & occupied stations are additive this change along with #1 will keep the penalty static (2500).