小妖精的完美游戏教室——人工智能,状态机理论篇

  今天也要直播魔法,求科学的!

  欢迎来到小妖精Balous的完美游戏教室!

  每一款好玩的游戏里面肯定有很多人工智能,例如一些帮助玩家的NPC,一些被玩家调教小怪物,更有输掉后会卖萌的Boss(小妖精真的没有玩过东方project,真的没有,小妖精甚至连这个游戏都没听说过!)。那么,米娜桑想不想知道这些人工智能是如何实现的呢?那就跟着小妖精的步伐看下去吧~~但是小妖精现在的实力不是很强耶,目前还达不到妖精姐的水平,所以小妖精也只是教大家一些简单的基础。不要见怪哟。

  人工智能简单来讲,是由状态跟转移条件组成的。没错,状态+转移条件=人工智能。这看似很抽象,所以小妖精下面举个具体的例子来说明这个。

  现在,有个AI,她是魔王的女仆,她的职责是在玩家闯进大魔王宫殿时,去阻止玩家(真的是去阻止玩家,不是去被玩家调♀教)。她会根据玩家的行动,做出相应的对策。当玩家进入大魔王的宫殿时,她会闪现到玩家面前,使用小刀攻击玩家,如果成功伤害到玩家,女仆还会进行连击。但如果玩家跑远了,女仆就会把小刀扔出去,使用飞刀攻击。当然,玩家可能不想跟女仆正面对着干,玩家只想找出宫殿中的魔王,此时,玩家就会一直躲女仆。为了阻止玩家找到大魔王,女仆必须拦截住玩家,还有……当女仆被玩家推倒(击败)时,女仆会哭啼啼地说:“呜~我主,我失败了……”。

  好啦,写了这么多,女仆这个AI有这么几种状态:使用小刀近战攻击玩家,使用飞刀远程攻击玩家,拦截玩家,卖萌。转移条件分别是:if(玩家距离女仆很近)->使用小刀近战攻击玩家,if(玩家距离女仆很远)->使用飞刀远程攻击玩家,if(玩家无心战斗,想寻找大魔王)->拦截玩家,if(女仆被推倒)->卖萌。

  这样一来,米娜桑是不是明白为什么“状态+转移条件=人工智能”了呢?

  所以,实现游戏中的人工智能,就是实现状态机。由于篇幅的问题,小妖精暂时就讲解这么多啦。这次讲解的是状态机的理论,具体代码实现,小妖精将会在下一次讲解,所以这里暂时不提供代码啦~

原文地址:https://www.cnblogs.com/balous/p/6679822.html