游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5645|回复: 1

[原创] 创建一个成功的星际争霸II AI系统,面临的挑战和方法

[复制链接]

8360

主题

9283

帖子

2万

积分

论坛元老

Rank: 8Rank: 8

积分
29945
发表于 2016-11-25 16:57:40 | 显示全部楼层 |阅读模式
191946pgvg6pzvmexdw3en - 副本.gif

  作者:Hongze Yu,游资网编译

  一年前,谷歌Deep Mind完成了赌注,让人们看到了最智能的AI系统-AlphaGo。凭借其学习能力和决策能力,AlphaGo以4-1的比分战胜了围棋世界冠军李世石。自从AlphaGo的胜利宣布后,计算机科学界认为它的下一个挑战将是星际争霸II。 星际争霸II是一个实时战略(RTS)游戏,被认为是迄今为止最高水平的电子竞技游戏和最高难度的视频游戏。作为一个星际争霸II玩家,我和当前的AI玩家对打过无数局,并不觉得有什么挑战。在对星际争霸II职业玩家的采访中,这些职业玩家并不认为AlphaGo可以在这个游戏里击败人类。然而,上周在阿纳翰举办的暴雪嘉年华上,星际争霸的开发商暴雪宣布,将对星际争霸II的AI系统进行开源,供玩家和专业人士研究。在同一个舞台上,谷歌 Deep Mind AI的代表宣布,他们将开始与星际争霸II合作,这让包括我在内的每个人都非常兴奋,我们可以见证AlphaGo挑战最优秀的人类游戏玩家。尽管如此,我们不能否认AlphaGo仍然需要走很长的路,才能真正在这个游戏中取得成功。这也点燃了我的兴趣,来谈谈它所面临的挑战。

  星际争霸II被称为RTS游戏的灯塔。因此,第一点需要讨论的是--为RTS游戏设计AI的真正难点是什么。看看这个游戏类型的名称就明白了,RTS游戏最重要的元素是战略,以及根据实时情况立即决策或调整策略的能力。

  从理论的角度来看,RTS游戏与棋类游戏比如围棋有很大的不同。首先,在RTS游戏中,多个玩家可以同时做出决定和发出动作,并且他们的动作对玩家相互之间可能造成很大的影响;其次,实时元素意味着每个玩家需要在最短的时间内做出反应,但要完成你的行动却需要时间。例如,当你的一个建筑受到攻击时,你需要在一秒钟内决定是否要挽救,如果决定稍微晚一点,在你思考的时候就已经失去它了,而如果你决策失误,你可能会失去你的部队,这两种情况都可能导致失败。同时,如果你决定挽救这个建筑,你需要一定的时间来移动你的部队,在这段时间里,战场上的情况可能会再次发生巨大变化,你必须对这种变化作出即时反应和决策。这比围棋复杂多了,围棋里你可以有很长时间来思考、并完成你的动作,而你的对手不能在这段时间挑战你。围棋的复杂等级大概在10~ 170级,而RTS游戏甚至更复杂,高达10~1685的复杂程度。

  学习能力是为星际争霸II设计AI的第一个大难题。作为一个玩家的个人经验,我发现当前的星际争霸AI并不具备学习能力。他们只会按照存储的编程策略来做出反应,最多只有10种不同的游戏风格而已。他们不能很好地根据人类玩家的游戏情况来做出反应,有时他们会做出完全错误的决策,仅仅因为他们的内在程序是这么设定的。而且这些AI不能与时俱进,他们仍然保持着几年前的老旧战略,并没有改变他们的游戏风格。学习能力已经被证明是AI在游戏中获得成功的关键,所以这是开发中需要考虑的第一个元素。主要的学习方法是源代码探索,我们如何利用当前可用的数据库来改善AI。我们拥有大量的数据可以使用,如重放。构建命令,能力使用,建筑物位置,单元定位,所有关键信息可以从重放中提取并用于学习目的。问题在于我们如何利用这些数据并训练我们的AI。]

  目前研究人员提出了两种主要的学习方法。第一种方法是使用扩展学习分类系统(XCS)。这种方法包含五个基本要素。第一个元素是条件,这是人类玩家或是AI需要根据其来决定下一行动的初始情境,同时也是玩家或AI的某一行动可能导致的游戏状态。第二个元素是动作,这是玩家基于“条件”可以采取的可能动作,并且玩家必须选择一个来继续。第三个要素是预测,这是一个值,系统用它来计算每个动作大约可以带来多少回报,假定在预先描述的条件下执行了该动作。第四个元素是预测误差,其反映了每个动作的预测回报和它实际带来的回报之间的偏差。第五个元素是适合度,它描述了AI做出决策的正确程度。系统的流程如下:当出现一个条件时,列出可能的动作列表,AI预测每个动作的可能结果,然后采取它认为最佳的动作,并继续创建下一个条件。同时,AI将其决策与数据库进行比较,并评估其预测的正确程度和决策的正确程度,与人类职业玩家进行比较。这将帮助AI调整其内部程序,以做出更好的预测和更成功的动作选择,这个过程称之为“学习”。

  “学习”的第二种方法是使用贝叶斯网络,这种方法涉及模拟人类玩家的决定。实现起来包括三个步骤:第一步是给人类玩家设定AI想要学习的情境,并且在该特定情境下对战30-50场,把所有的动作都存储在数据库;第二步是用GeNIe软件构建贝叶斯网络,它通过模仿人类玩家做出的决定来定义模型。它生成表示决策过程运行的数据库中的变量的节点,并记录影响玩家决策的值。然后,寻找和定义变量之间的关系,并且计算动作所带来的不同结果的概率。第三步是在AI中实施贝叶斯网络,允许AI利用变量的关系来感知战场的变化,并像一个真正的玩家一样来做决定。

  现在我们已经有了学习的流程,接下来得找出什么是星际争霸场景中的关键要素来学习。由于在游戏中有太多的可能性和太多的元素需要关注,我们必须知道什么是最重要的。

  研究人员设计了一个实验来确定星际争霸II AI系统的关键元素。他们选择了20个经验丰富的星际争霸游戏玩家和6个AI机器人系统,玩家和AI之间进行了140场比赛,然后要求玩家针对AI做出评价,评价参照六个标准:

  • 生产力--高效大量地生产单位或建筑物的能力;
  • 微管理--控制个体单位的技能;
  • 战斗力--控制军队赢得战斗的技能;
  • 决策力--在不确定性下的战略/战术决策能力;
  • 表现--整体评价;
  • 和人类的相似度--AI与人类玩家相比的相似度。


  这个实验的结果表明,“微管理”和“决策力”是人类玩家评估AI时关注的两点焦点。因此以下段落将阐述AI在这两个领域面临的挑战。

  首先是在微管理上的挑战。微管理是单独控制单元的能力。例如,一个好的星际争霸II玩家可以用一个单位来杀死低级别玩家控制的同样的两个单位,例如通过定位、kiting的技能和地图元素等。当涉及到职业玩家之间的高水平比赛,一个微小的错误,就可能导致你输掉整个游戏。因此,AI必须找到一种正确控制其单元的方法。当前在用的方法是使用管理器,它是一个向此单元发出命令所需的所有方法的集合。它包含一个名为“Execute”的指令,该指令是系统用来根据实际情况确定要采取哪个动作的过程。它还包含基本的移动命令,如攻击特定的敌方单位,朝任何方向移动,和在某个区域的投射能力。该系统还使用许多特定的微管理器,按照星际争霸的种族和他们的攻击范围来分类。这允许AI系统对即时情况做出反应并执行正确的微控制。

  然而,这存在两个主要的挑战。 第一个挑战是AI如何像一个人类玩家一样移动单位。例如,人类玩家可以选择牺牲他的一个单位,来安全化解其他单位的损伤,而AI的内部程序很可能让其转移受伤的单位。人类玩家也可能会考虑把近战单位派到前方,把长距离单位安排在后方,以最大化战斗力。解决这个问题的最佳方法是学习,这又回到了前面阐述的AI学习的挑战。

  第二个挑战是对AI微控制设定限制。这里我们需要介绍APM的概念,指的是每分钟的动作(actions per minute)。基本上,你在一分钟内可以做的动作越多,你就可以给你的单位越多的指令,他们就可以更精确地跟随目标,更好地执行你的任务。正常人类玩家的平均APM在200左右。优秀的职业玩家平均APM在500左右,他们的手腕甚至会因为一直快速移动单位而受伤,这表明平均500 APM可能已经是人类的最高极限了。然而,计算机和AI没有这个限制,如果不予设限,他们可以有成千上万的APM。星际争霸曾经设计过一个2000APM的AI,它的单位可以在一秒钟内射击你,并立即移出你的攻击范围,你甚至来不及做出反应。这个AI可以轻松击败每一个玩家。因此,我们必须对AI的APM有所限制。然而,人类玩家的APM是不稳定的。在游戏中这一秒可以是20,而下一秒可以是1000,然后立刻回到200,这取决于玩家执行的任务。我们需要知道在每种情况下需要多少APM,以便为AI设计合理的限制,这再一次又落回到学习的过程。

  本文阐述的最后一个挑战是星际争霸II中AI系统的决策能力。这是基于策略和战术的,游戏中最高级最抽象的一个层面。回答一个最基本的问题:我们要怎么赢得游戏?我们可以有许多不同的选择,例如早攻,或保守地玩,或尝试获得更多的资源和防守。做出这个决定后,玩家需要训练单位,建造建筑物,决定是否攻击,并对对手战略做出反应。例如,如果你决定了保守地玩,并发现你的对手在贪婪地获取资源和技术,而不建立他的军队,你应该改变你的策略,并立即进行攻击。同时,AI需要具有反应性控制力,这意味着会利用地图并从对手处收集信息。

  这就需要“自适应策略决策机制”。这是基于每个建筑物和每个单元之间彼此具有一定关联的事实。例如,星灵玩家必须先构建一个塔,然后才能构建任何其他结构,而人族玩家必须在建立军械库之前建立一个兵营。在战斗方面,星灵单位巨人对战陆战队员等人族单位非常有效,而虫族单位腐败者对付巨人非常有效,而陆战队员却能轻而易举地杀死腐败者。

  这种单位之间的联系带来了对自适应战略决策的讨论,即对你的对手做出反应。星际争霸II现有的AI非常直接,不能自适应情况而调整。面对这一挑战,一种新的机制被提出了。该提案含五个关键组成部分:使用众所周知的策略;利用从对手处获取的信息;利用单位信息;遵循总体战略和战术;并尝试防止对手获取信息。

  星际争霸的AI系统仍然面临几个重大挑战。它必须在单位控制效率和与人类玩家相似的微管理上找到平衡。在选择战略和战术行动时,它必须是明智而多变的,并能够适应和反应其对手的行为和决定。这些都需要AI通过本文提出的XCS和贝叶斯模型来学习的能力。如果AlphaGo想要征服星际争霸II,它必须从足够的游戏中学习,通过学习像人类一样“思考”,在微管理和决策力方面好好发挥。

102

主题

2443

帖子

7639

积分

论坛元老

Rank: 8Rank: 8

积分
7639
发表于 2016-11-26 07:13:20 来自手机 | 显示全部楼层
李世石是冠军????
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-5-16 14:03

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表