学习:游戏AI探索之旅

王亮:游戏AI探索之旅——从alphago到moba游戏

分为四部分

第一部分什么是游戏AI,游戏AI为什么对现在的游戏非常重要

  • 业界和工业界对于做游戏AI主要的方法,以及现在业界一些主流的游戏上的进展
  • 结合MOBA游戏,讨论一些探索研究及现在的进展
  • 会简单介绍一下基于深度学习方法来做游戏AI,对于游戏开发者来说需要提供哪些环境便于AI的开发

什么是游戏Al:

对于游戏开发者而言是增进用户体验,提示游戏玩家的活跃度,方法主要是基于一些人工规则的方式。

几乎所有的游戏都有自己的游戏Al,例如:棋牌类的Alphago,Moba游戏会的小兵,防御塔等,其实越复杂的游戏对Al的依赖程度越高。Al在游戏中常用的方式:

人机对战:Al为游戏提供一种玩法,玩家可以选择与游戏Al对战熟悉游戏;

平衡性测试:辅助游戏设计开发,如:游戏数值改变,Al可以用于验证数值变化带来的影响。

对于射击类游戏,Al可以用于探索地图等。

通用的游戏AI的设计,包含三部分: 感知系统、决策系统、导航系统;游戏AI的决策操作基于一定的时间粒度进行循环工作。

                

常用的游戏AI方案,游戏AI常用方法分为三类:

  • 工业界常用的行为树、有限状态机及势力图优点:实现逻辑清晰,不足:固定逻辑执行,容易被玩家识破,复杂逻辑难实现;
  • search方法,常用的方法:遗传算法、蒙特卡洛搜索树方法等;
  • 基于learning的方法: 监督学习算法、强化学习算法;

监督学习算法:基于训练数据,难点是抽象状态环境以及执行操作Action,通常Action的定义直接影响模型的上限;对于复杂游戏来讲,对于状态s很难定义最优的Action操作。

强化学习回避SL中如何确定“正确”A的问题,转而定义reward(例如赢一场比赛reward=10,击杀对方英雄reward=1, 自身死亡reward=-5);

强化学习通常用于序列操作决策问题,对于强化学习来说,特别是复杂游戏,遇到的挑战:

  1.  Exploration(探索:能够帮助智能体通过不断试验获得反馈)和exploitation(利用:是指利用已有的反馈信息选择最好的动作)的问题。
  1. 对于游戏玩法时间较长,如何解决reward delay(延迟满足)问题。

在MOBA游戏上的AI研究与探索。王者荣耀是一款即时战略游戏,与Dota,LoL是同类型游戏。MOBA游戏特点:注重英雄的操作,英雄设计较为复杂。介绍AI技术方案之前,首先我们来看下做MOBA类游戏难点在哪:

强化学习在围棋上成功的应用,为什么Moba类游戏AI还没有战胜人类的职业选手?以王者荣耀这款游戏来分析,从状态训练空间来看,王者的操作基本是在102000,围棋只有10170。操作序列空间也存在巨大差别,导致计算会非常非常大。

王者荣耀跟围棋存在什么样的差异:从AI的个数上来说,围棋只有一个AI,只需关注黑白子。对于王者来而言却是有多种对战情况的,5V5,3V3,是多个AI的操作。其次就是确定性的问题,下围棋落子即定,不存在下完还可能下不成功的问题。而对于战略性游戏却是非确定的操作,即使发出了技能也有可能被人打断,所以是非确定性的操作。对于状态可观测性,围棋可以看到整体的情况,而王者地图对于玩家而言是部分可见,只能看到友方的视野,这样就会涉及到博弈问题:如何去预测敌方的位置。

目标学习问题:目标学习是非常重要的,首先需要解决每个英雄要去哪里的问题,对每个英雄或者对每类英雄要去的位置和出场是不一样的。其次就是选目标的问题:游戏中有七十多个英雄,每一局英雄可能不一致,如何解决英雄不一致的问题?因为AI学的是用户的操作,每个英雄技能设计不一样,有的是方向型的技能,有的是指向型技能,有的是位置型技能。

第三个难点是知识表达的问题。如果对于一个复杂英雄如:露娜,李白,玩家没有熟悉一百场练习很难熟练操作这复杂英雄。露娜无限连怎么打,关羽的无限推,李白四字真言,诸葛亮大招躲避。另外每个英雄有一些技能状态变化的设计,例如说花木兰,它的技能会随着三技能的变更,前两个技能效果也会变。这些如何表示?对于人来说是游戏常识,难点在于对于AI如何进行表达。

对于遇到的主要问题我们的解决方案:第一是引入框架进行分层,任务分层场景切分。对于知识表达,引入了多模态的特征表达方式:卷积特征+向量特征+时序特征;模型采用多深度学习模型结合。

王者AI的主要技术解决方案。框架设计主要包含两大组成部分:游戏分析和策略模块。游戏分析模块主要包含:英雄搭配问题,装备策略的分析等。策略执行模块用以解决:接下来去做什么,到达对应地点后如何进行对战的问题。

大局观设计,大局观是解决下一时刻位置问题。具体来说对于英雄它下一次的热点在哪里?下一次的战斗位置在哪儿?或者它下一次蹲草丛在哪个位置。微操的设计,微操解决的是场景发生战斗的问题。我们特征采用多模态方式组织:位置相关信息通过imagelike特征组织,属性信息通过向量特征表征,采用深度学习的Multi-task模型。

整体来说随着强化学习,深度学习方向进展,以前主要是基于规则,现在主要是基于学习方式来研究AI。如果采取基于学习的方式研究AI对于开发者而言需要提供相关的环境便于开发者进行迭代调试。总而言之,MOBA类游戏AI研发遇到很多困难与挑战,但也充满了机会。

猜你喜欢

转载自blog.csdn.net/Sea3752/article/details/132568903