been lurking for a while (some years), thought I 'd have another go at patching openttd, just 'cause .
One of the features I had been missing when I was playing (still do, although very rarely) was the ability to scale the rate at which game years pass. Commonly known as daylength. While many discussions and patches have tried to address this (too bored now to find all the old discussion threads), at the end of it all it boils down to two motivations:
- Game years fly by so fast (so much like real years - goodbye 2017 ). No time to build a steam empire, especially in larger maps player cannot connect all towns before game becomes futuristic
- Would like station rating to decay slower, towns/industries to produce less (esp with cargodist on), so that I can really connect tiny towns with buses/smal DMU/EMU on single rail without suffering in station rating.
The advantage of this method is that it does not touch any game mechanics and should work fine with all GRFs and in combination with other patches (both not tested). It recycles the code used for when the game reaches the hard-coded maximum year 5000, when it simple wraps around forever. It is possible to combine this patch with a solution for the second motivation above, either a Station/Town/Vehicle GRF combo that reduces production and makes station rating much less sensitive to days_since_last_pickup, or a separate patch, if needed.
The setting can be changed within a game, so you can slow down during historical periods of your interest and still speed up again when your network has been laid out and you do not want to wait forever till new engines become available.
Obviously, N repetitions corresponds to a "daylength factor" of N+1. I.e. 1 repetitions of each year will make the game last twice as long.
Current status: alpha
Setting flags: not saved in savegame, can be changed within game, synced with server (untested)
Known glitches:
- Graphs are not touched. The current game year is correctly shown. Previous repetitions of the current game year appear as previous years.
- Finances window shows current year correctly. Previous repetitions of the same year appear as previous years. Previous repetitions of the first game year are not shown at all, only current repetition.
- Stuff like age of vehicles proceeds normally, that is, setting 3 repetitions per year means that a train bought in 01.01.1930 (original game year) will be 8 years old come 01.01.1932 (since 1930 and 1931 will each have run 4 times). This is actually wanted, me thinks.
- Of course, servicing the industries/towns for a longer time causes production/size growth. This can lead to a situation where the amount of produced cargo exceeds the capacities offered by vehicles available in that (game) time frame. Amend this using vehicle/industry sets that offer larger capacities.
- Do I need to say it? Inflation OFF!
- Have not tested this, but do not know what happens if an engine becomes available within the year and then that year repeats, or how engine reliability curve is affected. Probably it works as expected, but not tested.
I have also considered implementing the patch as a cheat, i.e. only make it possible to set the number of repetitions via the Cheat GUI. In essence, the patch is equivalent to calling the "set date" cheat automatically each New Years!
I have not submitted the patch for trunk inclusion (obviously), but only to stir discussion and perhaps more development in this area. I would like to hear thoughts and ideas