当前位置: 首页 > 资讯

【原创】CommandCenter 整合星际1和星际2的AI机器人开发框架

机器人之家       2017-10-30

CommandCenter是一个基于C++的AI机器人框架,整合了BWAPI(星际1的第三方API)和暴雪官方的星际2 API. Commandcenter对BWAPI和星际2 API的封装,允许开发者编写同时适用于星际1母巢之战和星际2的代码。


CommandCenter的架构以UAlbertaBot为基础,UAlbertaBot是基于BWAPI开发的AI机器人,曾在2010年度的AIIDE星际AI争霸赛中获得冠军。CommandCenter和UAlbertaBot的主要不同在于:


CommandCenter是开发框架,便于开发者基于CommandCenter快速开发自己的机器人。而UAlbertaBot是AI机器人。

CommandCenter同时支持星际1和星际2. UAlbertaBot只支持星际1.

CommandCenter


特性


同一段代码可以同时运行在星际1和星际2上。

适用于3个种族的通用宏控制。

在线地图分析。

记录先前遇到的敌对单位(包括它们当时在地图上的位置)。

内建用于管理资源采集、建造、农民的WorkerManager.

支持在游戏中创建和修改建造指令。

内建建筑放置算法,指定位置和建筑类型,找到最近的可建位置。

放出工兵侦查敌人基地位置。

当特定的条件达成时(比如人口达到12时),发起一波针对敌方基地的攻击。

支持组成和操作小队。

支持JSON格式的配置文件,用于配置基本参数和初始建造指令。

安装


星际1母巢之战:需要安装星际1母巢之战(1.16.1版),以及BWAPI.


星际2: 星际2客户端和地图。具体步骤可参考此文。


然后是编译安装CommandCenter.


CommandCenter支持Linux和Mac OS X,不过,BWAPI不支持Linux和Mac OS X,因此在这2个平台下CommandCenter只支持星际2 API.


首先编译星际2 API的官方C++库:


git clone --recursive https://github.com/Blizzard/s2client-api

cd s2client-api

mkdir build

cd build

cmake ../

make

安装相应的库和头文件:


cd ../


# SC2头文件

sudo cp -R include/sc2api /opt/local/include

sudo cp -R include/sc2utils /opt/local/include

sudo cp -R build/generated/s2clientprotocol /opt/local/include


# protobuf头文件

sudo cp -R contrib/protobuf/src/google /opt/local/include/sc2api


# SC2 API库

sudo mkdir /opt/local/lib/sc2api

sudo cp build/bin/libcivetweb.a /opt/local/lib/sc2api

sudo cp build/bin/libprotobuf.a /opt/local/lib/sc2api

sudo cp build/bin/libsc2api.a /opt/local/lib/sc2api

sudo cp build/bin/libsc2lib.a /opt/local/lib/sc2api

sudo cp build/bin/libsc2protocol.a /opt/local/lib/sc2api

sudo cp build/bin/libsc2utils.a /opt/local/lib/sc2api

编译CommandCenter:


git clone https://github.com/davechurchill/commandcenter.git && cd commandcenter

cmake .

make

文档


CommandCenter的开发手册尚在编写中,目前可参考UAlbertaBot的文档,或直接查看源代码。


机器人网原创文章,未经授权禁止转载。详情见转载须知

本文来自机器人网,如若转载,请注明出处:https://www.jqr.com/news/008309


关键词:机器人