BWAPI
The Brood War Application Programming Interface (BWAPI) is a free and open
source C++ framework for creating AI modules for Starcraft: Broodwar. Using
BWAPI, programmers can retrieve information on players and individual units
in Starcraft as well as issue a wide variety of commands to units, opening
the doors for custom AIs with new micro and macro algorithms.
这是为 StarCraft AI 竞赛的服务的开发接口,也就是用代码玩 StarCraft。
提供了一个C++的编程接口,可自由编程生成dll格式的AI文件,而后通过注入程序Chaoslauncher或MPQDraft即可加载到 StarCraft。注入也就是 Windows 系统的 Hook 技术的应用。
参考:Hook Windows NT (http://blog.csdn.net/winsenjiansbomber/article/details/16891189)
-
示例代码:Hook API mingw DLL WH_MOUSE
2013 StarCraft AI Competition Files (BroodWar 1.16.1, BWAPI 3.7.4)
http://webdocs.cs.ualberta.ca/~cdavid/starcraftaicomp/media.shtml
http://webdocs.cs.ualberta.ca/~cdavid/starcraftaicomp/report2013.shtml
这是一个尝试用C++代码以及LUA语言操纵星际中的兵种的API项目,是一个开源的项目。至今为止,已经做到了获取星际内存底层的各种建筑,兵种数据,并且操纵各种兵种作出各种动作--也就是星际的API基本完成了。下一步,是希望更多的人应用这个API,制作属于自己的星际AI。
在母巢之战的应用编程接口(bwapi)是一个自由和开放源码+框架创建智能模块星际争霸:母巢之战。使用bwapi,程序员可以检索信息并且个人可以在星际发布各种命令,AI程序可以采用宏观算法和微观算法。
默认情况下,bwapi不仅揭示了可见的部分游戏状态智能程序。消息的单位必须要在非战争迷雾中接受信息。这使得程序员编写竞争而非欺骗的程序,必须规划和经营信息条件下。此外,bwapi禁用默认星际争霸的图形用户界面,使用户的作用,观众,而人工智能模块玩游戏。这是为了确保获得人工智能与智能匹配是完全基于编程和算法。对于人工智能模块本身,不是由人的援助和干预的。
Google Code 主页 : http://code.google.com/p/bwapi/
BWAI主要由以下三大模块组成.
BWAPI 是一切的基础: http://code.google.com/p/bwapi/
BWTA 是 BroodWar 地图解析器工程 : http://code.google.com/p/bwta/
BWSAL 是 BroodWar 标准扩展库 : http://code.google.com/p/bwsal/
downloads:
http://bwapi.googlecode.com/files/BWAPI_Beta_2.4.zip
Visual Studio 2012 (C++) 开发环境
1. 下载BWAPI源代码包:bwapi-4.0.1-Beta.tar.gz
https://github.com/bwapi/bwapi/releases
这是官方使用 Visual Studio 2010 Express 编译的版本。
2. 修改 revisionUpdate.bat
因为官方代码使用了SVN版本服务,会编译时,会使用这个脚本来更新程序的版本,如果没有绑定 git 就要禁用它,安如下修改:
> svnrev.h echo static const int SVN_REV = (4462+1%X%);
3. 在根目录即revisionUpdate.bat上级目录下添加以下目录结构
bwapi-4.0.1-Beta/bwapi/lib
bwapi-4.0.1-Beta/Release_Binary/lib
4. 使用 Windows SDK 环境启动 Visual Studio 2012:
WinSDK 7.1 为例:
Microsoft Windows SDK v7.1 -> Windows SDK 7.1 Command Prompt
setevn /x86
start devenv
因为是 x86 平台编译,请确认安装SDK时包含 x86 的文件。编译时会遇到各式各样的问题,用心看给出的错误或警告信息啦。
先编译 BWAPI 框架工程:
bwapi-4.0.1-Beta\bwapi\bwapi.sln
再编译例子工程:
bwapi-4.0.1-Beta\Release_Binary\ExampleProjects.sln
这样就会得到所有需要的DLL,或程序文件,根据 README 的文件指示,逐个将文件拷贝到目标文件夹。
使用已编译AI工程示例:
1. 运行Example AI Module
复制Release/ExampleAIModule.dll到
/bwapi-data/AI/ExampleAIModule.dll
编辑/bwapi-data/bwapi.ini:把"ai"节点设为bwapi-data/AI/ExampleAIModule.dll
启动Chaoslauncher,选中BWAPI Injector,也可选中W-MODE让程序在窗口中运行
用Chaoslauncher启动星际并创建一个游戏,此 AI 会自动制造矿工,并按排其进行开采工作。
2. 运行Example AI Client
编辑/bwapi-data/bwapi.ini:把"ai_dll"设为NULL或者不存在的文件名
运行Release/ExampleAIClient.exe
启动Chaoslauncher,选中BWAPI Injector,也可选中W-MODE让程序在窗口中运行
用Chaoslauncher启动星际并创建一个游戏
3. 测试官方竞赛的AI
2013年星际AI大赛的冠军是Skynet,编译好的AI和源程序可从官方网站下载。http://webdocs.cs.ualberta.ca/~cdavid/starcraftaicomp/media.shtml
http://webdocs.cs.ualberta.ca/~cdavid/starcraftaicomp/report2013.shtml
胜数排名如下:
Benzene Heartbr Destina Aztec TauCros Empireo Androme Circuit Fortres Python
UAlbertaBot 80 % 73 % 82 % 75 % 86 % 85 % 87 % 87 % 79 % 87 %
Skynet 68 % 65 % 62 % 68 % 66 % 80 % 75 % 79 % 85 % 75 %
Aiur 61 % 67 % 66 % 55 % 52 % 56 % 59 % 52 % 68 % 62 %
Ximp 60 % 56 % 71 % 59 % 62 % 57 % 62 % 52 % 0 % 70 %
Xelnaga 48 % 56 % 45 % 61 % 50 % 53 % 31 % 45 % 62 % 43 %
ICEStarCraft 50 % 54 % 48 % 52 % 57 % 41 % 45 % 47 % 52 % 28 %
Nova 30 % 23 % 20 % 24 % 22 % 22 % 36 % 28 % 35 % 30 %
BTHAI 0 % 2 % 2 % 2 % 1 % 2 % 2 % 7 % 15 % 2 %
把Skynet.dll复制到/bwapi-data/AI/
编辑/bwapi-data/bwapi.ini:把"ai"节点设为bwapi-data/AI/Skynet.dll
用Chaoslauncher启动星际。可以在网站上下载replay包,解压到 /maps/replays 目录,进入游戏后可以加载并观看竞赛现场的争斗。试看了一下 Skynetr 的对战策略,完全就是国粹——游击战,在 006-SKYNET_VS_AIUR.REP 中轻松将 AIUR 放倒!
用 Chaoslauncher 的 W-Mode 插件可以将星际争霸窗口化运行,通过使用Alt+F1限制光标,F9双倍尺码等等功能,可以很方便地执行AI调试工作,阅读插件的 README 会有详细的使用说明。


BIN编译下载请稳步:http://pan.baidu.com/s/1jG6wSQy#dir/path=%2Fshare%2F%E6%B8%B8%E6%88%8F%2F%E6%98%9F%E9%99%85%E4%BA%89%E9%9C%B8