Power Overwhelming
星际争霸是什么?
星际争霸是暴雪公司旗下的一款即时策略类游戏(RTS),游戏中,玩家可选择 人类、星灵、异虫 三个种族,进行资源采集和因资源的争夺而引起的战斗。战役部分在此不予详述,自定义战斗的终极目标就是消灭敌人的所有建筑物。
为什么选择星际争霸1?
答案当然是库的支持,星际争霸2尚未有相关支持代码操纵游戏的库,同时通过对屏幕分析从而获取游戏内信息的方式也显得难度过高,而AI编写的主要精力应该放在对人工智能的研究上而非游戏具体的操作(Performance)上。因此,星际争霸1显然是更好的选择。其发行多年,版本稳定,对计算机资源消耗较少,最重要的——有强大的库:BWAPI的支持,它允许我们使用简单的函数来操作游戏内单位的动作,同时可以迅速的获取当前游戏状态(game state)
所以打算进行开发的话我需要哪些东西?
这里给出了一份清单,确保你有以下这些东西:
有了这些东西之后呢?
- 第一步当然是安装星际争霸了,上面给出的链接解压即可运行
- 安装BWAPI和BATA库,用于支持我们所写代码的运行,具体方法就是双击安装包并且不断地下一步,注意记好选择的安装的位置,之后要用到
- 右键单击我的电脑->属性->高级系统设置->环境变量
- 新建一个名叫
BWTA_DIR
的环境变量,内容是你的BWTA
库安装的目录 - 新建一个名叫
BWAPI_DIR
的环境变量,内容是你的BWAPI
库安装的目录 - 以管理员身份运行安装完
BWAPI
所得到的Chaoslauncher.exe
- 根据你在VS2013中build你的AI的模式选择这里的执行模式,如果是
debug
就选择debug
运行模式,否则就选release
- 选择好后此时要单击下方的
config
按钮,修改打开的config文件
,其中: 0. ai=你的AI对应的dll文件所在位置 例:C:\Users\Nathaniel\Desktop\F92\F92\bin\F92.dll 0. ai_dbg=你用debug模式生成的dll文件所在的位置 - 此时算是配置完成了,点击
start
按钮,打开星际争霸1,随便开启一局游戏,即可得到AI控制游戏的效果
关于生成
当然上面没说
dll
文件是哪来的。自然,你需要自己写一个,或者从别人那下载一个,或者是从别人那里clone来的代码然后根据代码生成一个。(欢迎clone 我的repo),生成的时候,记得修改对应的config文件位置为你的实际config文件地址。这里注意,由于Windows使用了\
作为目录间隔符,所以在代码中应使用\\
来消除转义效果。理论上,上面这些做好了之后,环境变量设置无误的话,就可以正常生成了,生成的产品自然是一个
dll
文件,之后,我们便可以使用这个生成的dll文件进行测试了。如何DEBUG(调试)?
自然,有时候我们需要对我们所写的代码进行debug,而dll文件的特殊性使我们的debug较为特殊,下面是步骤:
- 在VS中生成时选debug模式
- Chaoslauncher中选择debug模式加载带dbg后缀的dll文件
- 运行星际,但是不要开始游戏
- Vs中选择 调试->附加到进程->显示所有用户的进程->找到starcraft.exe->选中
- 这时候可能VS需要重启,没关系,让他重启
- 在星际里面开始游戏
- 这时候debug模式下,可以单步执行代码,进行调试了
其他小细节
- config文件内的dll目录只需要一个
\
即可,另外也可以使用相对目录 - Chaoslauncher中勾选
W-MODE
可以以窗口模式进行游戏,方便在游戏与代码之间切换