User Tools

Site Tools


Sidebar



Minetest Forum
Content Database
Git Repository
Bug Tracker
Website

dev:proposals:dos

This is an old revision of the document!


Drive on Sight alternative to interlocking

Note: This proposal has already began implementation; see advtrains-dos

Interlocking is a lot of effort to setup and maintain. It also creates an unhealthy habit for trains to blindly trust a maybe-fraudulent signal. What if Interlocking wasn't neccessary for multiple trains?

Enter DoS. Copying real-life Drive on Sight procedures, straight from metrolink's drivers, DoS makes sure trains are more self-sufficent and do not rely on often-hobbyist signallers.

Basic Backend

Every train has a “visbility” value. This will always be as far as a train can “see” down a track in the tightest possible tunnel.

The train must always be going at a speed where it can stop within 90% of its visibility. This means some poor soul who might not even have proper physics qualifications will have to rearrange the time from acceleration question and implement it into Minetest.

If a train “sees” anything on the tracks, like a player or a block it should stop and honk its horn. This is how Metrolink works if you step in front of a tram (and if it didn't work like that you might kill the artist responsible for some of Barcelona's most iconic sights, such as Park Guëll).

If the train sees another train, it must reduce its speed to that which matches the train and try and keep a distance which is that of the braking distance plus a configured file plus a 10 m buffer. But nobody knows how to see another train in advance and to detected a stopped train which will not have a train.path value and will not show up with advtains.show_trains_at(), otherwise it would have been implemented by now without any massive dying as a crowded train hits a stopped train at a station, mistakenly thinking the path is clear, throwing 10 people onto the tracks just to be crushed or electrocuted.

I can tell that this would be extremely difficult (especially the last point) even for a GCSE-qualified person to create, so if you have even the slightest doubt about your ability to implement it, don't.

Enabling and Disabling

There are still situations where interlocking plays an important role. Places like rural areas or tunnels may not be tresspassed and are a controlled environment.

To enable, send the ATC command `DOS1`, and to disable, send the ATC command `DOS0`.

Eventually, you should be able to use signs as well.

dev/proposals/dos.1673963088.txt.gz · Last modified: 2023-01-17 14:44 by evictionbot