Difference between revisions of "Gentek Rail System"

imported>NelsonJenkins
imported>NelsonJenkins
 
(16 intermediate revisions by the same user not shown)
Line 2: Line 2:
  
 
==Standards==
 
==Standards==
*Track gauge (inner <-> inner) = '''1.96 m''' (to allow for SLRR rail compatibility in the far future, although SLRR tracks alone will be incompatible with the scripts, see "SLRR compatibility")
+
*Track gauge (inner <-> inner) = '''1.96 m''' (to allow for SLRR railbed compatibility)
 
*Minimum vertical clearance = '''5.5 m'''
 
*Minimum vertical clearance = '''5.5 m'''
 
*Minimum horizontal clearance = '''4.0 m''' on straight sections, '''5.5 m''' on curved sections (minimum)
 
*Minimum horizontal clearance = '''4.0 m''' on straight sections, '''5.5 m''' on curved sections (minimum)
Line 10: Line 10:
 
==Guides==
 
==Guides==
 
*Straight
 
*Straight
*Stop buffer (reversible)
+
*Stop buffer (fwd or rev)
 
**Instantly stops train to prevent derailment
 
**Instantly stops train to prevent derailment
 
*Switch left (switchable, requires 2 connections in one direction)
 
*Switch left (switchable, requires 2 connections in one direction)
 
*Switch right (switchable, requires 2 connections in one direction)
 
*Switch right (switchable, requires 2 connections in one direction)
  
==Sensors==
+
==Guide options==
note: sensors will require 2 pieces to detect movement direction
+
*Block (acts as signal block delimiter)
*Block delimiter
+
*Signal (can be used with block option, or separate for programmable addressing)
**Will require detection of multiple cars and constantly ping for their presence
+
*Switch Trigger (automatically sets switch for oncoming train, usually in unswitched direction)
**Also allows for trip stop e-brake if connected to a signal showing a stop indication
+
*External API output (sends information on car pass)
*Switch alignment
+
*Autonomous train commands (for selective autonomous train movement with wildcards)
**Aligns connected switch for train merging onto single track
+
**Short Horn/Whistle
 +
**Long Horn/Whistle
 +
**Bell Start/Stop
 +
**Set Speed
 +
**Timed Stop (mostly for stations)
 +
***Time in Seconds
 +
***Doors Open
 +
***Horn/Bell on Depart
 +
***Departure Speed
 +
***Reverse
 +
**Switch Trigger (this will also automatically stop train until switch block is clear)
  
 
==Train automation==
 
==Train automation==
Automated systems will have to be custom-designed, it is prohibitively complex to make automated train control devices (think UR but 10x as complex); nobody will figure it out<br />
+
Trains will have 4 methods of control:
Ideally the engines could be remote controlled in a way to start up and assign routes through various switches to reach an endpoint (since freight trains would be stored either in a yard or in a "magic depot" instead of running continuously) but this is obviously not a consumer-friendly setup - continuously automated trains, e.g. Lionheart passenger service, may be an option
+
* Autonomous
 +
** Trains move on their own and follow commands set in guides
 +
** Can be stopped, started, rerouted, etc.
 +
* Programmed
 +
** Trains released from a set point and move through switches in a set program
 +
** Can only be stopped/started for emergengies; will always follow program, cannot be rerouted
 +
* Manual
 +
** Fully controlled by driver; no guide commands, will only trip brakes on a red signal
 +
* Remote
 +
** Manual, but in-train controls locked out, controlled at a remote location
 +
Ideally the engines could be programmed in a way to start up and assign routes through various switches to reach an endpoint (since freight trains would be stored either in a yard or in a "magic depot" instead of running continuously) but this is obviously not a consumer-friendly setup - programmed routes will likely be custom-made, and autonomous driving will be available to consumers as an easier alternative
  
 
==Rolling stock==
 
==Rolling stock==
Line 44: Line 64:
 
*F40PH/P42DC passenger service engine
 
*F40PH/P42DC passenger service engine
 
*Electric standalone passenger unit (metro/subway)
 
*Electric standalone passenger unit (metro/subway)
*''Maybe'' a steam engine, would be popular with VRC types
+
*''Maybe'' a steam engine (unlikely)
  
 
==SLRR compatibility==
 
