/OpenBVE

OpenBVE- A free train simulator

Primary LanguageC#

Build Status

Build status

OpenBVE Source Code - Readme

This repository contains the source code for the Train Simulator OpenBVE, a 3D cab based simulator.

The simulator supports the following route formats:

  • Native CSV / RW.
  • BVE5 TXT format.
  • Mechanik DAT format.

OpenBVE is built in OpenGL, using the OpenTK framework for windowing.

Fixed Errata

These are described fully here.

Nightly Builds

Automatically generated daily builds are available here.

Developer Documentation

Documentation for development of add-ons (update version of docs originally written by michelle) can be found here.

Packages

OpenBVE now supports the installation of 'package files' , which are intended as a replacement for the now defunct managed content. These are described fully here.

How to build

This build has been tested to compile correctly using Visual Studio 2017 onwards and MonoDevelop. These are described fully here.

Contributing

Please see the Contributors File for a list of contributors, and basic guidelines for contributing to the development of OpenBVE.

Links

Project Website:

https://openbve-project.net

Project Source Code on GitHub: https://github.com/leezer3/OpenBVE

Discussion Boards:

Official Project Forum:

http://bveworldwide.forumotion.com/f14-the-sim-in-time-general-discussion

License

The original founder of this project, Michelle intended for this program to be placed in the public domain. In practice over the last 10+ years I've been maintaining this, we've found that whilst public domain was a noble idea, having no recognised licence and attempting to disclaim copyright tends to produce many of it's own challenges.

As a result, all new code is licenced under BSD-2 or a similar permissive licence (as appropriate)- Please see the source headers.

It is our belief that BSD-2 on new code keeps most of original philosophical aims intact, whilst at the same time giving the benfits of a recognised licence. At some point, the project will probably have to re-licence entirely, but that is somewhere in the future.

In practical terms, what this means is that you can make any modifications to the source like and share your modifications with others. Please also see the following issue for further discussion on the topic: #305

Third-Party Libraries

  • OpenBVE uses CoreFX. This is licensed under the MIT License, which may be found in here.
  • OpenBVE uses CS Script for animation scripting. This is licensed under the MIT License, which may be found in here.
  • OpenBVE uses DotNetZip for loading compressed DirectX file. This is licensed under the Microsoft Public License, which may be found in here.
  • OpenBVE uses NAudio for decoding sound file. This is licensed under the Microsoft Public License, which may be found in here.
  • OpenBVE uses NAudio.Vorbis for decoding Vorbis file. This is licensed under the Microsoft Public License, which may be found in here.
  • OpenBVE uses NLayer for decoding MP3 file. This is licensed under the MIT License, which may be found in here.
  • OpenBVE uses NVorbis for decoding Vorbis file. This is licensed under the Microsoft Public License, which may be found in here.
  • OpenBVE uses OpenTK library for windowing and input handling. This is licensed under the Open Toolkit Library License, which may be found in here.
  • OpenBVE uses Prism. This is licensed under the MIT License, which may be found in here.
  • OpenBVE uses ReactiveProperty This is licensed under the MIT License, which may be found in here.
  • OpenBVE uses SharpCompress for archive handling. This is licensed under the MIT License, which may be found in here.
  • OpenBVE uses Reactive Extensions This is licensed under the Apache License, Version 2.0, which may be found in here.
  • OpenBVE uses Ude for character set detection. This is tri-licensed under the Mozilla Public License v1.1, GPL 2.0 and LGPL 2.0, which may be found in here.
  • OpenBVE uses XamlBehaviors for WPF This is licensed under the MIT License, which may be found in here.
  • OpenBVE uses TOLK for screen reader API access. This is licenced under the LGPL V3 which may be found in here
  • OpenBVE uses BVE_Parsing for parsing BVE5 map grammar. This is licenced under the MIT Licence which may be found in here