It was suggested by me 4 years ago, that it was unfair for short trains to have the same running cost as that of a long train, when both are using the same engine model.
Download latest version (v6) here -> viewtopic.php?f=33&t=75982#p1193241
v6:
- increased the divisor range values from 0-64 to 0-255 to regain the granular fine-tunning which was lost with v5.
- reverted the formula back to v4 version, while still maintaining the desired effect of v5 for whenever the value is left as Auto, which is 2 times the value of max_train_length.
v4 formula:
final_cost = cost_at_this_point + cost_at_this_point * length_of_parts_without_cost^2 / divisor
'cost_at_this_point' is the sum of running costs of the parts of the train that specify a running cost.
'length_of_parts_without_cost' is the sum of the length of the parts of the train that do not specify a running cost.
'divisor' as a user defined value.
'final_cost' is the running cost of the entire train.
v5:
- modified the formula slightly so that the default values are not so penalizing for very long trains which could make two trains with less wagons to be way too profitable than one train with the same number of wagons as those two trains together.
- moved the settings from under 'Vehicles' group to 'Accounting' group.
- now also refreshes train details/information tab window when the values of max_train_length are also altered.
v5 formula:
final_cost = cost_at_this_point + cost_at_this_point * length_of_parts_without_cost^2 / (2 * divisor)
'cost_at_this_point' is the sum of running costs of the parts of the train that specify a running cost.
'length_of_parts_without_cost' is the sum of the length of the parts of the train that do not specify a running cost.
'divisor' as a user defined value.
'final_cost' is the running cost of the entire train.
v4:
- modified the formula so that the cost grows exponentially:
v4 formula:
final_cost = cost_at_this_point + cost_at_this_point * length_of_parts_without_cost^2 / divisor
'cost_at_this_point' is the sum of running costs of the parts of the train that specify a running cost.
'length_of_parts_without_cost' is the sum of the length of the parts of the train that do not specify a running cost.
'divisor' as a user defined value.
'final_cost' is the running cost of the entire train.
v3:
- updated savegame version to resolve a conflict while patching against trunk r27778 and above.
v2:
1) Adds two game settings:
- an advanced setting for enabling or disabling this feature. Defaults to enabled.
- an expert setting for fine tunning this feature, with a divisor.
2) Savegame conversion for the two settings:
- treats it as disabled when loading from savegames without this feature.
- sets the divisor to auto when loading from savegames without this feature.
- stores the values regarding these two settings when loading from savegames generated by a build of this patch.
3) Displays running cost on the train detail information tab window, per part of the consist, for engines and wagons.
I believe my work is finalized with the release of v2. Though it fails to address the balancing issue at hand, I still like the added functionality it provides. It kept me motivated to finish this.
The formula is still very much the same as that of v1, but with the possibility to set a user defined variable, which I called of 'divisor'.
The divisor can be left at Auto, or a value from 1 to 64. When on Auto, it gets the value from max_train_length setting, which is the behaviour of v1.
A low divisor will increase the running cost, and a high divisor will lower the running cost.
v2 formula:
final_cost = cost_at_this_point + cost_at_this_point * length_of_parts_without_cost / (2 * divisor);
'cost_at_this_point' is the sum of running costs of the parts of the train that specify a running cost.
'length_of_parts_without_cost' is the sum of the length of the parts of the train that do not specify a running cost.
'divisor' as a user defined value, described above.
'final_cost' is the running cost of the entire train.
Screenshot valid for v3, v2: older versions (v2, v1)
- [+] Spoiler v1: