Before I start coding in respect of some thoughts that I have had in respect of an improved way of handling vehicle obsolescence, I should be interested in people's reactions to those ideas. By way of background, obsolescence is currently defined by a "retire_date" in each vehicle's .dat file. After that date, the vehicle does not appear in the depot window to buy (unless one selects "show obsolete"), and any line with an obsolete vehicle serving it is marked in blue. Ever since the speed bonus has been read from a file, those have been the only two practical effects of obsolescence in the game. A short while ago, I released a
patch for the code that reduced the effect of the speed bonus on local journeys, and also increased the running costs of obsolete vehicles (phased in over time starting from the date of obsolescence and ending with a date specified in simuconf.tab).
However, when
recently working on some .dat files for 'busses for PakBritan, several shortcomings of the current method of obsolescence handing (with or without my patch) sprung to mind. Firstly, no distinction is drawn between the date on which a vehicle stops being produced as new, and the date on which a vehicle's service life expires: very often in reality, a vehicle's useful life extends well beyond the time that production of that vehicle ceases. It can then be difficult deciding which date to use as the retire date in the pak file. Secondly, no account is taken of the actual age of the vehicle: if one buys a brand new vehicle in October 1965, and the vehicle's retirement date is in November 1965, it is treated in just the same way as if one had bought the vehicle new in January 1940. Thirdly, there is no way to refurbish an obsolete vehicle to extend its life: either the vehicle is new or it is obsolete, and that is the end of it. Finally, the consequences of obsolescence did not seem significant enough.
An alternative possibility is this: instead of determining obsolescence by the retire date, set instead in the .dat file a "service life" variable, in years. The vehicle would then become life expired that many years after it was first bought. For example, if a vehicle had an introduction date of January 1950 and a service life of 20 years, it would become life expired in January 1970 whatever the retirement date (i.e., whatever the date on which the manufacturer stopped making it). A player would then be able to "refurbish" the vehicle. That would extend its life by an amount specified in the vehicle's .dat file (a default value of half its service life being specified for vehicles with older .dat files). While the vehicle is still in production (i.e., before the retirement date), it would be able to be refurbished an unlimited number of times. After production of that vehicle ceases, it would be able to be refurbished only once. The cost of refurbishment would be specified in the .dat file, and a value of half the purchase price would be the default for older versions.
To minimise micromanagement, there would be an option to refurbish all vehicles of the same kind at the same time. The vehicle detail window would give, in addition to the date of purchase, the date of life expiry and whether the vehicle is still in production. There would be a "refurbish" and "refurbish all of this type" button in the vehicle details window, with the respective costs of doing so below each.
The concept of a vehicle being obsolete because its production has ceased would be replaced by a concept of the vehicle being life expired. There would be no consequences to running a vehicle that is no longer in production: all the consequences would attach instead to running a life-expired vehicle. The vehicle's .dat file would give the option of specifying modified features (running costs,and gear) for life expired vehicles, to simulate the extra work that might be needed to keep it going, and the extent to which the mechanics can keep a life expired vehicle working as well as a new or refurbished one. Finally, life expired vehicles should, after a certain amount of time (perhaps 1/3rd of their service life again after they become life expired, phased in progressively from the moment of life expiry) be unable to earn any speed bonus (or, with my speed bonus patch applied, any local bonus, either), although they would not necessarily receive a
negative speed "bonus" unless their actual top speed warranted it. The sale price of vehicles should also be affected by whether they are life expired, and, if so, by how much.
This system ought be intuitive and straightforward, and easier to understand than a system that conflates life expiry with cessation of production. It should also give players more interesting decisions to make about whether to refurbish older vehicles or buy new ones, as well as giving players a greater sense of attachment to their vehicle fleet as representing more tangible assets that depreciate over time.