星际争霸2机器学习API安装

DeepMind星际争霸2API原网站: https://deepmind.com/blog/announcements/deepmind-and-blizzard-open-starcraft-ii-ai-research-environment

暴雪星际争霸2API github库: https://github.com/Blizzard/s2client-proto

视频资料: https://www.youtube.com/watch?v=v3LJ6VvpfgI

 

1.准备工作:

下载星际争霸2客户端,以及python-sc2的第三方github库文件.

跟随python-sc2的安装指南进行安装(使用pip安装最为简单),

(py-sc2是deepmind制作的API但是由于其相对复杂,所以使用python-sc2进行初学入门)

在s2client-proto库中下载天梯比赛的地图,全部下载.

在游戏安装目录下新建Maps文件夹,将下载的zip文件进行解压(直接解压到当前文件夹)

压缩文件密码在s2client-proto库的README文件中, 由于输入该密码意味着你同意相关协议, 所以请亲自阅读该README文件

验证客户端以及库文件安装成功:

使用官方提供的测试代码:

https://burnysc2.github.io/python-sc2/docs/text_files/introduction.html#installation

 1 import sc2
 2 from sc2.bot_ai import BotAI
 3 from sc2.player import Bot, Computer
 4 
 5 class MyBot(BotAI):
 6     async def on_step(self, iteration: int):
 7         print(f"This is my bot in iteration {iteration}!")
 8 
 9 sc2.run_game(
10     sc2.maps.get("AcropolisLE"),
11     [Bot(sc2.Race.Zerg, MyBot()), Computer(sc2.Race.Zerg, sc2.Difficulty.Hard)],
12     realtime=False,
13 )

 如果提示找不到sc2文件夹则编辑**\Python\Python37\Lib\site-packages\sc2\paths.py中该段代码:(该文件存在于python安装路径中)

BASEDIR = {
    "Windows": "*************************",
...}

 如果提示找不到Maps文件夹,则 在游戏安装目录下新建Maps文件夹,将下载的zip文件进行解压(直接解压到当前文件夹)

正常情况下星际争霸2会弹出一个窗口并以高刷新率进行一场游戏

如果提示使用gdb格式读取错误则需要将对应的代码行更改为encoding = "utf-8"

2.视频讲解:

 

import sc2
from sc2 import run_game, maps, Race, Difficulty
from sc2.player import Bot, Computer 
#Bot是你自己写的算法的接口, Computer是游戏自带AI

class SentdeBot(sc2.BotAI):
#sc2.BotAI用于近似模拟人为操作,BotAI源文件在库文件的安装目录下bot_ai.py内
#提供部分部分简单操作的技术支持
  async def on_step(self, iteration):
        await self.distribute_workers() 
#自动的将12个初始scv分成不同的组进行开采.跟人进行点击采矿的功能一致

        
run_game(maps.get("AbyssalReefLE"),#map name
    [Bot(Race.Protoss,SentdeBot()),#使用种族以及自己定义的类创建玩家对象
    Computer(Race.Terran,Difficulty.Hard)],
    realtime = True#使用真实时间,即是不进行加速
)

 

 

 

 

TUTO2:

学习该系列并没有什么基础知识条件,只是碰到自己不明白的就去查询

 

posted @ 2021-02-01 13:02  NoobSir  阅读(363)  评论(0编辑  收藏  举报