weijinqian0 2019-05-10
某平台主播被人机单杀画面
MOBA游戏,是Multiplayer Online Battle Arena的缩写,中文译为多人在线战术游戏竞技游戏,简单点就是说这类型的游戏就是在游戏中靠着击杀敌方英雄,购买装备,拆掉敌人基地为胜利条件。
从DOTA到LOL,再到全民痴迷的王者荣耀,MOBA游戏涌入了一群又一群的新手玩家。为了让新手们快速在游戏中灵活运用技能,MOBA游戏都推出了一种形式——人机对战。
那这样的【人机对战】到底是怎么实现的呢?
实现「人机对战」、构建并完善游戏内 AI 角色的方法通常有以下三种:
01
「经典」的行为树
01
行为树(behavior tree)是最常用的方法。
行为树是以节点(node)为基本单元,像树枝和树叶一样展开的一系列脚本指令。
根据组成,这些节点可以分为父节点和子节点。
子节点的操作由父节点(即上一个节点)管理。执行完成后,子节点将信息反馈给父节点,以明确下一步操作。
结构清晰的行为树
根据功能,节点可分为根节点、控制节点和叶节点,其中:
根节点是脚本开头的节点,分支中包含的行为被分类。以士兵为例,根节点可以是移动的、进攻的、防御的、逃跑的等。
控制节点用于管理叶节点的执行方式,例如选择要执行的子节点之一、依次执行所有子节点或同时执行所有子节点。
叶节点,即节点的具体作用,如普通攻击、使用法术1、使用法术2、使用恢复药物等。
控制节点和叶节点包含执行节点的前提条件。当需要人工智能角色进行决策时,从上到下搜索行为树,最终的叶节点将成为角色选择的行为。
行为树用藤条般严密的逻辑控制人工智能角色的行为。它的优点是角色执行动作的逻辑足够清晰,缺点很明显:当节点太多时,代码很容易崩溃。因此,套路相对有限,玩家很容易掌握。
红色警报系列使用行为树来构建人工智能角色。
02
相似的方法:有限状态机
02
有限状态机(Finite State Machine, FSM)是一种松散的行为组织结构,由有限状态、输入条件和连接状态的转换函数组成。角色只能同时处于一种状态。
当一个人工智能角色遇到特定的输入条件(如被玩家攻击)时,系统执行一个转换函数,将人工智能角色从当前状态转换为另一个状态(如反击)。
与行为树相比,有限状态机更加清晰灵活,能够适应更多的状态,因此角色行为更加丰富。
但它仍然属于人工定义的抽象结构,角色行为仍有一定的规律可循。
有限状态机
03
基于机器学习的方法
03
与行为树和有限状态机相比,机器学习可以创造更多“智能”的人工智能角色。
以DOTA2人工智能Open AI为例。Open AI可以在1v1游戏中击败顶尖的人类专业玩家,在5v5游戏中超过90%的玩家。
Open AI是通过强化学习来训练的。强化学习(reinforcement learning)是一种机器学习。简单来说,它允许人工智能通过反馈来学习。如果人工智能行为“正确”,它会收到强化反馈(即奖励),反之亦然,它会受到惩罚。
最初,Open AI可能无法打败中级玩家。但是在持续学习中,Open AI可以根据情况选择购买什么武器和使用什么技能。为了获得奖励,人工智能将不断地改进其行为,并在不断的“尝试与错误”中努力实现最佳可能的解决方案。
战胜了李世石的围棋人工智能AlphaGo零,也采用了强化学习的训练方法。
五名中国顶级玩家挑战 Open AI!结果为人类获胜
而相比之下,建造超级人机器非常复杂。以DOTA2为例,我们需要面对的问题包括:
我们不能看到所有敌人信息的不完全信息博弈问题。
一对一以上的复杂作战环境问题;
每帧需要1000次有效操作的高频连续运动问题;
连续观测场中多维信息要求的超高枚举值问题;
游戏本身的机制太复杂了。
…
目前,Open AI的日常离线训练相当于180年的连续游戏,为每个英雄使用一个独特的长短时记忆网络(LSTM)。即便如此,开放人工智能在面对顶级人类玩家时也失败了很多次。
- - E N D - -
本文中部分素材来源于网络
喜欢的朋友,可以点击关注丹尼尔讲AI,好内容与你分享 你的好朋友 一位AI的狂热爱好者。