Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

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

[Bug]: Wrecks of vehicles left at level crossings cause an avalanche of further accidents #10310

Closed
LC-Zorg opened this issue Jan 3, 2023 · 12 comments
Labels
enhancement Issue would be a good enhancement; we accept Pull Requests! good first issue Good for newcomers

Comments

@LC-Zorg
Copy link

LC-Zorg commented Jan 3, 2023

Version of OpenTTD

13.0-RC1

Expected result

Two of the possibilities:

  1. Wrecks become ghosts that other vehicles can pass through
  2. If there is a wreck on the tracks, the crossing is closing

Actual result

This is a problem that existed before, but has now been significantly strengthened.
If there is an accident on a multi-track crossing, a vehicle wreck left in the middle of the crossing will block it. Other vehicles will enter the crossing, but will not be able to leave it, because they will not be able to avoid the wreck.

11th January - after the accident on 1st January, vehicles got stuck on the crossing, which will cause another accident
Zrzut ekranu 2023-01-03 012712

18th - another train is on its way, vehicles still cannot leave the crossing, another accident is about to occur
Zrzut ekranu 2023-01-03 012857

19th - vehicles can't avoid the wreck, but can enter the train: all 4 vehicles one after the other enter the train + one from the opposite direction.
Zrzut ekranu 2023-01-03 012925

Steps to reproduce

  1. Open the save I posted earlier Level Crossing Crash Spam STD, 2010-01-01.zip
  2. Pay attention to the nearest four-track crossing (coordinates: 740x120)
  3. Note that probably all accidents could have been avoided if the vehicles could have drive through the wrecks and left the crossing. Closing the driveway until the wrecks are gone would also prevent most accidents, although long waits can be irritating for players.
@2TallTyler 2TallTyler added good first issue Good for newcomers enhancement Issue would be a good enhancement; we accept Pull Requests! labels Jan 3, 2023
@PikkaBird
Copy link

I can only assume this is as CS intended, as there's no other reason for RVs to get hung up on the crashed vehicle unless you want this cascading crash behaviour.

That said, I am +1 to just letting road vehicles drive through (around?) crashes.

@2TallTyler
Copy link
Member

The main difference from TTO/TTD is that multitrack crossings are now safer and more likely to be used by players. I am also +1 to letting road vehicles pass crashes, or maybe even just turn around.

@nielsmh
Copy link
Contributor

nielsmh commented Jan 3, 2023

Crashes are a problem that the player needs to actively handle. When a road vehicle is crashed at a level crossing it's up to the player to mitigate the danger by for example ordering other vehicles to stop, to not cause further danger from the wreck blocking the crossing.

I would be more for making trains also break down after colliding with a road vehicle, to ensure that the track remains blocked for a while. That would also keep the crossing occupied preventing any further road vehicles from entering it.

@2TallTyler
Copy link
Member

JGRPP makes trains break down after hitting a road vehicle, would be easy to upstream: JGRennison/OpenTTD-patches@350c2bb

@JGRennison
Copy link
Contributor

Crashes are a problem that the player needs to actively handle. When a road vehicle is crashed at a level crossing it's up to the player to mitigate the danger by for example ordering other vehicles to stop, to not cause further danger from the wreck blocking the crossing.

This is mainly a problem in multiplayer where there isn't a singular player always online to immediately resolve issues, which are often caused by other players.
It is not unreasonable to expect road vehicles and level crossings to have some sort of sensible behaviour following an incident.

@nielsmh
Copy link
Contributor

nielsmh commented Jan 3, 2023

Having the colliding train break down should solve the problem in multiplayer, I reckon. It makes it undesirable for other players to build level crossings over your road vehicle routes, because their own trains would be breaking down and damaging the finances of their route as well, and makes griefer circle-trains much less efficient.
It would enable a level of griefing of someone's rail network by building level crossings and parking road vehicles on it, but that requires constant action by the player, and constant "feeding" new road vehicles, making that also unattractive.

@ldpl
Copy link
Contributor

ldpl commented Jan 3, 2023

Quite often griefing is a constant action with no regard for financial costs. Once players get bored or feel offended they stop playing and start griefing.

@nielsmh
Copy link
Contributor

nielsmh commented Jan 3, 2023

I don't like the idea of making road vehicle wrecks into ghosts, but would like to propose a game setting:

"Train/road vehicle collision behaviour"

  • Trains do not collide with road vehicles (disable crashes entirely)
  • Train continues, road remains passable (wreck becomes a ghost)
  • Train continues, road is blocked for a while by the road vehicle wreck (original behaviour)
  • Train breaks down, road is blocked for a while by the road vehicle wreck

Disabling crashes entirely might honestly be the best technical workaround to this method of griefing. Making trains break down as well is a good solution in single-player or trusted multiplayer games since it gives an incentive to build safe systems and gives a chance to mitigate disaster when it does strike.

@NyanGoat
Copy link

NyanGoat commented Jan 3, 2023

Just throwing some random ideas out there.

  1. If there is a crash, make the connected rail signals red to stop approaching trains from crashing through any remaining stuck vehicles?
    -- Might not be feasible depending on how far away the signal before crossing is, but not sure if it would be possible to fake the logic with some if crashed vehicle on road = red signal?

  2. If there is a crash, make road vehicles turn around and leave the crossing, instead of staying stuck on the crossing.
    -- Might lead to long rerouting of vehicles, but might be better than losing multiple vehicles.

  3. Add a life counter to trains, so that if they crash x amount of times, the train also is destroyed.
    -- Could be useful for anti-griefing I guess, and also incentive to make safer crossings, use tunnels or bridges if you as a player get repeatedly destroyed trains from a crossing.

