星际争霸1真的是儿时的回忆,1999年那时候网吧都是个稀奇事物。那时本人小学,放学了偷跑去网吧,看人玩星际1.04就是一个下午。儿时最大梦想是可以有自己的电脑,不限时间玩星际争霸。2005年第一台电脑,装的第一个游戏就是星际争霸。大学毕业的时候接触到bwapi相关的东西,打开了全新的大门。随着GOOGLE对于DL,RL的突破,星际争霸这个RTS游戏界的鼻祖,又有了新的生命。为AI世界提供虚拟环境,演练算法。

BWAPI:Brood War Application Programming Interface(血巢之战程序通用编程接口)

下面是github的BWAPI解释介绍:

The Brood War Application Programming Interface (BWAPI) is a free and open source C++ framework that is used to interact with the popular Real Time Strategy (RTS) game Starcraft: Broodwar. Using BWAPI, students, researchers, and hobbyists can create Artificial Intelligence (AI) agents that play the game.

在接触BWAPI这几年里面,他的联赛,论坛,资料也是越来越多。联赛2011-2019,论坛,博客

还是打算好好记录一下,学习总结BWAI。不光为了娱乐,更是为了学好AI。

以前安装过名为ualbertabot的AI,是BWAPI 4.4.0下的。今天再装一次。最后,BWAPI不是专业的程序员,对于github,C++,python不是很熟的话,只能慢慢摸索。千里之行始于足下。

步骤1:配置环境

安装vs2019社区版,最好还是使用C++进行,JAVA版本支持不好。

克隆ualbertabot,github上有。

下载一个纯净的星际争霸1.16.1。

下载BWAPI 4.4.0。

安装Visual Studio

  1. 从Microsoft网站安装Visual Studio 2019,这可能需要几分钟
  2. 仅需要C ++开发选项

安装星际争霸

  1. 安装StarCraft:Broodwar版本1.16.1(这是唯一可以使用的版本)。
  2. 我强烈建议安装路径短且没有空格,例如 c:\Games\Starcraft
  3. 在此步骤之后连接到Battle.net或运行任何游戏修补程序都会中断安装,您需要从头开始重新安装Starcraft(注意:这是指在BW中连接到bnet,而不是现代的bnet启动器程序)

安装BWAPI

  1. 确保将BWAPI安装到目录中,目录名称中没有任何空格。这是由于在UAB项目中使用了不喜欢空格的Windows环境变量。我强烈建议将其c:\libraries\BWAPI_440作为安装BWAPI 4.4.0的目录
  2. 使用BWAPI exe安装程序,或将.7z文件提取到安装目录
  3. 将文件从BWAPI的StarCraft文件夹复制到您的StarCraft安装目录中
  4. 将文件从BWAPI的Windows文件夹复制到您的c:\Windows目录或StarCraft目录中

