User Tools

Site Tools


dev:proposals:dos

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
dev:proposals:dos [2023-01-17 14:44]
evictionbot Evict 56independent
— (current)
Line 1: Line 1:
-====== Drive on Sight alternative to interlocking ====== 
-**Note:** This proposal has already began implementation; see [[https://gitlab.com/56independent/advtrains-dos|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.