@FLHerne
Copy link
Contributor

FLHerne commented Jan 3, 2023

I'm writing a patch to prevent road vehicles entering a crossing if it's blocked by a crashed vehicle; possibly also stopped or queueing ones.

That seems like what real drivers would do, and less "cheat"-like than driving straight through them.

@krysclarke
Copy link
Contributor

+1 for emulating what happens in real life: train comes to stop and doesn't move for some time after a collision with a road vehicle.
+1 for increasing a road vehicle's 'look ahead' functionality (if such already exists, and creating if it doesn't) to stop it from entering a multi-track crossing if there's insufficient room available for it to get clear through the other side (note: if there are vehicles already in the multi-track crossing, the 'look ahead' ignores them, which DOES emulate real life a LOT).

@LC-Zorg
Copy link
Author

LC-Zorg commented Jan 8, 2023

Stopping the train after collision (--/+)
It's an interesting and even increasing realism solution, but it won't solve the reported problem. One train will stop and the others will massacre vehicles stuck on the crossing. It's also a terrible solution for multiplayer games. This will allow other malicious players to block train traffic.

After collision stopping trains also on other tracks (--)
This would solve the first of the aforementioned above problems, but at the same time it would increase the second one even more. This behavior is every troll's dream. Perfect for ruining the fun for others - one vehicle is enough to block traffic on all tracks. I think even in singleplayer games this would get tiresome for most players pretty quickly.

Stopping trains when there is a vehicle on the crossing (--)
I've written about it before (#9931 (comment)). For multiplayer games this would be almost as bad as stopping trains after a collision. Less effective, but still a good way to block other players train traffic. Also the realism of such behavior is debatable.

Turning vehicles on level crossings (---)
In the real world, it's simply forbidden and punishable (sometimes by death), and videos of such stunts usually have titles like "Idiots on the Road". After all, turning back can mean returning to the beginning of a very long road. Bad idea.

Train is destroyed in an accident / after several accidents (NyanGoat) (--/+)
Perhaps adding not so much a collision counter as adding the probability of it happening could be quite interesting, but this is still a solution that is not suitable for online games and can cause even more frustration in games solo.

Closing the crossing when it is impassable (FLHerne) (+)
So not only when there is a wreck on it, but also when a vehicle is stuck on the crossing. That would be both realistic and good for gameplay though it can be annoying at times. I don't know if it can work like that, but the crossing could be closed when the vehicle speed on it is 0 or less than 5 (just starting to leave the crossing).

Disable accidents on the level crossing (Eddie, nielmsh) (+/-)
As an option, it would probably be the best solution for some players. Potentially good for multiplayer games as well. However, the downside of such a solution would be some sterilization of the gameplay. Excessive stress is never good, but completely eliminating bad emotions is also not good, because you will never have a reference point to feel better. It wouldn't be a bad as an option, but as the only option it would be sad and not improving anything when the player wants the game to have some realism but only to be free of silly situations.

Driving through wrecks
I looked into it and it seems that vehicles almost always drive through wrecks after all. However, there are situations when they get stuck. It's hard to say what it depends on. This usually happens when there is more than one wreck in one place, but this is not always the case.

The same level crossing (17.02.2010), the same vehicles, the same train, five different behaviors depending on what is happening on the first track.

  1. The train on the first track stopped - one vehicle ran into the train, the rest got stuck behind the wreck
    z1
  2. The train on the first track turned back, I removed the track signal to another track signal - two vehicles goes crashed
    z3
  3. The train on the first track has hit one of the vehicles - all vehicles have hit the train, the same will happen if I remove the track before the crossing or if I reverse the train behind the signal
    z2
  4. The train on the first track turned back, I removed the track signal to the block signal - the vehicles did not move
    z4
  5. One of the first attempts, I don't know how it happened - the vehicles moved, but stopped in front of the wreck
    z5
  6. A common sight - vehicles one after another pass through the wrecks
    zx6

Stop the vehicle in front of the train
Maybe it can be done so that vehicles that are already on the crossing do not run into a moving or even a stopped train? This would eliminate the worst of the current behaviour.

Adding a setting with several possible behaviors (+/-)
I generally like this approach. Although it's not my style of play, I think that both the option to disable accidents and the one that increases realism, i.e. adding a train failure during a collision, would be useful. I'm not sure if keeping the original behavior makes sense. After adding the function of closing adjacent level crossings, it just doesn't work well anymore. Unless that option would also preserve the original behavior of the level crossings.

In summary, what I think makes the most sense:

  • preventing the vehicle from entering the track on which the train is located
  • enabling driving through wrecks at level crossings always and without exceptions
  • closing crossings when there is a wreck or a stopped vehicle on them
  • adding setting with disable accidents on crossings
  • adding setting where trains breakdown or even get destroyed when colliding.

@OpenTTD OpenTTD locked and limited conversation to collaborators Jan 9, 2024
@2TallTyler 2TallTyler converted this issue into discussion #11726 Jan 9, 2024

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
enhancement Issue would be a good enhancement; we accept Pull Requests! good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

9 participants