Quake 1这个游戏就不用多说了,和它的2,3代一样很红,而且是开源游戏,在游戏引擎架构一书里被强力夸奖。
然而实际上要编译很麻烦,网上也没有现成的教程,所以在被坑几百遍之后来写个教程。

id-software的Quake初代github地址:https://github.com/id-software/Quake
先克隆一份。
然后再克隆一份https://github.com/rictorres/quake-ktx-server
为的是里面的主文件夹 id1,后面要用到。

接下来创建Windows XP虚拟机,目的是在里面用vc++ 6.0,carmark大神在Quake的readme里面说了这个项目一开始就是在vc++6.0里面测试是可以编译的。(我自己用vs2017编译遇到了数不胜数的巨坑!)

xp with sp3的镜像的百度云:fuck,百度云不给分享镜像,说里面有敏感信息。。。算了你们自己找个镜像安装上虚拟机吧。

然后下载vc++6.0 百度云:https://pan.baidu.com/s/19tGm3h2-8zo1_zDXi7rfvg
提取码:3fws

系统安装之后安装上vc++6.0,注意安装的时候选择英文版,然后打开之前克隆的Quake文件夹,打开winquake文件夹,打开WinQuake.dsw。

有两个工程一个是gas2masm编译器,一个是游戏本体winquake。winquake的编译依赖gas2masm的编译结果,所以我们分开编译。先在debug模式下编译gas2masm(一定要debug模式!),再随便哪个模式下编译winquake。

勾选下图的Build然后就能看到选择项目和编译模式的窗口

编译Quake 1的经历

选择gas2masm debug模式

编译Quake 1的经历

然后按f7 build

编译Quake 1的经历
就能编译成功了

然后再选择winquake 随便哪个模式,这里用win32 release

然后编译,就能开心的发现有1个error,原因是缺ml。
这个ml还很讲究,不能是普通的ml,还得是来自98年ddk的ml。。。
找这东西的时候真的崩溃。为了方便就不让你们找了:https://pan.baidu.com/s/1b9aY9am_R48MPKE6-s88Zw
提取码:6u6g

解压后别setup,打开CABS\i386文件夹,打开里面的BINS_DDK压缩包,找到里面的BINS_WIN98_ML.ERR 和BINS_WIN98_ML.EXE ,拉出来分别重命名为ml.err和ml.exe。

然后找到安装的vc++6.0的文件夹,我的是这样C:\Program Files\Microsoft Visual Studio\VC98\Bin
把之前的ml.exe和ml.err复制进去
编译Quake 1的经历
然后再编译之前的winquake项目:
编译Quake 1的经历

这时候打开项目文件夹能找到release文件夹,打开里面的可执行文件winquake
编译Quake 1的经历
不出意外的话会报错W LoadWadFile : couldn't load gfx.wad

这时候在之前要你克隆的quake-ktx-server里面拉出来id1文件夹放在游戏可执行文件所在的目录,

编译Quake 1的经历

肯定就能看到爽快的游戏啦
编译Quake 1的经历

本文原创禁止复制=。=

话说编译这个东西比编程本身难多了。。。。。。。。。。

相关文章: