像太吾绘卷那样的,一个NPC自由发展的世界(其实太吾这一点做的一般),应该采用什么样的实现方式?
先说一下我的思路,抛砖引玉:
1.首先世界中最基本的变量来驱动环境发展,变量分固定变量(周期性资源变化、定时的世界事件等)和随机变量(随机事件和随机资源变化等)
2.然后用消息分发系统来关联世界变量与NPC的行为,这个消息分发系统可以是城市、门派、职业圈等等的消息源系统,监听各种世界变量,比如商会监听商品产量,某门派监听某神器产出消息,盗贼圈子监听城内镖局行为,捕快监听劫镖行为等等
3.然后是每一个具体的NPC,他们可以采用订阅者模式,同时订阅多个消息分发系统,比如张三关注了杭州城、捕快圈、神刀门三个频道,接收这些频道分发的事件。
4.然后通过分发下来的事件,再结合NPC本身的基础性格(正义、邪恶、贪婪等等)和其他属性(社交情况、历史行为、生涯目标等等)来生成相应的行为,这里应该是最复杂的。比如张三订阅捕快频道,接收到通缉令事件,根据自身情况形成“出城寻找盗贼李四”的行为,或者是王五收到消息“某地生成了新的神药”,根据自身社交情况“有朋友重病,需要神药”,再根据性格来生成行为“去某地求药”、“去某地偷药”
5.NPC的行为反作用于世界变量,使世界出现新的变数,进而循环生成新的事件,以此推进发展。
希望和大家一起讨论一下