Railway Signal Box Simulator

Project Proposal by Martin Stacey


Railway Signal Box Simulator

Software

Java or C++ or Smalltalk or another object oriented language with good GUI facilities

Covers

Programming, object oriented design, simple graphics

Skills Required

Programming, preferably interest in simulation and railways

Challenge

Conceptual ?? Technical ??? Programming ????

Brief Description

Railway junctions were traditionally controlled by signal boxes, where signalmen pulled levers to control the direction of the points (junctions where trains can go in either of two directions), and signals to tell train drivers when to go and when to stop. (Drivers of steam locomotives couldn't see the track ahead and could only look for signals by the side of the track, and trains can't stop fast enough to avoid unexpected obstacles on the track.) Proper procedures and the right signals were and still are vital to ensure that trains don't crash.

The challenge of this project is to develop a virtual signal box as a game and/or educational tool, where users can pull virtual levers to control points and signals to direct railway traffic on a local train network. The idea is that the users could use the game / simulator to develop an understanding of how railways were and are run, while having fun and developing a much better intuitive feel for how railway systems behave and what being a signalman was like than they can get from diagrams or demonstrations.

The task is to develop two separate but interacting modules: a railway network (either self-contained or, more realistically, with inputs and outputs from the rest of the country) with simulated trains; and a signal box that the users can interact with to change the states of the signals and the points.

Variants/Extensions

The project can be biased towards producing a good looking and realistic signal box that will satisfy people looking for a convincing and educationally valuable signal box experience; or towards producing a sophisticated railway network that will satisfy people wanting to play with trains.

Ideally, the system should use symbolic descriptions of railway networks, or generate them automatically, so that the running network simulator is created to match rather than hard-coded, and the right number levers in the signal box are generated with the right connections. Certainly, the system should be designed so that the properties of the railway network can be easily changed, if possible without digging into code.

What games can you play by moving trains around?


Back to