游戏AI参考 I

星际争霸AI比赛AIIDE

Posted by Kang Cai on December 5, 2018

该系列是利用业余时间里观摩一下目前国际上最高水平游戏AI是怎么做的,以此来了解高水平游戏AI开发。

本文的内容是世界著名星际AI比赛AIIDE(Artificial Intelligence and Interactive Digital Entertainment Conference),尝试发掘一些可供参考的有效信息。文章首发于我的博客,转载请保留链接 ;)

AIIDE 星际争霸 AI 竞赛由加州大学圣克鲁斯分校 Expressive Intelligence Studio的 Ben Weber 在2010 年首次举办,作为 AIIDE(人工智能和互动数字娱乐,Artificial Intelligence and Interactive Digital Entertainment)大会的一部分。AIIDE为什么使用星际1,而不使用星际2作为比赛平台,原因很简单,星际2的官方违规条款很严格:不允许对星际2代码做任何修改,不允许使用自动化软件和第三方插件辅助工具,不允许修改任何游戏文件。图1是AIIDE 2018星际AI比赛冠军SAIDA vs 亚军CherryPi的比赛录像一段。

图1 AIIDE 2018星际AI比赛冠军SAIDA vs 亚军CherryPi

AIIDE 2017

共28支队伍参赛

1st ZZZKBot(虫族) 83.11%

单基地rush战术开局:4血池提速狗、刺蛇、飞龙。后期升级大龙。用文件读写的方式记录每盘使用的策略和最终的结果,用手写代码逻辑来从上述记录中“学习”应该使用哪种策略:大多数决策是通过手写代码考虑多种情况实现的,使用基于单位类型优先级、几何计算等的启发式方法和过往比赛记录来实现。

2nd PurpleWave(神族) 82.35%

就是一个“专业神族策略包”:包含了大量的神族现存的微操技巧和建筑摆放,设计了激进策略、经济发展策略,还有一些搞笑的“苟”策略。

3rd Iron(人族) 81.52%

多gent系统:每个可控制单位都是一个agent,设计主要目标是整体行为的鲁棒性,比如解决单位卡住、来回犹豫(indecision)、可被预测等问题。为了满足以上鲁棒性,每个agent高度自治,agent们在25个行为间切换,建造队列顺序每盘一样,但会根据对手的建造进行应对和变化。有一个主脑对训练单位、建筑、科技进行决策,决策依赖收集到的信息和非常粗略的启发式算法。

4th cpac(虫族) 71.01%

中科院自动化研究所

基于Steamhammer bot:加了一些新策略;加了一些机器学习,比如为生产队列为空时战斗单位的生产训练了一个多层感知机网络。

官方总结

  1. 到2017年为止,没有太大突破
  2. AI变得更强:以前的方法会被现有方法打得很惨;有些现有方法使用到了机器学习算法;有些现有方法使用了搜索/模拟的策略
  3. 大多数提升是基于知识的:修复一些明显的错误;实现更多复杂的策略/架构。

AIIDE 2018

共27支参赛队伍,总体来说相较于去年,头部参赛队伍水平更高,尾部队伍水平反而更低。

1st SAIDE(人族) 95.91%

Samsung公司

纯手写规则的人族机械化打法:防守策略开局,中期开始寻找最佳rush的timing,用强力的一击击败对手。想法是人族的机械化打法可以应对大部分对手的策略,弱点是最少的,所以直接采用该打法。用有限状态机来控制单位和建筑,每类单位和建筑也在每种局势下有一种指定的状态,用几种搜索算法来定位敌方基地和放置建筑。实力强劲,能击败业余选手,但还不能击败职业选手,但据开发团队说在可预见的未来可以击败职业选手。

2nd CherryPi(虫族) 90.86%

Facebook AI Research团队

策略层:每场比赛开局会根据与对手的交战历史来从预设的8到13种策略中选择一种策略,通过Time-decay Thompson Sampling模型(一种简单的强化学习模型)来实现。接下来在比赛当中,用一种训练好的LSTM模型,来评测当前局势下最优策略,然后符合特定条件后,将会切换到该最优策略,通过这种来回切的方式实现“混合”策略。

有监督学习:用卷积神经网络从人类玩家游戏数据训练出建筑放置方法。

搜索算法:区域级寻路来绕过阻挡,危险感知寻路来实现“风筝”走位和引导单位脱离战斗

其它手写规则:矿工分配、资源比例分配、生成队列、部队站位、单位碰撞避免、刺蛇走A等

3rd CSE(神族) 87.11%

中科院自动化研究所队伍,也是2017年的cpac队伍

基于Locutus bot(Locutus bot本身也参赛了,排在第5,意思是修改提升了两个名次):主要是基于手写规则,加了一点点机器学习算法,具体策略跟去年差不太多。

官方总结

  1. 比往年强多了
  2. Samsung和Facebook之间的较量:Samsung请了几个韩国职业选手来配合程序开发,Facebook有好几个高水平星际AI的开发者

我的收获

**1. 到目前为止,没有用纯机器学习的方法,纯手写规则的方法SAIDE表现十分突出

  1. 2018年的第二名CherryPi是使用机器学习的一个很好的榜样,将机器学习用在了多个独立的部分,用的一种分层的思想应用机器学习:策略和操作分层,虽然操作是规则写的
  2. CherryPi通过危险感知寻路来实现走A和引导单位以最小损失脱离战斗这个确实挺有意思,可以借鉴使用**