Calling all code developers!
The Railway Operation Simulator is an open-source project which means that there is public access to the source code.
Railway program development up to August 2017 has used the Borland C++ Builder 4 compiler, released in 1999 and incredibly still working. Borland was taken over by Embarcadero Technologies in 2008, and they continued developing the product, the latest version being 10.2 released in March 2017. I downloaded the new compiler some time ago and updated the original source files so that they compile with the new version. It took a while because as you can imagine there have been many changes between 1999 and 2017. The main difference is that the new compiler relies on Unicode, which is a text coding system that can code any character in any language. There were quite a few changes needed in the original files to ensure compatibility, but I was very pleased that there weren’t more. Embarcadero have done a very good job of allowing for backward compatibility. I feared that the later version would be so different that the original files would need to be largely rewritten, but happily that wasn’t the case.
The first program version using this compiler was v2.0.0 Beta, Beta because although a lot of testing was done I feared there would be some remaining errors because of the new compiler but happily that hasn’t been the case. One thing to be aware of though is that the program is (and always has been) based on images that are restricted to 256 colours, so depending on the operating system in use the display might not appear correct. In this case right click on the program icon, select Properties then Compatibility, and tick the box for 256 colours.
The latest source files are available at https://github.com/AlbertBall/railway-dot-exe/ for read-only access. ‘DeveloperGuide.pdf’ in the ‘master’ folder provides a summary of program history, structure, operation and interfaces, and also explains the file structure.
Anyone wishing to contribute to further development should create a GitHub account then contact me via this website with evidence of proficiency and I’ll provide write access to the files. Version control is provided by ‘Git’, so anyone wishing to contribute needs to be familiar with this system – plenty of information is available on the web and it’s not difficult to learn the basics.
The latest C++ Builder compiler (Version 10.2) is now available as a FREE starter edition, available at the link below. If there is the slightest possibility that you might wish to develop the program further or even just experiment with it sometime in the future then I urge you to download the free compiler as soon as possible because it might well not be available indefinitely.
Although the program is fully usable now, there remains great potential for further development. Some ideas include:
- automatic route setting;
- option to use & display imperial units as well as metric units;
- ability to record and replay sessions;
- addition of automatic signal routes over level crossings, with train-triggered crossing opening
- multi-player operation over the internet;
- signalbox mode where individual signals and points are operated directly, perhaps via a graphical lever frame, with user-defined interlocking;
- sound effects, e.g. enter a track ID & hear trains & station announcements at that location;
- random failures of trains, signals & points etc, and random delay times at stations;
- incorporation of user-defined graphics;
- variable train lengths;
- restricted routes – e.g. DC 3 & 4 rail, 25kV AC, tube lines and so on;
- etc. etc.
So… there’s plenty still to do… what are you waiting for?