Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dedicated turning lane priority #565

Open
originalfoo opened this issue Nov 23, 2019 · 6 comments
Open

Dedicated turning lane priority #565

originalfoo opened this issue Nov 23, 2019 · 6 comments
Labels
feature A new distinct feature JUNCTION RESTRICTIONS Feature: Junction restrictions LANE ROUTING Feature: Lane arrows / connectors PRIORITY SIGNS Feature: Stop / Yield / Priority signs

Comments

@originalfoo
Copy link
Member

originalfoo commented Nov 23, 2019

Let's say some lunatic was having a discussion about roundabouts in TMPE discord and as a result decided to go full mental on a roundabout. I have no idea who would do such a thing, but let's say they started concocting something like this:

image

It features a dedicated lane allowing traffic from the road at the bottom to reach the road at the left (LHT driving clockwise around roundabout) without having to worry about other traffic on the roundabout (zero conflict points). It's essentially a 'virtual' bypass/slip road. So let's call it a "slip lane".

image

(Note: Image above is RHT, driving anti-clockwise).

The issue this lunatic would experience is that traffic entering the roundabout should yield as usual... unless it's using the slip lane.

So what this lunatic would desire is a priority signs equivalent of "turn on red", only in this case it would be "priority on slip lane". It would also allow that lane to "enter blocked junction" regardless of junction restrictions setting.

@originalfoo originalfoo added feature A new distinct feature JUNCTION RESTRICTIONS Feature: Junction restrictions LANE ROUTING Feature: Lane arrows / connectors PRIORITY SIGNS Feature: Stop / Yield / Priority signs labels Nov 23, 2019
@kianzarrin
Copy link
Collaborator

Based on my experience, the Yield sign does not influence the slip lane at all so long as cars coming from other directions do not enter the slip lane. So all he needs to do is to use the lane connector tool.

Slip lanes are useful both on junctions and roundabouts particularly considering that the game limitations makes it hard to build small real world slip lanes.

so maybe we can have a slip lane feature. can we modify the parking tool to turn the parking lane into slip lane?

@originalfoo
Copy link
Member Author

I was seeing vehicles pause before entering roundabout with just the yield sign (I'll need to do some more testing to be sure it was just that). In the end I had to allow the entering road to 'enter blocked junction' to remove that pause. Not currently in game but will take do some more testing this evening.

so maybe we can have a slip lane feature. can we modify the parking tool to turn the parking lane into slip lane?

Yes, there's a huge array of things we could do in that respect - see: #515 - I would really love that kind of feature, it would take road customisation to a whole new level. But it would likely be a lot of work to implement robust architecture that can be shared amongst different tools.

@kianzarrin
Copy link
Collaborator

kianzarrin commented Nov 23, 2019

from discrod chat:

In #539 I do all this with one click.

In my opinion using lane connector for roundabout is counter-productive. I will use this approach:
3 lane road for roundabouts, 6 lanes roads connected to roundabouts
1 Dedicated turning lane and all the rest of the lanes go straight.
Go through blocked junctions while in the roundabout
Yield entering the roundabout.
stay in lane in the roundabout.
stay in lane on nodes close to the roundabout (particularly if you build your roundabout with roundabout builder mod).
No zebra crossings anywhere (build pedestrian overpasses.
Screenshot (98)
Screenshot (97)
These are the tactics I learnt from biffa.
I am working on a mass edit feature that does all of this with one click. I am just waiting for code review to finish.
Its very important that the number of lanes on the roundabout equals number of lanes entering the roundabout. This way cars choose their lane before entering the roundabout. each lane corresponds to a different exit. On each exit the cars may switch one lane to the right to approach appropriate exit.

I suspect it might be slightly more nuanced than this, and that there are some shortfalls with the current pathfinder (as it has no way of knowing something is a roundabout). I need to do some more testing to gather my thoughts, but the hot take is this: Roads connecting to roundabout should have same or fewer lanes than the roundabout (so a 3 lane roundabout would work best if roads connecting to it have 3+3 lanes or less). The issue with the pathfinder is that if the connecting road has fewer lanes than roundabout, the innermost lane(s) of the roundabout won't get utilised properly.

Well I have done a lot of tests with roundabouts. I don't care about the exit lanes. just the entry lanes. If the roundabout is setup like the picture I put (3 lanes no lane switching, 3 lanes entry, 1 dedicated exit arrow) then each entry lane WILL correspond to each exit road. This is because cars prefer to only move one lane to the right at each exit.

The issue with the pathfinder is that if the connecting road has fewer lanes than roundabout, the innermost lane(s) of the roundabout won't get utilized properly.
In my experience they will get uitilised so long as A)lane switching is banned and B)there is 1 dedicated exit arrow per exit road. But there is another problem: for example if 2 lanes are entering a 3 lane roundabout then:

  • the left lane (LHT) will connect to the two inner lanes of the roundabout
  • the right lane will connect to the outer lane of the roundabout.
    Considering that the inner lanes are harder to get to (Because of the incoming cars) I prefer this:
  • the left lane (LHT) to connect to the innermost lane of the roundabout
  • the right lane to connect to the 2 outer lanes of the roundabout.
    So I end up to use lane connector to do this.

@kvakvs
Copy link
Collaborator

kvakvs commented Nov 24, 2019

In your example above, how would a car cross the roundabout and continue straight?
You're forcing them to change lanes on the right junction, that's a terrible location to change lanes.
If you lock lanes on that junction too, there's pretty much no way to continue straight.

@kianzarrin
Copy link
Collaborator

kianzarrin commented Nov 24, 2019

@kvakvs

You're forcing them to change lanes on the right junction, that's a terrible location to change lanes.

I think that's the best place to "change lane" and that depends on how you define "change lane". one way to look at is that going from the middle lane to the outer lane at the right junction counts as going straight CONSIDERING there is a DEDICATED RIGHT TURN. This way cars in the roundabout will not get in the way of each other.

Not only in the roundabout but at any other junction where there is a dedicated right turn, all cars will go one lane to the right as they cross the junction.

In the picture bellow I have used lane connector to show to you how cars will move
Screenshot (102)

In the animated picture bellow I prove that concept that if there is a dedicated turning lane then: switching one lane to the right from our point of view is going straight from AI's point of view
E8s03GuTD6

@originalfoo
Copy link
Member Author

I do similar to what @kianzarrin does on roundabouts.

If one lane of traffic leaves, it's great time to have other traffic move in to that lane.

Also, as traffic entering roundabout is (should be) set to yield, they won't interfere with the vehicles changing lanes at the junction.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature A new distinct feature JUNCTION RESTRICTIONS Feature: Junction restrictions LANE ROUTING Feature: Lane arrows / connectors PRIORITY SIGNS Feature: Stop / Yield / Priority signs
Projects
None yet
Development

No branches or pull requests

3 participants