传统的NPC只担任很简单的任务,比如说派发任务,教授技能,他们每天干着重复的事情,说着重复的话,生活了无生趣。如何让他们活起来?只有活人才会有爱恨情仇。
在我看来,真实世界的人之所以不同,是因为每一个人都有完全不同的生理需求和心理需求,在这两种需求的驱动下,结合个人的性格和认知水平,走上了亿万条不同的道路,当然在这个过程中还有很多的机遇和磨难左右着道路的方向。
传统的智能型Npc往往没有这么复杂,他们都是以事件机制驱动,受玩家身上的属性,任务以及触发条件共同驱动,他们无欲无求,最多加入随机走位,随机说话,让他们看上去像个活人,其实他们只是龙套。
想让NPC活起来,他们必须有欲有求,因为即使真人没有了需求,没有了欲望,也会躺在床上混吃等死。
Npc的生理需求很容易实现,只需要给NPC加上定时递增、递减相应属性值的能力,再定义一些触发值,形成生理需求事件,这样NPC就能感觉到饥饿 寒冷 ,同时吃饭穿衣都要花钱,这样NPC就有了能动需求,配合NPC的职业,让NPC有收入的来源,没有职业的NPC可以靠接任务生存,这样NPC就算是初步动了起来,这样在游戏中我们就可以看见NPC做工,买菜做饭,吃饭睡觉,洗衣换衣等等,城市看起来也多了几分生气。
个人觉得生理需求模块可以不做那么复杂,只做会影响NPC视觉效果或可能产生社交碰撞的一些基本生理需求,比如说吃饭,睡觉,穿衣,生病,受伤等,其他的就不用考虑了,如上厕所的问题。
生理需求最基本的功能是驱动NPC的基本流动性,让Npc不站在那里发呆。更进一步将,亦可通过生理需求触发协同性心理需求,比如饥饿可以引发乞讨,抢劫等。
想要让NPC更加鲜活,灵动,有爱恨情仇,必须要依靠NPC的心理活动。
做NPC的心理需求模块真的有必要吗?
生理需求的算法浪费不了多少算力,心理需求,心理活动的计算耗费大量的算力,这真的有必要吗?