Windows环境变量

  1. UAlbertaBot项目利用Windows环境变量来查找BWAPI库文件的位置。这样做是为了使项目可以在任何系统上编译而无需更改项目文件本身。
  2. 打开“开始”菜单,键入,env然后出现编辑环境变量的选项
  3. 创建一个名为的Windows环境变量BWAPI_DIR。这个变量的值应该是BWAPI安装目录的完整路径(例如:c:\libraries\BWAPI_440

步骤2:编译BWAPI和UAlbertaBot

编译BWAPI 4.4.0

  1. BWAPI_DIR/ExampleProjects.sln在VS2019中打开VS解决方案文件
  2. 对于BWAPILIBBWAPIClient项目:在项目上单击鼠标右键,Properties在左侧菜单中选择,然后Platform Toolset在右侧菜单中将更改为Visual Studio 2019 (v142)。请确保对左上角选择的ReleaseDebug配置都执行此操作。由于BWAPI最初是使用VS2017创建的,因此此步骤是必需的。
  3. 右键单击并BuildBWAPILIBBWAPIClient项目。这将生成UAlbertaBot将链接到的必需的LIB文件。请确保同时在ReleaseDebug模式中构建,这是在上方工具栏中选择的。
  4. 如果正确完成,则应在BWAPI安装目录中创建两个文件夹:ReleaseDebug。这些文件夹中的每一个现在都应包含BWAPILIB.libBWAPIClient.lib,它们将由UAlbertaBot项目在下一步中通过环境变量值链接

编译UAlbertaBot

  1. UAlbertaBot/VisualStudio/UAlbertaBot.sln在Visual Studio 2019中打开
  2. 选择ReleaseDebug模式。该Debug版本的运行速度会慢得多,因为它会在调试时跟踪所有变量。如果要尽快运行漫游器,请选择ReleaseDebug模式编译速度更快,建议用于开发。
  3. 右键单击BuildUAlbertaBot项目(将创建所有项目)
  4. 编译后的可执行文件将转到UAlbertaBot/bin目录
  5. 根据是在Release还是Debug模式下编译,生成的exe文件将分别是UAlbertaBot.exeUAlberaBot_d.exe

步骤3:运行UAlbertaBot和Starcraft

为了在Starcraft中使用基于BWAPI的机器人,您必须通过ChaoslauncherBWAPI附带的程序运行Starcraft 。Chaoslauncher将BWAPI .dll文件注入Starcraft,以便它可以与您的机器人通信。Chaoslauncher的可执行文件Chaoslauncher.exe位于,并且位于中BWAPI_DIR/Chaoslauncher/。Chaoslauncher可以在系统上的任何位置运行,因此可以将其保留在BWAPI目录中,但是我建议在任务栏上为其创建快捷方式,因为您将经常使用它。还有一个多实例版本,允许您同时运行多个Starcraft实例。

  1. 确保Chaoslauncher.exeStarcraft.exe设置为以管理员身份运行。右键单击该.exe文件,选择PropertiesCompatibility>检查Run as Administrator
  2. 跑 BWAPI_DIR/Chaoslauncher/Chaoslauncher.exe
  3. 根据自己的喜好编辑UAlbertaBot配置文件。默认情况下,配置文件位于bin/UAlbertaBot_Config.txt。该文件必须与UAlbertaBot.exe。除非您熟悉漫游器及其配置,否则请跳过此步骤。
  4. 确保BWAPI 4.4.0 Injector Release在Chaoslauncher中选中了该选项
  5. 运行UAlbertaBot以下两种方法之一:1)从VS运行(通过单击Local Windows Debugger上方),或2)bin/UAlbertaBot.exe通过双击文件或从控制台运行文件来运行文件
  6. 该机器人现在应该在自己的控制台窗口中运行,Game table mapping not found每秒打印一次。这将一直持续到Starcraft使用BWAPI运行为止,届时机器人将自动连接到Starcraft并运行
  7. Start在Chaoslauncher中单击以运行《星际争霸》,游戏开始时UAlbertaBot将连接
  8. 第一次执行步骤7时,Chaoslauncher可能会抱怨它不知道Starcraft的安装位置。单击Settings窗口顶部的选项卡,然后编辑Installpath目录。
  9. 星际争霸里面使用开始游戏Single PlayerExpansionPlay Custom,选择任何标准的多人地图和使用Melee设置启动。注意:漫游器不能与多个对手一起使用,也不能与单人游戏一起使用。

注意:默认情况下,bot可执行文件UAlbertaBot.exe已编译并放置在binUAlbertaBot项目的目录中。该文件实际上可以从系统上的任何位置运行,但是它必须与bot的配置文件位于同一目录UAlbertaBot_Config.txt中,默认情况下,该文件也位于该bin目录中。

步骤4.开发周期

首次启动并运行所有功能后,建议您使用以下工作流程:

  1. 在开发过程中保持Chaoslauncher打开,没有理由将其关闭
  2. BWAPI.ini文件编辑为AUTO_MENUon,以便您不必在每次运行游戏时都选择Starcraft设置(请参见下文)
  3. 在VS中更改代码后,只需单击Local Windows DebuggerVS中绿色箭头旁边的按钮即可运行漫游器,然后在Chaoslauncher中单击“开始”。这将首先运行UAlbertaBot,然后启动Starcraft
  4. 最后,必须先关闭Starcraft和UAB,然后才能再次编译bot。您只需关闭“星际争霸”窗口即可,该窗口将自动停止该UAlbertaBot.exe过程。

开发者注意:开发机器人并不得不多次运行时,手动导航Starcraft菜单变得非常繁琐。您可以配置BWAPI.ini文件以使用该AUTO_MENU功能,该功能将使用您的输入设置来自动选择要玩的地图和种族。我建议在开始进行bot开发之前,先使其工作。要编辑BWAPI.ini文件,请先BWAPI 4.4.0 Injector [RELEASE]在Chaoslauncher内部选择,然后单击Config右侧的按钮。这将Starcraft/bwapi-data/BWAPI.ini在记事本中打开文件。

有关BWAPI配置文件的完整详细信息,请点击此处

感谢UAlbertaBot原作者写的安装说明。

