首先,我们配置一套舒服的源码阅读和编译环境。
在这个介绍系列中,我们使用Visual Studio Code作为源码的阅读器,主要原因有两点:
一、c++的函数调用查询(ctrl+鼠标左键) ;
二、历史查询结点跳转(alt+键盘左右键) 。
下载源代码地址:https://gitee.com/mirrors/OpenTTD
使用VSC打开项目后,效果如下:
编译环境 Ubuntu20.04 ,相比windows环境 openttd在Linux下的编译更加简便(windows环境下的vs2019也可以编译openttd,但是相对复杂很多,详见最下面的附录)。另外,我们通过 windows10 的WSL内置ubuntu环境,这样可以方便地调试代码、增加DEBUG、运行编译后的程序。
第一步 windows10下安装 WSL,下载源码
(参考https://docs.microsoft.com/en-us/windows/wsl/install)比较简单,直接用命令行安装即可
完成后,直接用 git clone 命令获取到最新的项目源码
第二步 Ubuntu下安装组件
ubuntu下,安装 git、cmake、sdl2组件,其中sdl2 是调用显示、声音和鼠键的硬件层
apt-get update
apt-get install git
apt-get install cmake
apt-get install libsdl2-2.0
apt-get install libsdl2-dev
( 参考 https://blog.csdn.net/zhouzhenhe2008/article/details/54428761 ubuntu上安装SDL2)
第三步 下载源代码并编译
(参考 https://github.com/OpenTTD/OpenTTD/blob/master/COMPILING.md )
mkdir build
cd build
cmake …
make
一切正常的话,将会在 build目录下生成 openttd 文件,如果直接运行这个文件的话,会报错,大概意思是 无法找到合适的显卡驱动
第四步 启动WSL的远程桌面
(参考 https://blog.csdn.net/CS95DN/article/details/93224607 WSL使用图形界面(ubuntu))
$ sudo apt-get update
$ sudo apt-get install net-tools
$ ifconfig (显示的是本机ip)
$ sudo apt-get install ssh
$ sudo apt-get update
$ sudo apt-get install g++
$ sudo apt install xfce4
$ sudo apt install xrdp
$ sudo sed -i ‘s/port=3389/port=3390/g’ /etc/xrdp/xrdp.ini
(这一步直接改为 修改ini文件的端口就可以了)
$ sudo echo xfce4-session >~/.xsession
$ sudo service xrdp restart
(然后win10 远程桌面Session: Xorg localhost:3390 就可以了)
第五步 远程桌面启动游戏
附录:windows10原生环境编译 OpenTTD
- 下载 vs2019; https://visualstudio.microsoft.com/vs/community/
2.下载win10SDK; https://developer.microsoft.com/en-US/windows/downloads/windows-10-sdk/
Visual C++ ATL for x86 and x64
3.安装vcpkg
[workspace] git clone https://gitee.com/mirrors/vcpkg
[workspace] bootstrap-vcpkg.bat
注意:[workspace]表示vcpkg的安装目录
4.安装四个静态库 * liblzma * libpng * lzo * zlib
[workspace] vcpkg install liblzma:x64-windows-static libpng:x64-windows-static lzo:x64-windows-static zlib:x64-windows-static
5.生成vs的项目文件
D:\tools\cmake\bin\cmake.exe … -G"Visual Studio 16 2019" -DCMAKE_TOOLCHAIN_FILE=“D:\workspace\openttd\vcpkg\scripts\buildsystems\vcpkg.cmake” -DVCPKG_TARGET_TRIPLET=“x64-windows-static”
D:\workspace\openttd\vcpkg\downloads\tools\cmake-3.19.2-windows\cmake-3.19.2-win32-x86\bin\cmake.exe … -G"Visual Studio 16 2019" - DCMAKE_TOOLCHAIN_FILE=“D:\workspace\openttd\vcpkg\scripts\buildsystems\vcpkg.cmake” -DVCPKG_TARGET_TRIPLET=“x64-windows-static”
6.vs2019打开项目 openttd,右键项目名称,设置两个依赖
c/c+±>常规->附加包含目录 : OpenTTD essentials\shared\include
链接器->常规->附加库目录: OpenTTD essentials\win64\library
(zerocheck 项目生成)
7.编译项目并运行,在build的Release下面,从正式的游戏目录下面 复制 baseset和lang,最终效果如下: