给不想看后面详细信息的人的说明:
- 这篇文章说明了王者荣耀18年年底公布的新的AI系统中的一些重要模块。其实要完成一个完整都AI系统肯定还有很多其他的小模块需要研究。
- AI的输入是游戏画面加一些UI上面可以直接读出的信息(玩家血量,击杀数等),输出是游戏操作的序列。也就是人怎么操作,AI就怎么操作。比如人要在某个地方放置某个技能,AI也需要通过控制虚拟手柄来完成,而不是调用一个游戏内部的API来完成。
- 至于现在王者荣耀游戏服务器里的困难人机对战,我猜测是简化版的。一个是没有必要还把游戏画面作为输入,而一个这么战斗不可能每场战斗都调用这么多计算资源来支持。结果是困难人机的水品肯定是比黄金级别的强很多,但是肯定没有kpl决赛中那场AI对高玩的直播的能力强。
文章背景介绍中主要说:
- 即时战略游戏比围棋的解空间维度大很多,所以解决这个问题要复杂得多。
- OpenAI Dota2的AI中,提出了让AI学习局部战术的很好的方法,所以本研究的局部战术的模型和OpenAI的相同。
- 本文章的贡献点是提出了一种监督学习的方法来训练AI能够学到战略层面的东西。
- 具体分为三个战略层面:
- 让AI学习到怎么预判什么地方会发生战斗。
- 让AI学习到当场面处于什么状态的时候,是需要执行什么样的任务(推不同的塔,打红蓝Buf等等一共14个task)
- 让一个角色决策同时会居于其他同盟的决策(也就是AI之间的协作)
- 上面三个战略网络模块会输出一些结果,会作为后面基于OpenAI的战术网络的输入。这样就能在让战术配合战略。
- 虽然角色每个时刻的目的地不全由发生战斗的可能性决定,但是这是一个重要的因素,所以设计这个模块作为角色行走等战术决策的输入。
网络模块的细节:
不管是预判战斗地点还是但前执行的task都有一个共同的网络模型作为输入,所以这里先把完整的模型介绍一下: