Ignore all straight nodes when considering lane changes #344
Labels
discussion
Contains debate on certain topics
DLS
Dynamic Lane Selection
feature
A new distinct feature
LANE ROUTING
Feature: Lane arrows / connectors
Description
Afaik the AI is looking 4 nodes ahead, when considering if they should choose a different lane. If cars can't switch back onto their original planned route within those 4 nodes, they won't use an additional lane, even if they could switch back on the next node.
While this is more than enough in the most cases, there are some cases, where this tends to become a problem. Especially on big intersections with multiple nodes (for an example take a closer look on the provided screenshot) it is often helpful to restrict lane changes on the last node before the intersection (1. node), the node leading into the intersection (2. node), the node within the intersection (3. node) and the node where cars leave the intersection (4. node). On the 5th node they can switch again. Altough they are fine to go in 3 lanes over the intersection, they tend to only use one lane.
My usual workaround for this situation is, to enable some of the lane changes in the middle node, so that they are free to switch back on their original route there. Since the AI reconsiders it's decision from earlier at the node, the cars will mostly not switch back. However, this solution isn't elegant and the behavior is probably very confusing for players, who don't know exactly, how the AI works.
An elegant solution would be, to look an traditional node further ahead, if the current node is an all straight node.
Alternatively, a less intuitive solution would be, to add an option to manually set nodes to be ignored.
Another solution could be a look up table for connections between nodes in bigger distances then 4 nodes, maybe even manually in game defined and triggered by cars going over a previous defined node, so that cars now, that if their route goes from A over B they can use lane 1 and 2, regardless of the nodes in between.
Screenshots (Optional)
The text was updated successfully, but these errors were encountered: