Home Elaboration Simulator USE CASE
Simulator Program USE CASE Print
Monday, 14 July 2008 18:08

The simulator program purpose is to simulate railroad operations. In volume of C++ code, the largest simulation will be the graphics, physics and user interface for steam, electric and diesel locomotive operation and other train components. The remaining railroad simulation will be accomplished with AngelCode scripts, run in the simulation during idle time.

When developing code for this simulation, the C++ routines will be limited to discrete operations. For example C++ code will be developed for moving a railroad switch for one position to another, but a CTC simulation that operates the switch, in manual or AI mode, will be developed in AngelCode script and scheduled to run when triggered in the route/path database design. By using script for the operational details of the railroad the route designer is able to control, modify or correct the simulation of his route.

The simulation will be included for the train crew (engineer, conductor, brakeman and the era dependent fireman, head brakeman and flagman), yard drill (engineer, conductor and brakeman), yardmaster, switchmen and freight agent. Other possible simulation roles are hostler, power desk or roundhouse foreman, dispatchers, towerman and block operators, trainmasters and rules examiners (See “Designing Model Railroad Operations” NMRA). These user simulations are created by assign control of communication and control assets of the route simulation to a defined user role (yardmaster etc.). Each game player may take control of the more then one role in the simulation.

Each route will have provisions for a simulation including information of location, era, industries served and paths. The route will generate passenger and industrial volume for the simulator and user roles. The route will include baseline schedules and an automatic operation for demos and test of the route.

ACTORS:
  • Simulator-User – game player Train-Crew – Roles attached to a specific locomotive and train consists.
  • Yard-Drill – Roles attached to a specific locomotive and yard.
  • Yardmaster – Role attached to a specific yard.
  • Switchman – Role attached to a specific yard.
  • Freight-agent – Role attached to a specific yard.
  • Hostler – Role attached to a specific locomotive.
  • Power-Desk – Role attached to a group of locomotives.
  • Roundhouse-Foreman – Role attached to a group of locomotives.
  • Dispatcher – Role attached to section of the mainline.
  • Towerman – Role attached to a group of switches.
  • Block-Operator – Role attached to a section of the mainline.
  • Trainmaster – Role attached to a section of a route.
  • Rules-Examiner – Role attached to a railroad route.
  • Tasks – Runs and schedules scripts.
USE-CASE:
  • Change a path.
  • Light signal lamps.
  • Extinguish signal lamps.
  • Open traffic gates.
  • Close traffic gates.
  • Advance clock.
  • Freeze the game.
  • Save the game state.
  • Restore the game state.
  • Read an initial game state.
  • Network chat.
  • Synchronize game state with network group.
  • Load a route.
  • Synchronize route with network group.
  • Evaluate user and group network reputation.
  • Play sound.
  • Display a menu.
  • Exit a menu.
  • Play music.
  • Load models.
  • Animate models.
  • Load cameras
  • Animate cameras.
  • Run simulation models.
  • Replace roles with AIs.
  • Read user input.
  • Display errors.
  • Display variables.
  • Edit variables.
  • Run real time tests.
  • Identify intellectual prosperity rights.
  • Test program integrity.
SUB-SYSTEMS:
  • Script System – ITask simulation interface.
  • Sound System – ISound simulation interface.
  • Graphics System – IGraphics simulation interface.
  • Network System – INetwork simulation interface.
  • Menu System – IGui simulation interface.
  • System – ISystem simulation interface.
  • Factory – IFactory simulation interface.
  • Simulation – ISimulation interface.
  • AI – IAi simulation interface.
  • Input – IInput simulation interface.
  • Console – IConsoleClient simulation interface.
  • Tweak – ITweaker simulator interface.
  • Test – ITest simulator interface.
  • Property Management – IPropertyManager simulation interface.