How to fix "Delivery payment rates" calc. - avoid very long railways

Got an idea for OpenTTD? Post it here!

Moderator: OpenTTD Developers

Post Reply
User avatar
luk3Z
Traffic Manager
Traffic Manager
Posts: 197
Joined: 25 Dec 2005 17:42
Location: Kielce, Poland (Mars sometimes)

How to fix "Delivery payment rates" calc. - avoid very long railways

Post by luk3Z »

https://wiki.openttd.org/en/Manual/Game ... ment-rates

Delivery payment rates:

Initial cargo payment (pounds):

Mail £55
Oil £54

Examples (no inflation, TTD default calculation – little stupid):
1A. Deliver 200,000 liters of oil 20 squares in 10~25 days:
2 * £54 * 20 squares * 100% = £2160

1B. Deliver 200,000 liters of oil 20 squares in 100 days:
2 * £54 * 20 squares * (1 – 0.75*0.4) = £1512

2A. Deliver 200,000 liters of oil 100 squares in 10~25 days:
2 * £54 * 100 squares * 100% = £10800

2B. Deliver 200,000 liters of oil 100 squares in 100 days:
2 * £54 * 100 squares * (1 – 0.75*0.4) = £7560

3A. Deliver 100 bags of mail 50 squares in 10 days:
£55 * 50 squares * 100% = £2750

3B. Deliver 100 bags of mail 50 squares in 100 days:
£55 * 50 squares * (1 - 0.80*0.4 - 0.10*0.4) = £1760

4A. Deliver 100 bags of mail 100 squares in 10 days:
£55 * 100 squares * 100% = £5500

4B. Deliver 100 bags of mail 100 squares in 100 days:
£55 * 100 squares * (1 - 0.80*0.4 - 0.10*0.4) = £3520

but if we add sqrt(distance):

1A'. Deliver 200,000 liters of oil 20 squares in 10~25 days:
2 * £54 * sqrt(20 squares) * 100% = £482

1B'. Deliver 200,000 liters of oil 20 squares in 100 days:
2 * £54 * sqrt(20 squares) * (1 – 0.75*0.4) = £338

2A'. Deliver 200,000 liters of oil 100 squares in 10~25 days:
2 * £54 * sqrt(100 squares) * 100% = £1080

2B'. Deliver 200,000 liters of oil 100 squares in 100 days:
2 * £54 * sqrt(100 squares) * (1 – 0.75*0.4) = £756

3A'. Deliver 100 bags of mail 50 squares in 10 days:
£55 * sqrt(50 squares) * 100% = £388

3B'. Deliver 100 bags of mail 50 squares in 100 days:
£55 * sqrt(50 squares) * (1 - 0.80*0.4 - 0.10*0.4) = £248

4A'. Deliver 100 bags of mail 100 squares in 10 days:
£55 * sqrt(100 squares) * 100% = £550

4B'. Deliver 100 bags of mail 100 squares in 100 days:
£55 * sqrt(100 squares) * (1 - 0.80*0.4 - 0.10*0.4) = £352

Conclusions.
Let's see.
No inflation, TTD default (little stupid) calculation:

1A. Deliver 200,000 liters of oil 20 squares in 10~25 days:
2 * £54 * 20 squares * 100% = £2160

2A. Deliver 200,000 liters of oil 100 squares in 10~25 days:
2 * £54 * 100 squares * 100% = £10800

So, I need very fast train to make almost 5x income on 100 squares (compared to 20 squares) in 10~25 days.
But, if we take into account new calculation:

1A'. Deliver 200,000 liters of oil 20 squares in 10~25 days:
2 * £54 * sqrt(20 squares) * 100% = £482

2A'. Deliver 200,000 liters of oil 100 squares in 10~25 days:
2 * £54 * sqrt(100 squares) * 100% = £1080

I need very fast train to make only 2x income on 100 squares (compared to 20 squares) in 10~25 days.
So, why don't make 2 short railways like 2 x 20 squares (income will be almost the same) ?

As you can see delivery payment rates are much lower now. So, to make delivery payment rates on the similar level 2k-10k we need to add „constant value” as a factor or we can change „Initial cargo payment” (these changes need few experiments of course to find out how it works and what is the result).
Income is much more stable (you don't have to build railways across the whole of the map!).
You now be able to build 2 short (20 squares) railways instead 1 long (100 squares across the whole of the map) to get almost the same income.
Voila, Calculation is fixed.
Find new graphics easier:
GRFCrawler -> http://grfcrawler.tt-forums.net
BaNaNaS -> https://bananas.openttd.org/
32 bit gfx in OTTD (32bpp) -> https://wiki.openttd.org/en/Community/N ... 20graphics
TTDPatch 2.6 -> viewtopic.php?f=19&t=67694
How to subtract tax from income (workaround) -> viewtopic.php?t=89763&start=20
How to ban distance from income -> Simple Cargo Decay Override
Eddi
Tycoon
Tycoon
Posts: 8267
Joined: 17 Jan 2007 00:14

Re: How to fix "Delivery payment rates" calc. - avoid very long railways

Post by Eddi »

luk3Z wrote: 27 Feb 2021 08:32 Voila, Calculation is fixed.
What i read here is a strictly technocratic "solution" to a "problem" with neither any motivation why the "problem" is an actual problem nor any spiritual meaning behind the "solution" (often called "realism")
User avatar
odisseus
Director
Director
Posts: 564
Joined: 01 Nov 2017 21:19

Re: How to fix "Delivery payment rates" calc. - avoid very long railways

Post by odisseus »

The formula you suggest does indeed punish long-distance routes quite harshly. Here are the plots of reward for transporting 100 units of cargo by distance and time: On these plots, X is distance in tiles, and Y is time in days.

However, I don't think it is possible to fix the reward calculation just by tweaking the formula, if by "fixing" you mean making it more realistic. The formula doesn't account for many factors which are important in real life:
  • Minimum and maximum amount each particular consumer can accept;
  • Amount of cargo the consumer already holds in the stockpile;
  • The balance of total supply and total demand for each type of cargo in the world;
  • Price competition between rival transport companies;
  • Fungibility of cargo (oil is fungible, mail is not);
etc.

Admittedly, this change to the formula might encourage building realistic-looking networks (i. e. preferring closer suppliers to more distant ones), but the reasons for this would be not realistic at all.
Post Reply

Return to “OpenTTD Suggestions”

Who is online

Users browsing this forum: No registered users and 18 guests