扫码打开虎嗅APP
提起游戏中的AI,似乎和我们现在谈论的人工智能是两个完全不同的东西。可当今天我们为人脸识别技术惊艳时,却忘了我们在上古时代的游戏CS1.5里被电脑爆头的恐惧。
当然,研发和运行成本所限,游戏AI中很少应用到神经网络、深度学习等等现在流行的技术,但游戏AI也绝不仅仅像是王者荣耀中人机比赛中那么简单。
首先我们要知道一点,游戏AI的愚蠢并非技术所限,是因为它们被设计来更好的陪伴玩家游戏,给予玩家成就感,而不是把玩家揍成狗(LOL末日人机笑而不语)。另外,游戏AI的强大,很多时候也不是因为技术,而是机器可以更准确的看到你的技能范围,有着更稳定的走位不受状态和情绪的影响。
不过在我们玩过的游戏中,的确有一些让我们感受到AI的存在,《模拟人生》系列就是最好的例子。在知乎有过一个问题叫“你在模拟人生中经历的最感动的事情是什么?”,里面有大量关于游戏中角色自我行为的讨论。
没错,在这个游戏中,你细致的设置过角色的星座、性格、喜好后,它会按照设定进行自我行动,配上游戏题材,几乎和人类无疑。
做到这一点,依靠的是“行为树”。行为树和此前介绍过的决策树非常相似,通过状态枚举、流程控制来设计游戏中人物的行为。只是相比决策树单纯的通过各个节点进行IF,THEN的判断,行为树中充满了条件节点、动作节点、选择节点、顺序节点等等更复杂的东西。再加上一些随机动作,行为树下的NPC几乎可以以假乱真。
如上图所示,黄色矩形为执行节点,白色字体为条件节点。模拟人生人物在“吃饭”这一组合节点中,首先要判断自己是否饥饿、冰箱里是否有食物,如果结果都是“是”,就会执行做饭这一行为。
现在很多游戏中的NPC都采取了行为树技术,尤其是在MMORPG中。根据自身数值和周围环境对自己的行为作出判断执行,听起来似乎很容易理解,不过在FIFA、实况足球等等车球枪游戏中,AI又是如何进行团队协作的呢?多层状态机是解决方案之一。
状态机本身是一种很基础的计算理论,挑选出可以描述问题的变量和影响问题的外部变量,对各个有效状态进行动态分析,找到动作和状态的对应关系。最后确定目标问题的初始状态,就可以执行对应动作。
实现团队协作,需要设置多层状态机配合目标设定。将团队协作分为1+X层,其中1是为团队状态机,负责判断团队整体状态和动作,X则是各个角色需要完成动作的多层状态机设置,像是最起码的跑步路线,到再上一层的射门、传球,继续下去可以有射门角度、传球速度等等细节。在这一逻辑之上,还有很多锦上添花的部分,像是游戏内数据的概率统计、随机动作等等。据说也有一些游戏已经引入了神经网络,比如FIFA、使命召唤等等。
下面可以简单介绍几款有趣的游戏AI。
《黑与白》
《黑与白》是一款意识超前的游戏,玩家在游戏中扮演上帝的角色,组建城市、发展文明。其中的宠物就有很高的智能程度,拥有自行学习的机制。做了坏事可以被玩家惩罚,惩罚后会改变行为,如果放任自如则会加重坏行为。有趣的是,这款游戏的首席人工智能官就是Demis Hassabis,也就我们熟悉的阿尔法狗之父。
《求生之路》
作为一款FPS游戏,很难说《求生之路》里的怪物有多智能——它们本来就该是愚蠢而凶猛的。真正有技术含量的是它的“导演系统”,AI Director作为后台的核心,会根据玩家在游戏中的具体表现调控游戏的节奏。怪物出现的地点、数量,何处刷新道具等等,配合上根据形势动态变换的音乐,给了用户更真实的游戏体验。
各种角色扮演/沙盒游戏中的NPC
在一些自由度较高的游戏中,为了让玩家更好的融入这个世界,游戏会对NPC进行很多详细的设定。比如在《巫师》系列中,每个NPC都有自己的性格设定,包括会话数据库,让他们可以进行丰富的动作和对话。在GTA这种沙盒游戏中更是这样。
总之和现在流行的深度学习不同,游戏AI没法把一切工作都交给黑盒子,只寻求一个结果,游戏AI通常是把每一步的动作都规划好。其实,即使在竞技游戏中,大部分人体会到的快乐也来自于技能释放的精准、走位的风骚,还轮不到和AI对抗策略计谋的地步。所以,游戏AI的目标不一定是模仿真实玩家,而是让我们的游戏体验更好。