使用API制作星际争霸2AI

项目地址

https://github.com/AI-for-starcraft2
https://github.com/AI-for-starcraft2/mod-for-starcraft2

aphstar

因为图像识别技术不成熟,所以aphstar使用暴雪后台提供的接口来进行识别和检测单位,并不是真正意义像玩家一样操控单位。

aphstar原理

https://github.com/zhoubolei/introRL/blob/master/lecture_alphastar.pdf

很美,不是吗。我原本以为深度学习缺点很多,令人失望的聊天机器人效果,但是这个框架给我看到了希望。

也许未来的游戏ai、聊天机器人、智能机器人可以使用非常庞大的深度强化学习框架来极限接近强人工智能,复杂的系统宏观上体现了规则性,神经网络可以很好的处理细节。

(我在某篇说的很多强化学习论文无法抽象和处理细节规则是另一个角度,RTS游戏实际上规则还是单一简单的胜负博弈,没有很多细小规则和操作的detail。)

受限于时代,我们没有更好的选择。量子计算机,多进制计算机,生物计算机等一系列基础科学因为和平与福利,一直无法突破。

但愿我们在上个时代能做出下个时代的作品。就像历史上的诸葛连弩,手摇加特林,电子管步话机。提前历史做出东西,开历史的倒车都是充满魅力的事情。

当人们团结一心得时候,是可以超越时代的。机巧的搭建规律,撬动命运的车轮。

玩家社区观点

aphstar已经能击败人类职业选手了

但是老玩家认为aphsta并不公平。他们认为aphsta可以通过后台迅速选取建筑,没有任何延迟,而且可以迅速攻击聚团的飞龙中残血的一个,达到优势,这很不公平。

我个人认为starcraft2是个非常不公平的游戏。从1代到2代是个失败的过度。因为打工的印度程序员不是当初那些用爱发电的程序员。这也是现在游戏水准换汤不换药的原因。

从starcraft1中的大兵团和超级魔法的靠战略纯rts游戏,starcraft2变成了1个靠花里胡哨的操作的游戏,变成了小队作战,严重削弱了战略性。这样的话电脑微操当然强于人类。这不是个公平游戏。

现在看来go游戏也不是个完美公平游戏,被电脑找到了其中的破解规律。

sc项目

python的星际争霸2接口,可以控制游戏中单位和识别敌方单位。

https://github.com/BurnySc2/python-sc2

https://github.com/Dentosal/python-sc2

pysc2项目

deepmind公司用于开发aphstar的框架

事实上与我们普通研究者和玩家没什么关联,因为云服务器来训练它成本高昂,而且由于复现困难,导致效果并不好。另一方面aphstar受限于apm限制,而一般starcraft2 bot天梯上面不限制apm。

个人认为aphstar不一定能击败精心设计的脚本bot和sc2项目的人工智能bot。因为我们的人工智能ai问题还有很多。很多发表的强化学习ai感觉甚至打不过脚本。这是因为小的细节规则难以抽象出来,更难以在框架中考虑并设计到。

已经确定的事情

  • bot无法加入游戏大厅

  • 地图脚本和外部程序操纵xml存档文件输出数据

    通过地图脚本和外部程序反复读取xml存档文件,应该能实时输出数据,但是没有尝试过。这样以后可以绕开暴雪接口限制,使得玩家和人工智能bot在游戏大厅线上对战。或者人工智能bot可以在游戏大厅线上和玩家一起合作完成原本需要多人配合的合作地图。

    待研究

  • 控制鼠标键盘操作屏幕模拟玩自定义地图游戏

    通过自动化测试框架或者pygame等包是否可以完成一些自定义地图的操控。

    待研究

  • 无法超过2个人工智能bot

  • 自定义地图可以加载

    已经测试完非常多自定义地图,确定只要游戏刚开始没放入未在unit_typeid.py中注册的自定义单位,便可以加载。

  • 自定义单位可以使用

    PS 韩国人正在做自定义种族的人工智能ai,但是已经失败。

  • 自定义建筑不可以

    已经完成初步探索,但是尚有很多问题需要解决。

    研究中

研究的意义

starcraft2游戏提供了简易的编辑器(相当于简易游戏引擎)和数据接口API,通过自定义地图可以在starcraft2内部实现大多数各种类型游戏。

  • 回避图像识别误差过大

    这样回避了图像识别不成熟和鼠标选取带来的诸多问题。研究者可以先行强化学习玩游戏的框 架。(当然如果研究者想使用图像识别也是可以的,可以不用或者辅助使用数据接口作为宏观判断的依据)

  • 节省个人的运算资源

    由于图像识别需要消耗大量运算资源,然而大多数贫穷研究生可能没有机会拥有一台属于自己的高性能台式机或者根本没有实验室。通过数据接口可以绕过图像识别带来的的计算资源困难。

推荐的研究

思路1 训练可以合作的人工智能agent

Api接口设计用于1vs1标准竞技对战。所以仅仅支持2个外部agent,实际上我们可以试图训练2个agent配合完成任务地图或者多人地图同时对抗多个传统电脑。或者1个人类玩家1个agent相互配合完成任务地图或者多人地图同时对抗多个传统电脑。还没有设计实现思路,基础知识薄弱。因为社区现在还在使用api来做1vs1标准对战,不像我非主流的使用api来通过api设计漏洞操作,应该有研究价值。

思路2 训练高级-低级指挥agent

玩家使用外部语音操作宏观指挥,api操作单位进行各个建造和进攻防御行为,玩家只需要命令api的agent以何种模式发展,何种模式进攻就可以了。
完成玩家和agent的合作性人工智能。
如果agent能够使用pysc2那种微操作就更好了。这样玩家进行宏观判断,agent负责具体战斗,但是pysc2未了解以及训练成本极其搞。

思路3 自适应agent

游戏中电脑的最终目标是陪玩家娱乐,所以agent需要具有自适应调节难度的能力,应该可以根据游戏的过程中的交换比和玩家以往战绩可以自适应调整自身难度,以适应玩家水平和提高玩家游戏水平。

AI研究社区

wiki

https://aiarena.net/

https://wiki.sc2ai.net/Main_Page

https://aiarena.net/wiki/bot-development/getting-started/#wiki-toc-maps

Github

https://github.com/BurnySc2/python-sc2

https://github.com/Dentosal/python-sc2

https://github.com/Blizzard/s2client-proto#downloads

discord

https://discordapp.com/invite/zXHU4wM
https://discord.gg/zwpJzBQN

相关项目

starcraft1

Brood War API Team

https://www.starcraftai.com/wiki/Main_Page

https://github.com/bwapi

https://bwapi.github.io/

星际争霸1比赛

https://sscaitournament.com/

其他

示例bot

https://github.com/davechurchill/commandcenter

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值