[PHP Mud]怎么让NPC看上去更像活人(下)

上一篇讲的NPC的生理需求推动NPC基本能动性,让NPC能够自主的动起来,这也只是比传统的mud游戏有了一点点进步,并没有从根本上让NPC变得更加真实,更加的灵动。

想要NPC更鲜活,Npc必须有自己的主观意识,虽然在现阶段以我的能力实现起来困难重重,但是我还是想试一试。

这算法在我看来应该非常复杂:内在的年龄,阅历,情商,性格,好恶,实力等因素,配合外在的或临时因素,如心情,任务,身份,环境,形势,人物关系等等,在特定的触发条件下,辅助NPC做出决策,通过算法直接模拟出ai部分。

以上算法的优势是运算速度快,不需要机器学习的过程;缺点也很明显,因为算法简单,而且不能成长及变化,这样的NPC极容易被人套路。

暂时能想到解决的办法就是,可通过内在可成长因素来逐渐调节Npc,当然最主要的还是不断的优化算法。

年龄、阅历、情商属于数值型元素,性格、好恶等属于标签型元素。

各种元素之间都有一定的作用关系,比如年龄因素可以确定阅历的大致范围,而阅历的水平又基本上可以确定情商的范围;在情商的辅助下,可以更好的生成好恶及性格,比如情商超高的人就会减少出现缺陷性格的机会。

在配合大基数的随机调节因子,可以随机给NPC贴近于合理又差异较大基本设定。

依靠这些比较关键的人物设定作为算法元素,基本上可以实现Npc差异化决策,比如说当NPC在执行战斗任务的时候,阅历可以决定是否随时打开反隐形反侦察,是否在关键道路上设置阵法;性格贪婪,自私,无原则,胆大妄为有可能做出杀死任务相关NPC,以便达到独占任务奖励的目的。情商决定当完成上述目的时自身实力不够,是否邀请其他npc或者玩家一同参与,并就利益问题讨价还价。

说起来简单,当遇到每一次决策的时候,都需要独特的算法支撑。我估摸着能够支撑一个NPC活出个人样来,至少要超过200个心里决策算法。

且行且看吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值