I have concerns about the future of standardised tsection.dat, and thought I'd raise the issue here so that it can be discussed.
As many will know David Beach, the current 'manager' of the standardized tsection.dat scheme, is standing down and seeking a replacement. Whilst an equally keen replacement may be found, I feel that a better system would benefit all users and reduce the management of standardising track/road systems. There are several issues with the current system that are only going to worsen as more track/road systems are developed.
1) admin overhead
At the moment, developers send a list of shape entries to David and he then enters them into his system and produces a tsection.dat for developers to test, before issuing the official build release. The problem with this is that David needs to keep issuing a new test build each time a new set of shapes arrive - which I can imagine is very tedius - or leave those shapes until the next release. Also, its a bit of a duplication of effort for developers to set up the tsection.dat entries, which David then records and then puts into to the tsection.dat build. Also, each time an error is detected in testing, or new shapes arrive, a new build has to be compiled and tested - which affects all developers involved, who have to repeat their testing again.
2) Release interval
The above issue, and the impact of a large number of new entries, means release intervals are very infrequent. Its not possible for developers to issue new shapes as and when they would like. As a developer, I would like to make new shapes available as soon as I have built and tested them, but this is not possible at the moment. For instance, to issue just a couple of new shapes to get around a problem isn't practical.
3) Build version
When a route needs to be installed, it has to have a minimum build of tsection.dat build or else it will fail. Its easy enough to install a tsection.dat of the right build at installation, but less easy to prevent it overwriting a new version - leading to routes requiring a new version failing. A commercial route on the shelf in a shop could be several months old, so the tsection.dat will be out of date when installed. Not all users will know if the tsection.dat has been overwritten by an older version, leading to all sorts of errors when running MSTS.
4) installation
The main problem with tsection.dat is that each time you install a new build, the list of shapes in RE gets longer and longer. All track/road system shapes have to be listed, but users that don't have them installed have a lot of shapes that they don't need. Whilst tools like RouteRiter can strip out uninstalled shapes, this has to be done after each tsection.dat install. Users find it difficult to know what shapes they can and can't use, unless they happen to know what shapes they have installed. Also, installation of new shapes is not straightforward, as the tsection.dat file needs to be updated separately.
I therefore think a simpler system would make sense that still retains compatibility, but avoids the issues listed above. I've been giving this some thought and have come up with the following simple scheme.
When developers make new track shapes, they also write a small config shape for each new file - eg. shape.dat - which contains the tsection.dat entries for just that shape. These dat files are included with the installation instead of a tsection.dat file. Instead, a simple utility is run after installation which reads in all the .dat files and compiles the tsection.dat, and can then launch MSTS if necessary. The same utility could be run and used to launch MSTS each time, therefore ensuring tsection.dat is always up to date.
The utility would also be used by developers to verify that there are no errors in new entries. This means there is no real need to verify each entry as is currently done by David. So long as developers test new shapes thoroughly, using beta testers, then no serious harm can be done - and any errors that do slip through can be fixed quickly and easily by the developer.
This would dramatically improve the installation of new routes, especially commercial ones, as there is no longer any dependency on build version - the route and track shapes can be installed together, and the utility will update the users tsection.dat if necessary. Only shapes installed are available in the tsection.dat, so users have confidence that they can use all shapes in RE.
The management of track shape/path ID's would have to continue as before, but thats all the manager would have to do - meaning anyone could take on the role easily. The allocation and admin of ID's could be moved online to make them easier to manage and track.
As a developer, the current system does complicate the issuing of new shapes and means I can't quickly issue new shapes that people desperately need.
There is also a real problem if David fails to find a replacement before he departs, or if the replacement gets overwhelmed by the growing number of track shapes. Without some kind of system in place, the future of UKFS and other track systems will be in doubt.


