|
发表于 2007-6-27 14:34:00
|
显示全部楼层
Re: Re:谈点AI设计的,哪位前辈讲解下!
terrybiff: Re:谈点AI设计的,哪位前辈讲解下!
棋类AI和其他游戏的AI不一样吧...
棋类的纯数学算法问题,一般游戏的怪物AI也就是二择或者多择画流程图就好了
恩,正是这个问题。。。如果单纯要我去做一般MMORPG中怪物AI,那些都没什么问题,无非是参考一个判断来触发的。
但棋盘就有点不同,如果和MMORPG里怪物比较的话。。。可以这么看。。。前者你是和多个敌人战斗,有多种情况同时发生,因此优先级别也可能出现多重(除非更细);后者就是单个敌人,也许有2种或三种情况同时发生,但是还是比较简单可以进行优先区分。。
MMORPG中里,可以根据怪物的HP、级别、仇恨等等判断怪物AI下一步;
但棋牌里,单个看一个棋子目前的状况根本不妥,因为棋盘游戏并不是一、二个字之争,而是有衍生效应在里面。。。不可能因为你可以攻击一个棋子就义无返顾攻击,相反,你要观望整个棋盘(当然,NPC不用做这一点,只要一个小范围具体对待,但这个小范围要考虑的东西也够多的了)。不可能你为了吃1个字而损失更重吧
比如:你的士与兵靠在一起,电脑是将,将与士并靠着,此时如果单从纯攻击角度谈——攻击士条件成立,攻击士本身无任何威胁,士属于大子(优先吃掉)……难道电脑就不会去考虑士旁边还有一个兵的存在吗?
接着,游戏中,棋子本身也有一个移动攻击概念,这里按SPY说的,贪婪算法就可能真适用。因为移动一格本身是作为一回合的,他的具体攻击可能要在下一个回合才能发生,甚至说下一个回合还无法发生(1.玩家移动棋跑了;2.2个棋子相差2格甚至以上距离)。
接着就是追逐了,按一般简单游戏的算法,AI的追逐无非以一个基点为移动目的,这个基点可以是目标本身,也可以是根据目标移动方向计算的目的地(根据速度和时间比,AI进行拦阻),但棋盘则不同,这个拦截就无法直接套用上面说的追逐。。。因为棋盘游戏AI还得考虑一个“包围”。这个“包围”本身是分次进行的,不像一般ACT、STG游戏里,可能有3个敌人根据你当前坐标和移动方向进行分段拦截的设计。。
|
|