Table of Contents
Train/Signalling Simulation Game
Idea
Advtrains is currently a game where you can build railways in a voxel world and drive trains on them. The trains can be manually driven or (much more common) automatically controlled.
There are two genres of games that are traditionally completely separate (except for a paid game called Run8 apparently): Train Simulators and Signalling Simulators. Notably, both of these genres have an outstanding lack of free/open source software and scenarios.
Train simulators
A classical train simulation game focuses on the aspect of driving a train across a detailed and realistically made route. This route is mostly fixed and pre-built by some creative people. The game focuses on the experience of driving a train.
Typical games in this genre are making the controls as realistic as possible and having detailed scenery and good graphics. This is what advtrains currently falls short in:
- Realism of driver controls
- Realism of tracks (sharp turns)
- General detailed-ness of models and worlds
All of these can be improved by putting in some work, but they are no immediate blockers and ideas exist for how to improve (e.g. the set-track proposal).
Other than that, advtrains can serve as a train sim game with only minor changes. Even with the current controls, it is challenging enough to keep track of the signals and stop at the appropriate places.
Train Sim Mode Idea
When a player is on a driver stand of an advtrains train, he/she can switch to a „train sim mode“ where all automatic controls are replaced by a grading system. The player must observe signals, speed and stop points, and LZB serves only as a benchmark against which the player is scored.
For instance:
- Stopping at the right place at a station awards 10 points
- If the player drives over a red signal he gets -100 points
With this in place, scenarios can be built by builders and distributed simply as Luanti worlds. Or players can drive trains in sim mode on multiplayer servers.
Signalling Simulators
Games in which the player acts as a signalman in a signal box (German Fahrdienstleiter). There are a number of freeware games like SimSig, a couple of German ones, and I even started a fork of something called „ts2“ once (then abandoned it).
Advtrains has a quite powerful interlocking system. While it has a few feature gaps (for example overlap, warner routes…) it nevertheless can serve as a solid base for such a Signalling simulator. The unique feature of this one is that the trains can actually be observed in a 3D world.
Signal Box Webapp
I am not a masochist so I won’t even start trying to implement this in formspecs. It will be a web app (and by this I mean, a webapp that fits into one html, one js and one css file and does not need Node/React/whatever is the latest JavaScript framework hype).
Builders can create a signal box schematic, which looks similar to SimSig/ts2/german ESTWs, and link the schematic elements to components in the Luanti world. This way the player can then directly control the signals in the world.
Technology wise, since Luanti can only serve as a http client, the Webserver serving the webapp will also need to act as a relay. Luanti can receive commands from the relay (and thus the webapp) via http long polling.
While a signal box session is in place, ARS will be disabled on the signals in the area.
Taking timetables data as a basis, also for this game mode scoring can be performed. One further idea is to simulate failures (both on the trains e.g. door problems) and on the trackside equipment (signal lamp/switch failures) like in SimSig.
On a server, multiple distinct signal boxes / control areas can exist and multiple players can operate them simultaneously. This makes it possible to also simulate train handovers (Zugmeldungen) between the participating players.
Multiplayer aspect
With both of these features in place, we can build a collaborative railway mini-world server:
- Builders can build railway networks in the Luanti world, and let trains run on them controlled by the interlocking system and timetable/line automation system. Everything can run on automation by default.
- Players can pick a train and switch to Sim Mode. They have to drive the train manually and adhere to the timetable, and can accumulate score.
- Players can pick a signal box and control the interlocking in a designated area. Their performance is also scored
All of these activities can happen simultaneously on the server. There can be server-wide leaderboards for train driver and signaller performance.
NPCs / Transport Tycoon
An added bonus would be NPCs that randomly spawn at or near stations and can enter and ride trains. In the long run, this could even be extended so that NPCs start to build cities around places where there is good train service, akin to games like OpenTTD / Simutrans. I have already explored the idea of combining mg_villages with advtrains and connecting the generated villages by train lines (see my tutorial videos).
— orwell 2026-01-27 23:41
