About Curve Lengths

Every game we have the same discussion about what Curve Length (CL) to use to allow trains to maintain their maximum speed while still keeping corners as tight as possible. After some experimenting and looking through the source code I came up with some formula that can be used to determine the minimum CL. The graph below shows the maximum speeds for different railtype, further in the article I will explain where these values come from.


Unlike what seems te be the case there are only two variables which make up the maximum speed of a train to pass through a curve: Curve Length and Railtype. The train’s maximum speed and TL are irrelevant. A single 45 degree turn doesn’t slow a train down unless followed by a second one before the entire train has passed the first. The formula for calculating a normal rail curve’s maximum speed is as follows:

Max. Speed in km/h = 232 – (13-CL)^2

Interesting fact is that the source code considers what we call a half diagonal tile as an entire tile. We would call the leftmost picture a CL5 (or 4.5) curve and the upper a CL9 curve, while they’re both considered 9 tile curves by the formula, meaning they allow for the same maximim speed. So when using the formula you should count the half tiles as full tiles. As shown in the picture below.


Different rail types use the same formula but get the following bonus compared to normal rail:

Electrified rail: no bonus
Monorail: +50% bonus
Maglev: +100% bonus

On top of that, some trainsets have tilting trains, which get another 20% bonus.

4 comments so far

  1. davil May 14, 2009 06:15

    That’s a very valuable information! So let’s forget about half the trainlength and stuff and remember to make any fast curves at least 13 tiles long (of course only if the train is that long).
    For cargo trains that usually go below 160km/h the value is 5 tiles, no matter how long the train is. It also means that for slow trains in the early 1950s 1 or 2 tiles are enough. This makes building cheap money makers even easier 🙂

    I think this should definitely make it into a wiki entry (both here and at openttd.org, e.g. in the game mechanics section), together with a small table stating the recommended minimum tiles for typical train types.

    Thanks for your investigation!

  2. dihedral May 14, 2009 10:04

    very nice post indeed – good work Mark – also like your illustration there 😉

  3. Hirundo May 14, 2009 13:40

    Excellent post, this information clarifies a lot. I have been digging further into the code regarding the following:

    “Interesting fact is that the source code considers what we call a half diagonal tile as an entire tile.”

    According to my interpretation of the code, it doesn’t use tiles as a unit in any way. Instead, it uses the number of vehicles between a curve as unit of measurement. So, trains with shorter wagons should be able to navigate corners faster. It may be worth the effort to do some testing in this regard.

  4. Mucht May 18, 2009 19:41

    Great post! Thanks for the info!

Leave a comment

Please be polite and on topic. Your email-address will never be published.