CDDA 简述

CDDA 大灾变,是个不错的游戏。你在扮演一个在末世里幸存的一个普通人、探险家、生存狂、科学家……在这个世界里,你可以肆意破化、屠杀丧尸、建造基地……

不过嘛,这是字符终端下的游戏,额,这个画风不是所有人都可以接受的。

获取源码

不要去官网下载代码编译,官网的代码太旧,估计这个网站很久没更新了吧。而且提供的二进制包是 32 位的,一些库的位置和 64 位不一样。

所以,果断点去 GitHub 吧。

git clone https://github.com/CleverRaven/Cataclysm-DDA.git

开始编译

看看 makefile 吧,里面写了编译的方法,以及如何编译中文版本。

make -j4 NATIVE=linux64 RELEASE=1 LUA=1 LANGUAGES=zh_CN

如果报错没有 lua 就对了,想要使用完整的 mod 功能,就要在编译时加上 LUA=1 ,当然,你可以不用 mod。为了使用 mod 功能,就要安装 lua。

apt-get install lua5.3 liblua5.3-dev

这时执行 make 时依然会报错:没有 lua 命令,注意,这里安装的是 lua5.3,所以 lua 命令是 lua5.3。可以使用软链接解决。

ln -s /usr/bin/lua5.3 /usr/bin/lua

踩坑:编译图形界面版

上面的 make 是编译字符版的,编译 SDL 版时,编译成功,但无法运行,运行会给出个错误:libpng warning: iCCP: known incorrect sRGB profile

我不知道咋办,网上有说 png 图片问题,载入重新覆盖就好,我用 Gimp 试了,不行。也罢,字符界面版玩着更高大上。话说,有大神知道如何解决,告诉我一下啊,感激!!

踩坑:astyle报错

make 会使用到 astyle 这个软件,你可以先安装了试试。一般不安装这个,会提示缺少 astyle,但是不影响编译。如果你安装了,可能会无法编译了,这时,卸了 astyle 可以了。

踩坑:中文乱码

cdda 最近更新的版本,编译后可能会出现中文乱码,我当时编译时看了输出,发现没有链接 ncursesw 库,makefile 里现在链接的是 ncursesw6,然而你的系统现在的 ncursesw 可能还是 ncursesw5。现在奉上解决方案:更改 makefile 的第 566 到 572 行如下:把 ncurses 换成 ncursesw 即可

566:ifeq ($(HAVE_PKGCONFIG),1)
567: CXXFLAGS += $(shell pkg-config --cflags ncursesw)
568: LDFLAGS += $(shell pkg-config --libs ncursesw)
569:else
570: ifeq ($(HAVE_NCURSES5CONFIG),1)
571: CXXFLAGS += $(shell ncursesw5-config --cflags)
572: LDFLAGS += $(shell ncursesw5-config --libs)

这样会强制链接 ncursesw 库,不管系统的 ncursesw 版本是多少,不管 makefile 链接的版本是多少,都会链接 ncursesw。强烈建议,没有出现这个问题的,请不要更改 makefile。更改后,如果以后要更新时,请先撤销 makefile 的更改。