灵魂的三原色吧 关注:141贴子:12,688
  • 0回复贴,共1

游戏AI与简化模拟的笔记

只看楼主收藏回复

【传统实现方式】
1、朴素AI:用if……else……分支对NPC行为进行分类和判断
2、有限状态机:将NPC行为抽象为状态,用事件连接状态,可形成网状逻辑
3、分层有限状态机:状态下包含子状态,可细化某一状态的内容组成
4、行为树:从根遍历条件逐级进入子节点到执行,灵活易扩展适合个性化的攻击逻辑
5、目标导向的行为规划:设定AI目标并给予一系列潜在行为(规定外界的先决条件与执行后对外界影响)由AI根据这些行为的因果自主评估执行最优解,接近人类的思考方式,也是简化方案的核心
6、协同多智能体:对群体AI进行调度,实现多单位联动
7、机器学习:将传统分支事件替换为定义了触发条件(入口)和一个或多个分支结局(出口)的黑盒,两者间的路径是由玩家不断触发NPC的动态实时反馈来确定的,类似目标导向的行为规划但NPC的决策是根据学习得到的
【简化实现】
基于设定的行动与基于记忆的交互,或者说决策受设定(个性)与记忆影响的目标导向的行为规划
1、指定基本信息作为行为决策的参数
——基本信息:姓、名、性别、年龄
——互动设置:视野半径、感知半径(注意力范围)、记忆流条目数(记忆力)
——个性与作息:先天(性格倾向)、后天(职业与目标)、现状(预设的人际关系)、作息(日程表)
上述信息可驱动NPC按日程表进行基本(单人)行为,也将决定与玩家或其它NPC交互时的倾向
2、记忆与检索、判断与反馈
——NPC感知周遭环境,将感知半径内发生的事记录下来,加入自己的记忆流中
——检索记忆流对NPC的计划(未来的行动队列)与反馈(与玩家或其它NPC互动的结果)产生影响
上述机制可驱动NPC进行交互(多人)行为,如:
——共享信息(记忆并传播从其它NPC处得到的信息,如将记忆的信息加入自己的闲话队列)
——互相配合(记忆得到的信息并作出反馈或计划,如接受玩家或其它NPC提出的请求或安排)
——建立关系(记忆信息并在日后作出反馈或尝试更新信息,如询问玩家或其它NPC以前记忆过的某事后续)
串接起来的例子:NPC按固定作息行动,遇到玩家或其它NPC,按个性倾向(如内向/外向决定是否主动接触)与记忆(如目标与自己是否有恩怨决定是追是逃)决定交互方式,开始交互后按个性倾向(如目标驱动决定是否接受对方提议,或按喜恶决定反馈的态度)与记忆(如是否询问任务完成情况、是否请求归还道具)决定结果,结束交互并将相关记忆写入记忆流以供日后其它交互使用。
与任务玩法有关的例子:事件入口为NPC货物被劫,NPC按目标决定是否讨伐山贼夺回货物,NPC按内外向决定是否主动求助,按记忆判断是否求助玩家(判断信任度、战斗力、正义感等),按自身战力判断是否同去,按内外向判断是否求助更多人(其它NPC按各自目标、性格、记忆可能演变成团战、逃避、推荐玩家等情况),事件出口也有多种,如(无论单挑还是团战)讨伐了山贼并夺回货物,(无论潜伏还是赎金)单纯夺回了货物,(无论等价物还是替代品)单纯满足了NPC目标,总之,NPC行为出发点均基于目标,而过程基于个性与记忆。同理,山贼基于目标夺取货物既可使任务自发出现,也可引出其他任务(如夺取货物只是行为,山贼目标是筹钱救人)。
目标导向的行为规划使世界活了起来(产生变数),而记忆机制则使世界真了起来(积累定数)。


IP属地:北京1楼2023-08-02 13:00回复