当前位置: 首页 > 工具软件 > Warzone 2100 > 使用案例 >

开源RTS游戏 Warzone2100(2.1beta2) 编译备忘

晋弘义
2023-12-01
href="file:///C:/DOCUME~1/yys/LOCALS~1/Temp/msohtml1/01/clip_filelist.xml" rel="File-List" />

Warzone2100 (http://wz2100.net/home)是一个开源RTS游戏。

 

下载

可参照官方wiki:

MSVC下编译Warzone2100【1】(http://wiki.wz2100.net/Windows_Compile_Guide_%28MSVC%29)

完成如下步骤:

1.下载src,dependence(到官方(http://wz2100.net/home)下载warzone2100- 2.1_beta2.tar.bz2(源代码)和warzone2100-devpkg-2.1-msvc80-20080113.7z (dependences libs)

2.安装flex2.5,bison1.8,(本人安装在H:/Program Files/GnuWin32,并将H:/Program Files/GnuWin32/bin加入环境变量path中(当前用户的环境变量就可以))

在VC下如何启用flex、bison,可参见http://msdn2.microsoft.com/en-us/library/aa730877(VS.80).aspx

 

 

 

代码目录结构

3.解压warzone2100-2.1_beta2.tar.bz2至SRC_ROOT(例如J:/dev/warzone2100/warzone2100_src)。解压后SRC_ROOT含有AUTHORS,COPYING等文件

 

4.解压warzone2100-devpkg-2.1-msvc80-20080113.7z至SRC_ROOT。解压后应有SRC_ROOT/devpkg/include这样的目录结构。

 

5.后续编译会发现SRC_ROOT/devpkg/include中缺少文件。解决方法如下:

参照【2】(http://download.gna.org/warzone/development/devpkg/2.1/msvc80/)页面下方,其说明了dependences中的各个库的版本,

可以在【3】(http://sourceforge.net/project/showfiles.php?group_id=23617)下载【2】中的各个库,libpng-1.2.24-setup.exe,zlib-1.2.3.exe,libvorbis-1.2.0 (http://xiph.org/downloads/),libogg-1.1.3 (http://xiph.org/downloads/)

将相应的头文件拷贝到SRC_ROOT/devpkg/include/目录下,最终SRC_ROOT/devpkg/include/目录结构应该如下:

./

  physfs.h

  png.h

  pngconf.h

  popt.h

  poptdll.h

  zconf.h

  zlib.h

├─AL

      al.h

      alc.h

      efx-creative.h

      EFX-Util.h

      efx.h

      xram.h

├─GL

      glc.h

      glew.h

      glxew.h

      wglew.h

├─ogg

      config_types.h.in

      Makefile.am

      Makefile.in

      ogg.h

      os_types.h

├─SDL

     ****(SDL各个头文件,无需改动,故此处省略)

└─vorbis

        codec.h

        Makefile.am

        Makefile.in

        vorbisenc.h

        vorbisfile.h

可下载【P1】《编译warzone2100.2.1beta2.rar覆盖source code 2.1beta2即可。

 

 

 

编译链接

6.打开SRC_ROOT/wind32/Warzone2100.sln,开始编译。

(---------可选----------

如果想在vc下调试,Ctrl+F5直接执行的话,可以作如下设置:

(debug mode )

Warzone2100属性页-》配置属性-》链接器

输出文件:$(OutDir)/$(ProjectName)d.exe

Warzone2100属性页-》配置属性-》调试

命令:$(ProjectName)d.exe

工作目录:J:/dev/warzone2100/warzone2100_src/data

(即运行J:/dev/warzone2100/warzone2100_src/data/Warzone2100d.exe,而exe所在目录正好是 data目录,所以命令参数栏省略了(官方说需要带命令行参数--datadir XXX 以指定data目录XXX)。)

 

(release mode )

Warzone2100属性页-》配置属性-》链接器

输出文件:$(OutDir)/$(ProjectName)r.exe

Warzone2100属性页-》配置属性-》调试

命令:$(ProjectName)r.exe

工作目录:J:/dev/warzone2100/warzone2100_src/data

即运行J:/dev/warzone2100/warzone2100_src/data/Warzone2100r.exe,

此步骤中,如果有问题,可尝试重新生成Warzone2100.vcproj即可。

(【P1】中包含了此修改)

---------------------)

 

 

编译链接可能会遇到如下问题:

1)

bison.exe不是外部命令,也不是内部命令

解决方法:

安装bison-1.875-4.exe到H:/Program Files/GnuWin32/bin

进入MSVC-》工具-》选项-》项目和解决方案-》VC++目录

可执行文件目录下添加:

H:/Program Files/GnuWin32/bin

 

2)

Main.obj link error:无法解析的外部符号_initI8n,

Main.obj link error:无法解析的外部符号_getLanguage

解决方法:

framwork.vcproj中添加

SRC_ROOT/lib/framework/i18n.h

SRC_ROOT/lib/framework/i18n.c

2.1beta工程中没有添加这两个文件导致link error)

P1】中包含了此修改

 

7.

开始编译、链接。编译连接的最后阶段会自动将Warzone2100.exe拷贝到SRC_ROOT/data/目录下。

 

 

 

运行

8.运行前的配置

warzone2100.exe需运行在SRC_ROOT/data/目录下,

拷贝SRC_ROOT/devkpg/lib/*.dll SRC_ROOT/data/

搜索vc目录下的dbghelp.dll,msvcp80d.dll,msvcr80d.dll,并拷贝到SRC_ROOT/data/

拷贝SRC_ROOT/devpkg/lib/etc SRC_ROOT/data/etc

 

按照【4http://wiki.wz2100.net/Compile_Guide)给出的地址【5http://dejavu.sourceforge.net/),

下载dejavu-fonts-2.24.zip,

dejavu-fonts-ttf-2.24.zip,

dejavu-sans-ttf-2.24.zip,

dejavu-lgc-fonts-ttf-2.24.zip,

将这些压缩包中的*.ttf拷贝到%system%/fonts目录下(windows2000%system%/fonts=C:/WINNT/Fonts)

 

运行,应该OK.

 

 

 

 

 

 

可以通过IRC和开发者及时交流,他们在IRC里比较活跃.【5】(http://wz2100.net/chat)

 

 类似资料: