vcmi
是英雄无敌三的开源引擎。与fheroes2
类似,它依托于英雄无敌3的游戏数据,使用完全重写、开源的引擎,实现了原版游戏的绝大多数功能。相比于原版游戏,对高清分辨率的支持也更好,譬如增加了宽屏分辨率的支持。vcmi
使用c++
语言编写,依赖库主要包括:boost
,ffmpeg
;图形库使用的是SDL2
。另外,图形启动工具依赖于QT5
。vcmi
支持平台包括Windows
,MacOS
,Android
和Linux
,算是全平台支持了。
不过官方的发布系统好像有点问题,MacOS
版本最新到2019年9月,后面的版本没有构建成功。
英雄无敌3,全称《魔法门之英雄无敌Ⅲ》,是1999年由New World Computing
在Windows
平台上开发的回合制策略魔幻游戏,其出版商是3DO
。在PC版发布之后,3DO
和Loki Software
分别推出了可在苹果机和Linux系统上运行的版本。
该作是魔法门之英雄无敌系列的第三代。游戏情节参照第一次贯穿了《魔法门VI:天堂之令》,并且部分作为了《魔法门VII:血统与荣耀》的前传。玩家可以选择六个战役之中的一个来进行情节模式,也可以选择场景来进行与电脑或其他玩家的对抗。之后,又陆续发布了《末日之刃》、《死亡阴影》两个资料片,后来又发布了《英雄无敌历代记》共计8个战役。
英雄无敌3历来被称为英雄无敌系列的经典之作,可以说是这个系列游戏的巅峰之作。
vcmi
的官网有编译方法的说明,但是有些小的地方有些小问题。特此记录一下,以备后查。本次编译使用cmake
在命令行下面完成。需要确保已经安装了xcode
及brew
。
1. 依赖库安装
1# 安装sdl2,cmake,ffmpeg等
2brew install git cmake sdl2 sdl2_ttf sdl2_image boost ffmpeg minizip
3# 官网安装sdl2_mixer指定了 --with-smpeg2参数,在最新版本上该参数无效
4brew install sdl2_mixer
5# 安装qt5
6brew install qt5
配置环境变量。我使用的是zsh
,所以编辑~/.zshrc
增加如下内容:
1export PATH=/usr/local/opt/qt/bin:$PATH
2export LDFLAGS="-L/usr/local/opt/qt/lib"
3export CPPFLAGS="-I/usr/local/opt/qt/include"
4export PKG_CONFIG_PATH="/usr/local/opt/qt/lib/pkgconfig"
2. 下载源码
1# 创建工作目录
2mkdir -p ~/work/git/github && cd ~/work/git/github
3# 下载源码。使用--recursive下载所有依赖的源码库
4git clone --recursive https://github.com/vcmi/vcmi.git
5# 创建一个编译用的工作目录 cmake
6mkdir cmake && cd cmake
7# 生成make文件
8cmake ../vcmi -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -Wno-devc
请确保之前已经安装好了依赖库,并设置好了环境变量,否则会提示找不到qt5相关的编译信息。
3. 编译
生成make文件之后就可以开始编译了。
1cd ~/work/git/github/cmake
2# 使用cmake编译
3cmake --build . -- -j 4
4. 打包
编译成功后,使用cpack
打包,直接生成安装用的dmg
文件。
1cd ~/work/git/github/cmake
2# 打包生成dmg文件
3cpack
5. 疑难问题解决
编译过程中碰到的问题通常是因为依赖包引起的。如果出现错误,需要仔细查看提示信息,确认跟什么有关系。
如果确认跟某个依赖包有关系,可以尝试brew remove
, brew install
重装依赖包,并仔细查看安装记录,确认是否有需要特殊配置的地方,并安装提示进行配置。