景澄手游网

如何管理超大型MMORPG游戏里的NPC人物

编辑:景澄手游网 时间:2023-02-09 11:31:01

如果你是个开发者,要创建一个超大型的mmorpg游戏,为了让游戏尽可能像真实世界,由AI创建并管理大量虚拟游戏人物。

如何管理超大型MMORPG游戏里的NPC人物

这些游戏人物NPC会像我们真实世界的人一样,在虚拟世界中生老病死,也有名字工作家庭孩子,只是每个NPC的故事都是写好的游戏剧本,一一对应。

问题来了——你怎么才能把NPC和他们的剧本对应起来呢?

NPC的名字是可以重复的,同一个名字的NPC在数据库里有几千上万个。你拿着一个“李四”的剧本在数据库里一搜,好嘛,蹦出来三万八千零四十五人。

你怎么办?

不要紧,创建人物的时候捏的脸都不一样,你用数据库里捏脸的数据去找,就是麻烦点。但是问题又来了——有的人长相接近,你仍然无法准确判断这个NPC到底是哪一个。

如何管理超大型MMORPG游戏里的NPC人物

​新来的毕业生喊:用编号啊!数据表里单独加一栏编号不就可以了?每个人唯一固定!

嗯,你一个数据库几万条数据几十几百万条数据的话,用编号没问题。但数据库里的条目达到几亿、十几亿、上百亿的时候,你看看这个表多大?

这个栏位一开始是个位:1、2、3、4、5、6、7、8、9……后面就是九位数:952368271,随着游戏运行时间的延长,就会出现37849818465578945957……而且还会持续增加。如果你是数据库后端,会觉得这样的长度结构合理吗?

如何管理超大型MMORPG游戏里的NPC人物

所以编号、名字、捏脸特征,这些都不可取,没法准确定位到某一个特定的人。

那怎么办?

还有个办法。数据表里在人物属性里加一栏:时间戳。

时间戳(timestamp),UNIX时间戳的格式按照规范为 :年份-月份-日期-小时-分钟-秒钟,是否要精确到秒,可视开发者需求而定。且数据表长度固定,不会无限增长。

创建游戏NPC人物时,用当时的时间戳加入人物数据表即可精准定位,甚至不需要知道NPC的姓名,直接检索它的时间戳就能定位到相应的人物,并且绝不会出错,因为时间戳是唯一的,更不用说同名同姓同样外观了。

所以,你作为开发者、管理员,当游戏中一段关于“李四”的剧情需要被触发,你首先会在数据库中检索对应的主角NPC姓名,比如你搜李四,就开始检索数据库:“name='李四'”。如果能直接找到唯一的李四数据条目,就没必要做其他操作,直接选择这条就可以,减小对服务器造成的查询压力。

如果数据库中有许多类似的同名条目,那就在检索结果中,再次检索条件上加一条李四创建时的时间戳:“timestemp=1997-12-14-23-45-12”。

唯一一条记录出现,选择这条名为“李四”的NPC,开始在游戏里跑他的剧情程序。

现在,能明白我说的是什么意思了嘛?

如何管理超大型MMORPG游戏里的NPC人物ufb景澄手游网

手游招托,要求嘴严、充值0.1折、开局满VIP!!!

进入微信搜索微信号:JCCEE001(点击复制微信号)

精选游戏 更多
相关攻略
其他网友都在玩 更多

手游小助理

游戏咨询

微信号:JCCEE001

点击复制

长按识别二维码或复制微信号搜索添加

成功复制微信号

前往微信搜索添加...