==SLRR compatibility==
 
Problems with SLRR compatibility:
 
Problems with SLRR compatibility:
*No standard for overhead/wayside clearance
 
 
*Guide prims are too close together to have trains travel at speed and calculate movement directions
 
*Guide prims are too close together to have trains travel at speed and calculate movement directions
*Curve radius is too small (turns too quickly) in some locations, which might fuck things up at high speeds
+
*Curve radius is too small (turns too quickly) in some locations, which might screw things up at high speeds
*Switch designs are pretty shitty
+
*Switch designs are passive
 
*No signalling, which will be a critical aspect of the system (particularly for automated trains)
 
*No signalling, which will be a critical aspect of the system (particularly for automated trains)
*Public SLRR lines have no control system or prompt maintenance and tier for trackside yards/depots would be too expensive
+
*Public SLRR lines have no control system or prompt maintenance
**Privatized SLRR compatibility would be theoretically possible, but it would be easier for them to just set up additional guide pieces
+
*Tier for trackside yards/depots would be too expensive
 +
*Privatized SLRR lines can just set up additional guide pieces
 +
 
 +
==Numbering==
 +
5-character alphanumeric identifier assigned to all cars, with O, Q, I, and S excluded (to avoid misinterpreting as 0, 1, and 5) similar to VIN2 system.<br>
 +
Identifiers are automatically assigned starting with 10000 to avoid leading zero, but leading zeros are possible through manual assignment for special vehicles (typically 3 digits) in rare situations - this will not be available to the public.<br>
 +
Numeric-only identifiers (10000-99999) reserved for engines and power cars such that trains can be numbered without alpha characters in most cases for realism.<br>
 +
Supports 90,000 simultaneous power cars in-world (recycled safely; if supply runs out, new power cars may be assigned alphanumeric characters).<br>
 +
Supports 32,505,855 individual cars overall.
 +
 
 +
==Communication==
 +
Communication currently done with shouting to allow for cross-region communication; however, may use relays, regionsay, and append random UUID to allow them to propagate through the system without feedback, as well as periodic keep-alive checks to ensure the sim is online - if not, trigger a red signal.
  
 
==Problem pessimist checklist==
 
==Problem pessimist checklist==
Line 60: Line 90:
 
*Crossing sims with keyframed movement
 
*Crossing sims with keyframed movement
 
*moving_end to detect when movement stops
 
*moving_end to detect when movement stops
 +
*Shout can be used across sim borders
 +
*Particles can have target in other sim
  
 
===Doesn't works===
 
===Doesn't works===
*(nothing yet)
+
*Sensor across sim borders (not necessarily needed)
  
 
===Untested===
 
===Untested===
*Sensor across sim borders
 
 
*Curve system feasibility
 
*Curve system feasibility
 
*Chained communications down entire consist when car(s) crossing border
 
*Chained communications down entire consist when car(s) crossing border
*Movement determination in each car
+
*Movement determination in each car (possibly by connecting guides?)
 +
 
 +
==Path calculation==
 +
===Aligned & no rotation OR any combination w/o smoothing===
 +
Get direct line between two points
 +
 
 +
===Rotated w/ smoothing===
 +
If horiz offset <= depth distance, get arc on unit circle, then scale to ellipse marked by guides; otherwise, get above scenario at 1:1 ratio and scale horizontally (technically impossible for rails to be laid like this)
 +
 
 +
===Offset & no rotation w/ smoothing===
 +
Internally plot midpoint of direct line, map two arcs using above method

Latest revision as of 12:41, 6 May 2013

These are general ideas for a future rail system.

Standards

  • Track gauge (inner <-> inner) = 1.96 m (to allow for SLRR railbed compatibility)
  • Minimum vertical clearance = 5.5 m
  • Minimum horizontal clearance = 4.0 m on straight sections, 5.5 m on curved sections (minimum)
  • General car length, wheel to wheel = 12.5 m
  • General car length, end to end = 16.5 m

Guides

  • Straight
  • Stop buffer (fwd or rev)
    • Instantly stops train to prevent derailment
  • Switch left (switchable, requires 2 connections in one direction)
  • Switch right (switchable, requires 2 connections in one direction)

