This is the home of OpenBVE, a license-free, open source, free of charge train driving simulator.

Screenshots

This program includes detailed per-car simulation of the brake systems, friction, air resistance, toppling and more. In 3D cabs, the driving experience is augmented with forces that shake your simulated body upon acceleration and braking, as well as in curves. Besides that, OpenBVE features a 3D positional sound system best enjoyed with surround speakers, train exteriors and timetables for the current run. Finally, via the main menu, routes and trains be easily selected to start a new session, the controls can be configured to keyboard or joystick devices, and a variety of options can be selected.

Compared to other simulators of the genre, especially compared to commercial games, OpenBVE has its main focus on realism, not necessarily on user-friendliness. You should be willing to study operational manuals for the routes and trains you want to drive, and will in many cases not get along by just memorizing a few keystrokes. If you can identify with this focus, OpenBVE might be the right simulator for you.

Latest Stable Release:

1.14.1.2 Stable (2026-10-07)

Current News & Updates:

Significant Changes:

  • Fix: Build failing to launch on non-windows platforms- It appears that there has been a change with Azure pipelines, causing a required file to not be copied into the build correctly.
  • Fix: A file with the timetable override texture set did not preserve this when cloned.
  • Change: Support for several more animations in MSTS cabs.
  • New: Expose various quality options for viewers. (Aditiya Afrizal)

OpenGL 1.2 support has been removed from this build. This will provide a general performance increase and allows for much easier maintenance. The final build supporting OpenGL 1.2 is v1.13.0.8- https://github.com/leezer3/OpenBVE/releases/tag/1.13.0.8

Significant Changes:

  • Change: GL1.2 renderer removed- OpenBVE now requires GL4.1 as a minimum.
  • Change: Generate the normals visualisation on demand- this will reduce RAM usage and loading time. (Aditiya Afrizal)
  • New: CSV / B3D object parser replaced with new code.
  • New: Allow the use of a animated object as a background object. (Aditiya Afrizal)
  • New: Object Viewer remembers the background color.
  • New: Use night-time textures in MSTS cabs where present.
  • Fix: Stop the axis visualisation from casting a shadow. (Aditiya Afrizal)
  • Fix: Some Mechanik routes not working correctly.
  • Fix: Issue with using RunInterval command with hacks on
  • Change: Alter Mechnik transparent color to use the first color in the pallette, not pure black.
  • Change: Update known Mechanik routes database.
  • Change: Restrict Mechanik correction markers to the nearest 100m boundary, not the exact track position.
  • Change: Improve AI driver response to wheelslip when using the UKDT plugin.
  • Change: Workaround for drawing issue in TE2 motor sound visualiser.
  • Change: Add some more small bits in the MSTS parser.
  • Change: Solution updated to .Net 4.8.0
  • Change: Add workaround for issues on Debian Forky.
  • Hacks: Fix some missing sounds in TT_YUS routes. (developer oversight)
  • Hacks: Accept letter O as substitute for zero when parsing CSV / B3D objects.

Significant Changes:

  • New: Realtime sun / shadow preview in viewers. (Aditiya Afrizal)
  • New: Improved shadow smoothing options. (Aditiya Afrizal)
  • New: Add TotalStates CarMass DecelerationMotor and RailNumber animated instructions.
  • Fix: Some HKHSS routes incorrectly detected as HMMSim.
  • Fix: Interpolation issue in BVE5 routes where two legacy curve commands are within 25m.
  • Fix: Unable to enable time acceleration when no train plugin loaded.
  • Fix: Some touch controls broken by move to GL4.
  • Fix: Copy + paste error in custom power beacons. (Aditiya Afrizal) Fix: MP3 decoding not working on Linux. (Aditiya Afrizal)
  • Change: Update OpenTK fork.
  • Change: Update MP3 decoder implementation.
  • Change: Fix some more issues with HMMSim routefiles.
  • Change: Various performance improvements to route / object loading. (Aditiya Afrizal)
  • Change: Significantly improve the memory usage / performance of animated GIF files. (Aditiya Afrizal)
  • Change: Significant changes to the handling of semi-colons in the RW routefile format. Please see the following errata note
  • Change: When calculating exposed frontal area, the multiplier of 0.65 is now used for cars which do not specify a width / height. Please see the following errata note
  • Compatability: Update routefile database.
  • MSTS: Add accelerometer to handled CVF instructions.
  • MSTS: Implement interior views for cars other than the driver car on MSTS stock.

DEPRECATION NOTICE:

Please note that the next public build (v1.14 series) will deprecate the OpenGL 1.2 (legacy) renderer, meaning that GL4.1 will now be required. The new renderer is considerably faster in all cases, and allows for various things (particles, shadows, complex keyframe animations) not supported by the legacy renderer.

OpenGL 4.1 is supported by all graphics cards, and most integrated graphics solutions from ~2012 onwards.

Significant Changes:

  • Change: Update handling of incorrectly rooted paths.
  • Change: More improvements to object transformations. (Aditiya Afrizal)
  • Change: Improve compatibility with Hmmsim specific CSV route variant.
  • Change: When a Cylinder has an invalid number of faces, it is not shown when hacks are active. (Matches BVE2 / BVE4 behaviour)
  • Change: Update routefile compatability database.
  • Fix: Two further $Include related issues introduced in 1.13.0.3
  • New: Add Options.StartingDirection command.
  • BVE5: Don’t attempt interpolation between two identical values.

This release contains a major step forwards in graphics capabilities, thanks to Aditiya Afrizal- Shadow effects.

Shadow effects may currently be controlled globally through a new options page. Please note that results will vary, depending on the way any given route has been constructed, and the lighting setup it uses.

Significant Changes:

  • Change: Further improvements to coupler collision logic.
  • Change: Update Debian package dependancies to handle new unified Mono package.
  • Change: Use a more specific error message when a rooted path is supplied in place of a relative one.
  • Change: Improve handling of PNG files with an unused and invalid TRNS chunk.
  • Change: Improve layout of options pages. (Aditiya Afrizal)
  • Fix: Infinite loop if an empty $Include file was encountered (introduced in 1.13.0.3)
  • Fix: Possible crash when attempting to transform objects which do not conform to 4 vertex counts.
  • Fix: Handle X files which specify invalid colours.
  • Fix: Make light directions in dynamic lighting XML consistant with routefiles. (Aditiya Afrizal)
  • Fix: Deform for some roofs / cracks broken in v1.13.0.0 (Aditiya Afrizal)
  • Fix: Logic issue in TFO parser.
  • BVE5: Various improvements to route parser ( https://github.com/leezer3/OpenBVE/pull/1325 )
  • BVE5: Fix routefiles in which the first encountered route command is one which does not take a distance.
  • BVE5: The specified rail for repeaters should be case invariant.
  • Hacks: Fix issues with certain walls / dikes with Minobu route.