Want to praise Simutrans?
Your feedback is important for us ;D.

Feature amendment request: difference-based diversion limits

Started by Rollmaterial, August 13, 2020, 09:21:43 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.


After reading this post, I came to an idea to better implement limits to diversions. Currently, diversions are limited by absolute length. That means replacing a long enough bridge is, in principle, impossible, and you can easily build a lengthy diversion between two adjacent tiles. I therefore suggest that we use a relative diversion limit: instead of checking the absolute length of the diversion, we compare the length of the original public right of way with that of the diversion and put a limit on that difference.


Any check that does not take future plans into account is detrimental. Too difficult or complex to implement? Then the feature should not exist at all. Something is not always better than nothing - in this case, it has proven much worse.


I guess I don't need to mention that, but I agree with Freddy.
This system has proven to be worse than nothing. Using percentages instead of absolute numbers might solve some issues whilst introducing new ones.

The only system ensuring that players do not make connections in between cities absurdly bad, is a system that has a view on the large scale. Anything that only considers local factors will always cause anomalies here.

One system might be to remember the lengths of the initially generated intercity roads and, whenever adusting one of those, validating, that the best route in between affected cities does not become worse than the initial distance, plus maybe some percent of tolerance.
I am aware that such a system needs more detailled thoughts, will take some time to implement and is a rather low priority thing down the long list.

Don't see this as a feature request or something. It's rather a "we can do something, if we really want to", but I am not sure if it's really THAT important.

In any case, the feature as-is causes more disruption than it can solve.
It was a nice idea but it has proven to be a step to the wrong direction in practice.


Thank you for the suggestion.

The complexity is that there is no easy algorithm for working out what exactly that the diversion length should be a percentage of. Currently, the diversion check is implemented for each individual tile that it is sought to demolish where that tile is a public right of way. Any system that worked differently to this would need an entire user interface and new memory structure to represent all at once planned changes to large quantities of infrastructure all at once. That would be a very major new feature, and require a huge amount of very difficult work to implement.

It would be a splendid thing to have one day a system whereby players can lay plans on the map in a draft mode, then commit the plans and watch them be built over a realistic time. Such a system would no doubt allow for more sophistication and subtlety in the management of diversions of public rights of way. However, without such a system, there is no workable method for implementing Rollmaterial's suggestion.

As to whether the feature is worthwhile at all, the only alternative is allowing players to destroy public rights of way with impunity as used to be the case. This made road transport between towns except on entirely private roads unworkable. Feahk's suggestion of remembering the initial distance is an interesting one, but would be likely to be extremely complex to implement, and I cannot think of any way of doing this without excessive memory usage.

In any event, I have modified the setting for the maximum number of diversionary tiles in the pakset from 18 to 24 to alleviate some of the difficulties that people have been reporting with this feature.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.