BWAI学习记录001_星际争霸BWAPI 4.4.0下AI(ualbertabot)配置安装相关推荐

  1. 多智能体强化学习环境【星际争霸II】SMAC环境配置

    多智能体强化学习这个领域中,很多Paper都使用的一个环境是--星际争多智能体挑战(StarCraft Multi-Agent Challenge, SMAC).最近也配置了这个环境,把中间一些步骤记 ...

  2. AlphaStar再升级:多智能体强化学习玩《星际争霸2》,排名超99.8%人类玩家

    [进群了解最新免费公开课.技术沙龙信息] 作者 | DeepMind 译者 | 刘畅 编辑 | Jane 出品 | AI科技大本营(ID:rgznai100) AlphaStar是第一个在没有任何游戏 ...

  3. DeepMind刚向星际争霸 II 的玩家们下了战书!你的对手可能是只AI,而你毫不知情...

    大数据文摘出品 欧洲的星际争霸玩家们即日将有机会和Deepmind AI打场比赛了! 出战的AI是由DeepMind和暴雪联合培养的,经过了"特别的训练方式",在星际争霸界 II ...

  4. eclipse maven配置_Gradle学习记录015 声明仓库,检查依赖,管理依赖的配置

    本片由三部分组成,第一部分声明仓库的参考链接如下: https://docs.gradle.org/current/userguide/repository_types.html 第二部分检查依赖的依 ...

  5. BWAI学习记录003_使用Chaoslauncher和AI(Stardust)人机对战

    在sscaitournament上面Stardust2020年排名第一. 前提你需要安装BWAPI4.40.这个AI是基于这个版本API写的. 第一步 从Stardust的GITHUB下载C++源码. ...

  6. python学习记录之---------PYQT5做工具(2)下拉选项框的使用

    工具/版本 (1)安装环境:Windows7 64bit (2)使用版本Python3.6 (3)PYQT5 (4)eric6-6.1.0 基本的使用前文有介绍,直入正题 初始形态 选择省份后,列出对 ...

  7. Nodejs入门学习,nodejs web开发入门,npm、express、socket配置安装、nodejs聊天室开发

    一.Node.js:服务器端的 JavaScript 运行环境,它具有无阻塞和事件驱动等特色,采用 V8 引擎,实现了类似 Apache 和 Nginx 的 Web 服务,让你可以通过它来搭建基于 J ...

  8. 项目记录:solr4.2 在tomcat7 的两种(singlecore + multicore) 配置安装 及solrj 的初步使用...

    第一种方式:singlecore 1.将solr4.2解压,  拷贝solr-4.2.0\dist\solr-4.2.0.war 至tomcat里的webapps文件夹下,改名成solr.war 2. ...

  9. DeepMind:星际争霸2:强化学习新挑战(论文翻译)

    星际争霸2:强化学习新挑战 原文下载链接:https://deepmind.com/documents/110/sc2le.pdf 整个论文分为: 摘要(Abstract) 1.介绍(Introduc ...

最新文章

  1. java与.net比较学习系列(7) 属性
  2. Linux 使用者身份與群組記錄的檔案
  3. jax-rs jax-ws_什么是JAX-RS注释? (第2部分)
  4. mysql for mac中文_mysql for Mac 下创建数据表中文显示为?的解决方法
  5. python找出录取率最高的年份_Python分析42年高考数据,告诉你高考为什么这么难?...
  6. ROCKOUT软件测试工程师,具透丨这才是让 iMessage 变得好玩有用的原因:iMessage App Store 详解...
  7. Vue keep-alive实践总结
  8. 苹果春季发布会已开启直播;滴滴回应网约车司机被害​;微软Chromium内核浏览器曝光 | 极客头条...
  9. C# WinForm开发系列
  10. 钢琴自学app开发(原生代码)
  11. 数据库性能优化的五种方案
  12. 教你30分钟快速搭建直播间
  13. Android AVD 存放路径修改
  14. String转十六进制,十六进制转String,字符串转十六进制,十六进制转字符串
  15. 坦克大战的网络对战实现C++(客户端+服务端)
  16. pmos管驱动原理图
  17. 爱企查青龙可跑 一个月一张爱奇艺月卡最细教程
  18. php是什么症状脾虚什么症状怎么治,脾虚可能会产生什么症状呢?该如何治疗?...
  19. ubuntu与centos哪个更适合做服务器。
  20. 软件设计师:07-法律法规与标准化与多媒体基础

热门文章

  1. win10下Light-GBM(LGB)安装
  2. java断路器触发条件_断路器,AOP实现断路器模式 ------------Hystrix
  3. python测试理论-9-6
  4. Android 色板
  5. 【题库】上海学校心理咨询-普通心理学-考点解析 4.4 知觉的特征
  6. 8188EU 在AM335X MC183上以AP+STA工作
  7. eclipse各版本说明与区别
  8. python基础-闰年判断
  9. torch.zeros_like() 和 torch.zeros()的区别
  10. SQLServer截取字符串常用函数