这是关于游戏AI的一点头脑风暴的结果。
状态机、行为树,作为传统游戏AI的两大主流设计模式,在各个游戏中,为全球玩家带来了巨大的乐趣;
状态机是一种以迭代的方式,基于对象状态的变化,从而实现对象连续行为的机制,而从状态机的分类中,可以通过构建无限状态机,来实现一个长时间运作的AI;
个人观点来说,行为树是一种更优秀的模式,它的优秀不在于运行效率或者灵活性,而是在于理解成本和开发成本,特别是配置成本,
它可以通过把行为细节拆分的方式,罗列并依照概率或者顺序来执行这些行为,与对象的状态关联性比较弱,比起状态机,它要好实现一点,而且里面可以包含状态机;
then,在这些祖辈们留下的设计的基础上,俺继续YY,而YY的方向反而不是计算机或者具体游戏模型等内容,而是从人体入手:
说句废话:人都是由大脑操纵的,大脑操纵人的连接工具是神经(脊髓)。
之后,YY有了更深入的一步:
·大脑,就是一个处理器,如果要让它消耗最小的能量,那么它最好是静态的;
·对于一直处于静态的大脑,要驱动大脑思考并作出反应,唯一的手段就是给大脑进行刺激;
·所谓的刺激,从计算机的角度来看,就是输入(input);
·刺激大脑的内容,必然是一种或者多种神经信号(signal);
·受到刺激(input)的大脑,它会通过里面所蕴藏(或者天生、或者后天)的处理机制、习惯、思维模式等,作出反应;
·这些反应会化作信号(reflection signal),然后输出(output);
从俺们人体的角度出发,抽象出一个简单的处理过程,就是这么一个流程;
这一套流程,俺暂时称之为 神经传递-反应。
简单模型就是:
(signal) (reflection signal)
| |
man ----> input ----> brain ----> output ----> man
| |
(body part1) (body part 1 or other)
这么一回事
再回到游戏AI上,如果把上面那啥 神经传递-反应 作为一种AI模式来控制对象,那么它的主要业务就是:
·对象有个AI用以控制它,这个AI很像一个懒惰的大脑(brain),它静态;
·从对象身上各个可能的部位(神经元)得到输入信号(signal);
·处理输入信号,呕出输出信号;
·把输出信号传递到相应的神经元,命令对象一些部位作出反应。
挺简单的吧,模型也和上面非常相似:
(signal) (reflection signal)
| |
object ----> input ----> brain_object -----> output -----> object
| |
(member function 1) (member function 1 or other)
最后,俺很负责任地给这个AI模式起个拉风的名字:神经型反应式AI(Neuronalreaction AI, NR)