This is the home of
OpenBVE, a license-free, open source, free of charge train driving simulator.
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.2.7 Stable (2025-10-13)
Current News & Updates:
Significant Changes:
- New: Add wheelslip indicator to debug overlay.
- Change: More internal improvements to MSTS shape parser.
- Fix: Improve play / resume sound behaviour. This hopefully fixes the case of ‘stuck’ run sounds experienced by a minority of users.
- Fix: Viewing distance not working correctly with object based backgrounds.
- Fix: Issue with an animated object using StateChangeSound and a single buffer.
- Fix: Brightness function not working when manually added to an animated file.
- Fix: Route Viewer rail path overlay showing ended tracks. (AmberIsFrozen)
- Fix: If a train contained a zero-length car, it failed to show in Object Viewer.
- Fix: Freeze with animated files containing unexpected data in certain sections.
Significant Changes:
- New: PNG decoder handles 16-bit alpha PNG files.
- Change: Drop required OpenGL version to 4.1
- Change: Allow MSTS shapes to be used in animated files- Contained animations will be lost in this case.
- Change: Message timeouts are no longer affected by time acceleration or the in-game menu.
- Change: Implement LoadForAI value for XML trains to control loading custom plugins for AI trains.
- Change: Add warning for probably incorrect rotation direction vector in CSV / B3D objects.
- Change: Improve the error logged when an incorrect argument separator is used in CSV / B3D objects
- Change: Improve color handling in X parsers.
- Change: If a critical error is encountered on OS-X, we attempt to show a system error dialog.
- Change: Make Zuki capabilities detection less strict in DenshaDeGo! Input. (MarcRiera)
- Change: Large number of internal improvements and fixes in MSTS Shapes.
- Change: Improve draw speed when events overlay is active and large numbers of events are present.
- Experimental Change: The distance to the closest train is now measured using world position, not track position.
- Fix: .Net plugins might not load correctly.
- Fix: Issue when attempting to repeatedly change to a missing interior view.
- Fix: Use invariant culture when parsing vectors from a string in XML.
- Fix: Issue with RailAnnouceAll command.
Significant Changes:
- Change: Implement D3DDECL_USAGECOLOR in NewXParser.
- Change: Apply consist reversal before placing TFO.
- Change: Allow using MSTS shapes in animated files; contained animations will be set to frame zero.
- Fix: TrackFollowerFunction with no axles incorrectly flipped (Not fixed right in 1.11.2.3)
- Fix: Some animated objects containing sounds might not parse correctly.
- Fix: Some palleted PNG files with an odd width, less than a scanline length failed to load.
- Fix: VSync option not remembered. (AmberIsFrozen)
- Hacks: Update brackets in station name fix.
- Hacks: Fix some buggy objects in Ryoso.
- Hacks: Fix transparency in Kurumigasaki Railway signs.
- Compatability: Add a large number of files to the compatability database.
Significant Changes:
- Fix: Several edge-cases in the new block parser.
- Fix: Permille gradient display incorrect.
- Fix: TrackFollowerFunction with no axles set failed to work correctly.
- Fix: An object using an invalid (non-zero) state as hidden could be incorrectly shown on introduction.
- Change: Pre-load all variants of a texture, not just ClampClamp if preloading is selected.
- Change: Improve vertex de-duplication algorithm for a considerable speedup.
- Change: Update openal-soft to v1.24.3
- Change: Update OpenGL related error strings to reflect minumum GL4.3 in new renderer.
This build contains one significant new feature: Particle (smoke) trails.
These are only available for XML based trains, and smoke volume is currently only power based, but more subjects etc. are planned to be added.
The current version of this build is 1.11.2.2, which fixes an issue launching the game on systems using the OpenGL main menu solely.
Significant Changes:
- New: Add particle system to XML trains.
- New: Implement DeclData template in the NewXParser
- New: Add RailAnnounce and RailAnnounceAll commands.
- New: Add PreTrain / RunInterval to TFO XML.
- Change: Use the new block parser in a couple more places.
- Change: Force close viewer windows under Mono to stop hanging processes.
- Change: Remove the use Prism.Mvmm library, by cloning the class we use- The current version is no longer MIT licenced.
- Change: Improve the handling of visibility update locks on reload in Route Viewer.
- Change: Use lower object optimisation threshold for the BVE5 Seoul Metro route.
- Change: Combine marker drawing routines into the common renderer.
- Fix: IgnoreW should be true for root matrix transforms in AssimpXParser.
- Fix: Potential SanYingInput crash on joysticks with more buttons than axis.
- Fix: Correct some erroneous error text in the CSV / RW route parser.
- Fix: Remove a couple of spurious errors generated by the new block parser.
- Fix: Directly creating a texture with an invalid path could crash.
- Fix: Correct blending of object based backgrounds using partial transparency.