Guide options

  • Block (acts as signal block delimiter)
  • Signal (can be used with block option, or separate for programmable addressing)
  • Switch Trigger (automatically sets switch for oncoming train, usually in unswitched direction)
  • External API output (sends information on car pass)
  • Autonomous train commands (for selective autonomous train movement with wildcards)
    • Short Horn/Whistle
    • Long Horn/Whistle
    • Bell Start/Stop
    • Set Speed
    • Timed Stop (mostly for stations)
      • Time in Seconds
      • Doors Open
      • Horn/Bell on Depart
      • Departure Speed
      • Reverse
    • Switch Trigger (this will also automatically stop train until switch block is clear)

Train automation

Trains will have 4 methods of control:

  • Autonomous
    • Trains move on their own and follow commands set in guides
    • Can be stopped, started, rerouted, etc.
  • Programmed
    • Trains released from a set point and move through switches in a set program
    • Can only be stopped/started for emergengies; will always follow program, cannot be rerouted
  • Manual
    • Fully controlled by driver; no guide commands, will only trip brakes on a red signal
  • Remote
    • Manual, but in-train controls locked out, controlled at a remote location

Ideally the engines could be programmed in a way to start up and assign routes through various switches to reach an endpoint (since freight trains would be stored either in a yard or in a "magic depot" instead of running continuously) but this is obviously not a consumer-friendly setup - programmed routes will likely be custom-made, and autonomous driving will be available to consumers as an easier alternative

Rolling stock

  • Standard Boxcar
    • many different themes (won't list here)
  • Standard Tanker
    • some different themes (to be done)
  • Standard Flatcar
    • not really any themes to make, but has different cargo
  • Standard Hopper
    • themes yes indeedy
  • Standard passenger car
    • could make a lot of themes for this
  • Standard mail/baggage car
    • yep more themes sure thing
  • Russian-styled boxcab engine
  • US-styled hood-unit freight engine
  • F40PH/P42DC passenger service engine
  • Electric standalone passenger unit (metro/subway)
  • Maybe a steam engine (unlikely)

SLRR compatibility

Problems with SLRR compatibility:

  • Guide prims are too close together to have trains travel at speed and calculate movement directions
  • Curve radius is too small (turns too quickly) in some locations, which might screw things up at high speeds
  • Switch designs are passive
  • No signalling, which will be a critical aspect of the system (particularly for automated trains)
  • Public SLRR lines have no control system or prompt maintenance
  • Tier for trackside yards/depots would be too expensive
  • Privatized SLRR lines can just set up additional guide pieces

Numbering

5-character alphanumeric identifier assigned to all cars, with O, Q, I, and S excluded (to avoid misinterpreting as 0, 1, and 5) similar to VIN2 system.
Identifiers are automatically assigned starting with 10000 to avoid leading zero, but leading zeros are possible through manual assignment for special vehicles (typically 3 digits) in rare situations - this will not be available to the public.
Numeric-only identifiers (10000-99999) reserved for engines and power cars such that trains can be numbered without alpha characters in most cases for realism.
Supports 90,000 simultaneous power cars in-world (recycled safely; if supply runs out, new power cars may be assigned alphanumeric characters).
Supports 32,505,855 individual cars overall.

Communication

Communication currently done with shouting to allow for cross-region communication; however, may use relays, regionsay, and append random UUID to allow them to propagate through the system without feedback, as well as periodic keep-alive checks to ensure the sim is online - if not, trigger a red signal.

Problem pessimist checklist

Works

  • Crossing sims with keyframed movement
  • moving_end to detect when movement stops
  • Shout can be used across sim borders
  • Particles can have target in other sim

Doesn't works

  • Sensor across sim borders (not necessarily needed)

Untested

  • Curve system feasibility
  • Chained communications down entire consist when car(s) crossing border
  • Movement determination in each car (possibly by connecting guides?)

Path calculation

Aligned & no rotation OR any combination w/o smoothing

Get direct line between two points

Rotated w/ smoothing

If horiz offset <= depth distance, get arc on unit circle, then scale to ellipse marked by guides; otherwise, get above scenario at 1:1 ratio and scale horizontally (technically impossible for rails to be laid like this)

Offset & no rotation w/ smoothing

Internally plot midpoint of direct line, map two arcs using above method