游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1342|回复: 1

[讨论] NPC自由发展的实现思路有哪些?

[复制链接]

0

主题

1

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2019-1-7 12:45:28 | 显示全部楼层 |阅读模式
像太吾绘卷那样的,一个NPC自由发展的世界(其实太吾这一点做的一般),应该采用什么样的实现方式?

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

希望和大家一起讨论一下

0

主题

1

帖子

15

积分

新手上路

Rank: 1

积分
15
 楼主| 发表于 2019-1-7 15:16:27 | 显示全部楼层
NPC之间的社交关系实现,不可能精确到每个人的之间的关系,因为那样你可能要维护一张N*N的巨大二维表。我的思路是做一个声望系统,跟消息分发系统类似,NPC同样拥有多种声望(城市声望、门派声望、职业声望),这样只要维护三个非常小的表就可以实现所有NPC之间关系的差异化。再给NPC设置一些高权重的特殊关系列表(恩人仇人父母爱人子女等),来实现一些特殊的关系(同门死敌、世仇情侣等)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-4-25 23:03

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表