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.11.0.8 Stable (2024-11-11)

Current News & Updates:

Version 1.7.0.0

OpenBVE v1.7.0.0 is a much larger release, although much of this comes in the form of internal changes. A large amount of work has been done to convert the Object parsers into a single set of shared plugins, as well as moving most graphical and audio code into shared libraries.

A new (experimental) tool has also been added, courtesy of S520- TrainEditor2. This allows the complete properties for a train to be edited within a single program.

Finally, a note on MacOS Catalina compatibility- Unfortunately, Apple have made the decision to drop 32-bit compatibility. At present, OpenBVE relies on several 32-bit libraries and so is currently incompatible. Please see the following issue for more details: https://github.com/leezer3/OpenBVE/issues/384

Significant Changes:

  • New: Add control to toggle the RailDriver speed unit display.
  • New: Add panel / animated variables for the PilotLamp, StationPassAlarm and StationAdjustAlarm.
  • New: Add dedicated sound for EB release
  • New: Allow loading sway to be disabled on a per-car basis.
  • New: Allow an object to be defined for couplers.
  • Fix: A FreeObject command must contain a minimum two arguments https://github.com/leezer3/OpenBVE/wiki/Errata#a-freeobject-must-contain-a-minimum-of-two-arguments
  • Fix: Platform roofs did not appear if the object was not available in both L and R.
  • Fix: Handle Train.dat files containing duplicated section headers.
  • Fix: A Track.Signal command with an Aspects value of -3 was incorrect.
  • Fix: If no safety plugin was present, the handles were stuck.
  • Fix: Loading sway did not work correctly on trains with automatic doors.
  • Fix: The AI did not handle air brakes nicely on a long station stop.
  • Fix: If the player was using a joystick axis to activate a control and enabled the AI, these could fight.
  • Fix: An invalid filesystem character in train names could cause infinite recursion.
  • Fix: Issues with the Object Viewer extensions.cfg parser when things were in an unusual order.

Content Specific Fixes:

  • Fix: If hacks are enabled and no valid backgrounds are defined, use a default (sky) background.
  • Fix: Handle broken texture path in NeuveVille- Les Taux.
  • Fix: Broken station object in Meguro route.
  • Fix: Assorted issues with all2000.csv
  • Fix: Use correct encoding for HK tram route.
  • Fix: Disable toppling on NYCTA-L.csv
  • Fix: Broken initial trackwork on M4.csv
  • Fix: Tunnel on FGC V1 routefiles.
  • Fix: Station exit issue on FGC V2 routefiles.
  • Fix: Handle incomplete B3D face variant.
  • Compatibility: Handle alternate path for Uchibo crossing sound

Version 1.6.0.1

Significant Changes:

OpenBVE v1.6.0.1 is a small hotfix for systems installing using the Debian package only.

Due to an oversight in packaging, libmono-system-xml-linq4.0-cil was not specified as a required system library, and OpenBVE subsequently crashed during loading.

If OpenBVE is working correctly, there is no need to do anything in this case.

Version 1.6.0.0

Significant Changes:

  • New: Add Touch Operation to 2D and 3D panels- Existing 2D panels will automatically generate touch zones where possible, if the ‘Extended Panel2’ mode is enabled under options.
  • New: Add Track Following Objects.
  • New: Route Viewer uses the common texture loader plugins.
  • New: Object Viewer will load an extensions.cfg file in order to view an entire train.
  • New: Brake pressure, ATS variables etc. may be simulated in Object Viewer.
  • New: Further updates to train.xml / CarXMLConvertor. Note: This is still a work in progress feature….
  • Fix: Handle where GlowFileWithoutExtension actually has an extension.
  • Fix: Issue between P1 and P2 when using the OHC-PC01
  • Fix: Issues with certain unusual train setups.
  • Fix: Lock when creating the timetable image to prevent a possible crash.
  • Fix: Handle a sound.cfg file where the first line(s) are comments.
  • Fix: Handle unexpected whitespace in certain obj files.
  • Fix: Possible crash in CSV / B3D object parser when an incomplete color was used.
  • Fix: Handle another misdetected Unicode case.
  • Fix: The Panel2.cfg parser did not handle invalid speed units correctly.
  • Fix: Handle where the EM-DASH has been used instead of a minus sign.
  • Change: When a train contains both a 2D and a 3D panel, this is noted in the log.

Route Specific Fixes:

  • Hacks: Fix assorted issues with the Dutch content available from http://web.ncf.ca/fb214/
  • Hacks: Disable derailments for 737-Test Flight
  • Hacks: Fix Z-fighting panel on Boeing-737
  • Hacks: Fix issues caused by a misplaced comma in Balloch- Dumbarton
  • Hacks: If hacks are enabled, enforce a minimum RunInterval of 2 minutes, in order to ensure that the preceeding train has actually cleared the station / player train. (Fixes the duplicate train on top of the player train seen in large amounts of BVE2 content)
  • Hacks: Fix issues with the Iiyama 2060 route.

Please note that the developer documentation has been significantly updated and improved.

The URL has changed as a result of this, and it may now be found at:

https://openbve-project.net/documentation_hugo

The site-menu has been updated to reflect this. The old documentation will remain online at it’s current URL for the minute.

This has taken a lot of work, from contributors including S520, MidnightExpress1981 & Marc Riera- Thanks!

Changes:

  • Rebuilt using the Hugo site generator, to allow for multi-lingual translation.
  • Considerable formatting updates.

Translations:

If you’d like to see the documentation in your own language, we need your help!

Translations are managed through Transifex, and may be accessed here: https://www.transifex.com/openbve/openbve-developer-documentation/

Version 1.5.4.1-1

Hotfix Release 2

  • Mac: Fix a broken link in the Mono download prompt.

Version 1.5.4.1

Hotfix Release

  • Fix: Crash on systems with no microphone / audio in inputs.

Version 1.5.4.0

Significant Changes:

  • New: Add TGA image loader plugin.
  • New: Add two alternative X object parsers.
  • New: Add alternative OBJ parser.
  • New: Add alternate sounds for when a power / brake handle is moved continously.
  • New: Add microphone sound input & associated routefile sound-source.
  • Fix: Correctly handle all MS-ZIP compressed X objects (Applies to all parsers)
  • Fix: The speed limit could unexpectedly revert to unlimited in certain circumstances.
  • Fix: CarUnexposedFrontalArea was not read correctly from the train.dat file. NOTE: This was being applied incorrectly to CarExposedFrontalArea. This may have a (normally) small affect on train performance.

Notes:

This build introduces alternate parser options for X and OBJ files. These are as follows:

X:

  • Original - Michelle’s original parser.
  • NewXParser - New scratch-written code.
  • Assimp - A C# port of the Assimp library ( https://github.com/assimp/assimp , a modified version of BSD-3 applies to this)

The default X parser will now be set to the NewXParser.

OBJ:

  • Original
  • Assimp - Assimp - A C# port of the Assimp library ( https://github.com/assimp/assimp , a modified version of BSD-3 applies to this)

The default Obj parser will now be set to the original OBJ parser.

If loading using any of the new parsers fails, the original parsers will be automatically tried as fallback options. A routefile command to control the X parser used is also available:

Options.XParser This may be set to the following: 0 : Original 1 : NewXParser 2 : Assimp