The International Simutrans Forum

 

Author Topic: cornering exploit  (Read 1030 times)

0 Members and 1 Guest are viewing this topic.

Offline ӔO

  • Devotees (Inactive)
  • *
  • Posts: 2345
  • Hopefully helpful
  • Languages: en, jp
cornering exploit
« on: August 25, 2013, 11:04:12 AM »
Currently it is possible to exploit corners by using faster track only at that location.
I think it may be better to calculate corners based on radius, rather than a proportion of the underlying track.
http://en.wikipedia.org/wiki/Minimum_railway_curve_radius

Corners are normally calculated by their radius from a virtual center and it should be possible to do this in simutrans as well, even if they are not 'smooth' corners.

If the straight tiles from the corner are counted until they hit another corner, the radius, or smoothness of these corners can be calculated and from there the speed limit of the curve can be calculated.

To give a sort of Radius (R) scale.
R1 = 90 degree bend
R2 = 45 degree bend with at least 1 straight tile in each direction
~
R10 = 45 degree bend with at least 10 straight tiles in each direction


Some caveats I can think of are from where does the program calculate the curve on a junction or switch with multiple points of entry, or how to handle S-bends that cause the train to snake.

Offline Junna

  • Devotee
  • *
  • Posts: 1081
Re: cornering exploit
« Reply #1 on: August 25, 2013, 11:47:40 AM »
As James explained, the higher quality track having a higher limit is because of the  games limited ability to handle gradual curvature (since there are only 45 degree corners), so... It already considers things like distance from last turn as it is.

Offline jamespetts gb

  • Simutrans-Extended project coordinator
  • Moderator
  • *
  • Posts: 18425
  • Cake baker
    • Bridgewater-Brunel
  • Languages: EN
Re: cornering exploit
« Reply #2 on: August 25, 2013, 12:02:59 PM »
Yes, it does indeed already consider the distance from the last turn (up to a point, depending on how far away that the last turn was). The speed limit is calculated for each convoy's route, based on that convoy's own last turns, so the issues described relating to how to deal with switches/junctions do not arise.

However, we do need to do something about the upgrading tracks on corners exploit, and the best thing to do is to abolish the system of having the corner speed limit for the lowest severity of bends being based on the track speed limit. What it would be useful to have is some real life data on the speed limits of various corners so that I can set this up to be realistic.

Another difficult question is how we deal with superelevation, and especially how we can do that without re-introducing the cornering exploit.