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.10.0.1 Stable (2024-04-10)

Current News & Updates:

Version 1.5.1.1

Significant Changes:

  • Fix: Trains missing the Sound.cfg file (A minority of trains from the BVE1 / BVE2 era) were broken.
  • Fix: Several issues with the TrackFollowerFunction, relating to station jumps.
  • Fix: A time-based animation updated incorrectly when returning from the menu.
  • Fix: A route encoded in UTF-8, with a $Include file encoded in SHIFT_JIS had incorrect character mapping in station names.
  • Change: Improved handling of broken/ non-standard folder structures.
  • New: Added an in-game gradient display option. (Must be added under Controls for existing users. New installs are set to CTRL + N by default)

Version 1.5.1.0

This release contains several more requested features, as well as improvements to the main menu system. There has been one behavioural change affecting all prior content.

Behavioural Changes:

In prior versions of OpenBVE, pressing and holding a horn key would cause the sound to repeatedly trigger until the key was released. This has been changed to the following:

  • Primary & Secondary horns: The sound will play once.
  • MusicHorn: The sound will toggle on with the first keypress, then toggle off.

Please see also the following errata note:

https://github.com/leezer3/OpenBVE/wiki/Errata#horn-behavior

Significant Changes:

  • New: Three-part horn sounds are now supported.
  • New: A needle declared within a Panel2.cfg file, with the subject of hour , min or sec will now accept the additional parameter Smoothed , to use either smooth or stepped rotations.
  • New: Switch sounds based upon the current run index are now supported.
  • New: The subjects Klaxon , PrimaryKlaxon , SecondaryKlaxon and MusicKlaxon are now available for animations.
  • New: In-game menus may be scrolled using the mouse.
  • Fix: An optimised animated object with multiple functions could appear in the wrong position.
  • Fix: Object based backgrounds broken in certain obscure cases.
  • Fix: Object based backgrounds could clip incorrectly.
  • Fix: Incorrect keyup events generated when leaving the in-game menu.
  • Fix: The pressure for a straight air-brake did not quite go to zero, causing the run sound to continously play for some trains.
  • Fix: A train with defined bogies for cars greater than than the length in train.dat crashed.
  • Fix: If the restart process was invalid in filesystem.cfg , this would generate an error message & not restart.
  • Fix: A control with no assigned target would crash the in-game configuration menu.
  • Fix: The mouse did not work in the second or greater page of in-game menus with multiple pages.
  • Change: Disable the FileSystemWatcher on OS-X, as this leaks open file handles.
  • Change: Enter key not marked for translation.
  • Change: Update pt-PT translation.

Version 1.5.0.10

With it having been nearly three months since the last release, I thought it time to upload another. The ‘RC’ tag has also been removed from this release, as I believe that it’s now in a state which can truly be called stable. (Famous last words…..)

Significant Changes:

  • New: The ‘compatibility’ objects have been expanded to include open-source copies of all of the original Uchibo objects, as these are used by many older routes.
  • New: Animated files now allow times written in the HH:MMss format to be used in expressions.
  • New: The parameter WrapMode (b3d) / SetWrapMode (csv) has been added to allow object authors to control the texture wrapping mode used by the game engine.
  • New: The command Route.StartTime has been added. This allows route authors to set the starting time independently of the arrival time at the first station.
  • New: Plugins may now interlock the state of the train doors.
  • New: Plugins may now add or subtract a score value.
  • Change: Damping is no longer applied to rotations when switching between camera views.
  • Change: The colon is now allowed for use as a time separator.
  • Fix: If a route used compatibility objects, but was written with an UTF incompatible text encoding, these objects would not load.
  • Fix: Some characters were not correctly serialized into package descriptions when using the Mono runtime.
  • Fix: It was sometimes possible to arrive late at the first station upon loading the game.
  • Fix: Several issues with the TrackFollowerFunction.
  • Fix: A potential crash when drawing route maps.
  • Fix: Normals were not updated correctly in certain instances.
  • Fix: It was possible for the ansiotropic filtering level to get stuck at zero.

Version 1.5.0.1

Version RC9a:

  • Windows installer re-uploaded due to a missing critical file. This should fix instances of ‘Unhandled Windows Forms Exception’ when clicking in the main menu. Sorry about that!

Significant Changes:

RC9:

New command line switches:

  • /station= Jumps to the given station on startup.
  • /time= Fast-forwards to the given time on startup.
  • /fullscreen= true or 1 for fullscreen.
  • /width= and /height= Sets the screen width and height.

Version 1.5.0.1

Significant Changes:

RC8: