OpenTTD-patches/docs/Readme_Windows_MSVC.md
2019-09-29 21:27:32 +01:00

2.3 KiB

Compiling OpenTTD using Microsoft Visual C++

Last updated: 2018-12-27

Supported MSVC compilers

OpenTTD includes projects for Visual Studio 2015 Update 3 or more recent. You can download the free Visual Studio Community Edition from Microsoft at https://visualstudio.microsoft.com/vs/community/.

Required files

Microsoft platform files

OpenTTD needs the Platform SDK, if it isn't installed already. This can be done during installing Visual Studio, by selecting Visual C++ MFC for x86 and x64 (and possibly Visual C++ ATL for x86 and x64 depending on your version). If not, you can get it at this location:

Install the SDK by following the instructions as given.

OpenTTD dependencies

Dependencies for OpenTTD on Windows are handled via vcpkg. First you need to install vcpkg by following the Quick Start instructions of their README.

After this, you can install the dependencies OpenTTD needs. We advise to use the static versions, and OpenTTD currently needs the following dependencies:

  • liblzma
  • libpng
  • lzo
  • zlib

To install both the x64 (64bit) and x86 (32bit) variants, you can use:

.\vcpkg install liblzma:x64-windows-static libpng:x64-windows-static lzo:x64-windows-static zlib:x64-windows-static
.\vcpkg install liblzma:x86-windows-static libpng:x86-windows-static lzo:x86-windows-static zlib:x86-windows-static

TTD Graphics files

See section 4.1 of README.md for the required 3rdparty files and how to install them.

Compiling

Open the appropriate sln (Solution) file for your version of Visual Studio:

  • VS 2015: projects/openttd_vs140.sln
  • VS 2017: projects/openttd_vs141.sln
  • VS 2019: projects/openttd_vs142.sln

Set the build mode to Release in Build > Configuration manager > Active solution configuration. You can now compile.

If everything works well the binary should be in objs\Win[32|64]\Release\openttd.exe and in bin\openttd.exe

Problems

If compilation fails, double-check that you are using the latest github source. If it still doesn't work, check in on IRC (irc://irc.oftc.net/openttd), to ask for help.