首页 > 动漫同人 > 女装大佬养成计划 > 第332章 「《乂世界》」

第332章 「《乂世界》」(1/2)

目录

一个开放性世界,若要保证其有足够的空间给玩家探索,那么npc的数量肯定不能少,否则仅凭几十或几百个npc根本不足以支撑起一个低武仙侠世界。

要让玩家不感觉到违和,几千上万个不同的npc是最基本的,甚至还要有更高的可扩展性。

但是,个人pc的性能是有限的。

竹猗会拿出这一份策划书,自然是心中已经有了大致的解决方案。

首先,不可能给每一个npc都分配足够的资源,以让它用完善的经历来丰富自身的设置。

除非有人奢侈到用超级计算机来玩这款游戏。

那么,根据npc的重要性,竹猗大体将它们可划分为三个等级:处于玩家角色「探知范围」内的npc,如队友;影响世界进程的主要npc,如某座城池的城主;不干涉世界进程的边缘npc,如某村庄的路人甲。

对于第一类npc,自然要保证其最大程度的智能,并可以在与玩家的交互中不断学习、完善自身人设,同时也是作为游戏中的可攻略对象。

而第二类npc,则可以删减掉大部分细节化的交互,只对其进行大致行动上的推演,并通过其决策一定程度地影响到玩家角色所处的游戏世界。

至于第三类边缘npc,则处于一种近似于「薛丁格的猫」的状态,它们只保留一个索引,玩家不与其进行接触时全部数据皆处于空白状态,在游戏中以「群体」的形式影响到游戏世界的发展走向。

如此一来,当玩家需要接触具体某一位第二类或第三类npc时,只需要在用到时才补全它的「经历」并适当地将其重要性往上升级即可,在保证不与已有设置冲突的情况下玩家并不会察觉到这个npc在被「观测到」的这一刻前是否存在。

二类与三类npc的行动逻辑,还是比较好处理的,即便换一个水平菜一点的程序员都能弄出一个解决方案,只不过最后的效果可能没有竹猗弄出来的那么好而已。

难点在第一类npc。

【这个先不急。】

竹猗把条理全部整清楚后,并没有马上着手开发一类npc的AI。

其实,现有的AI原理很简单。

和许多人误以为的「进程」会自主思考完全不一样,其作用方式无非是对于「输入」和「输出」的管理而已,只不过处理逻辑要让「观测者」认为是人类或像是人类。

比如,你问AI:「你是机器人吗?」

AI回答你:「是的。」

这或许只是一个简单的反射,按照一定规则匹配到类似「你是机器人吗」这样含义的「输入」时给出「是的」这个答复作为「输出」。

它或许是一开始被设置成这样的,也可以是被「调(喵)教者」新创建的一个反射,这是最简单无脑的一种实现方式。

那复杂一点呢?

自然是要让进程能够自主解析出「问题」的真正含义,并在「记忆库」中挑选出一个合适的回答,甚至可以基于「趋利避害」的原则给出一个不一定正确的答复。

至于如何管理「记忆库」,以及AI究竟基于哪一种原则做出回应,那就得看这一AI的具体实现的算法了。

在游戏中,玩家当然不会只与npc进行聊天。

所以,竹猗得先完善这款游戏里有哪些「输入」与「输出」,也就是虚拟世界内角色的「信息收集」与「行动决策」,才能开始编写如何让AI面对游戏世界内的不同状况作出何种反应。

也就是说,大体框架得先搭好。

……

某日,社团活动时间。

「初始化的时候,可不可以根据pc性能不同,创建一个大小不同的虚拟世界呢?不然明明有一台高性能机器却要被平均水平拖后腿岂不是郁闷。」清秋找竹猗商量。

竹猗并没有闷头一个人码代码,经常也会同其他人一起沟通各种设置上的问题,并且也一边教授莫问一些「编程」上的知识和技巧。

「有道理。」竹猗若有所思地点点头,「那就在创建新世界的时候给一个世界大小的选项,pc性能不够的只能选『小』,性能有余裕才可以选择『中』、『大』或者再往上的选项。」

保不准有人会拿工作站玩游戏呢,一切场景和npc都是随机生成的话,要达成这个效果只需要多设置一个数值就可以了。

在旁边的莫问微微张了张嘴,最后还是没有说话。

「会很难吗?」清秋突然问。

「没啊,不算难。」竹猗无所谓地说。

确切地说,相对这个项目来说,已经算是比较简单的一环了。

不过是如何根据算法绘制一份合理的世界地图而已,并恰当地在地图上的每一处填充上合适的元素。

只要能完成这一步,世界小或大无非是在初始化阶段计算量少或多的问题。

竹猗拥有Lv.5的「编程」,自然对此信心满满。

接下来的这两天。

他先在开源项目里找出一些绘制随机地图的项目。

这很重要。

尽管他很厉害,但一个人的精力始终是有限的,如果可以更简单地获取到一些信息,没必要自己耗费精力与时间去重复一遍已经有人做过的事情。

然后,将其抽丝剥茧,并依据自己的需求对其改造。

有前人做好的轮子,他改造起来就特别的顺利。创建了一个「X-map」的独立项目,用于保存经由自己加工过的随机地图算法,并将其作为开源项目上传至BitHub。

他顺便在介绍里注明了所有参考的项目。

虽然内核算法都已经被他改得面目全非,但能这么快完成这一步也多亏了前人的努力和无私,他自然也不会吝啬这一点研究成果。

把项目开源出去,不仅可以帮到有需要的其他人,也可能会有其他高手一同完善这个项目。

当然,竹猗觉得不太可能有Lv.5的高手来帮他完善这种小玩意就是了。

把项目上传后,他也没有关注后续的情况。

有没有人发现,竹猗反正又无所谓,他已经不需要通过这种事情来找成就感了。

竹猗又花了一点功夫,在基本还没什么内容的「X-game」项目成功添加上了世界初始化的功能。

暂时留出了很多的空白,甚至图片纹理的素材都是先随便找的,只要保证初始化的时候能够绘制好一幅完整且合理的世界地图就行了。

……

距离第一次会议一周后。

清水高中,游戏制作社的社团活动室。

「如何,是不是很像那么一回事的样子。」竹猗颇为高兴地向大家演示了「世界初始化」的功能。

在他身后的幕布上,不仅仅有一幅画风凌乱但像模像样的虚拟世界的地图,特意展示出来的debug弹窗里还罗列出了根据字库随机生成的城镇、秘境、npc、植物等,并详细注明了各自的分布情况。

「这……」

清秋惊讶地张开了嘴巴。

哪怕不去思考这些东西是怎么生成的,光是投影在幕布上展示出来的这一部分,看起来就不像是工作量很轻松的样子。

「太厉害了吧。」李佳冉说出了大家的心声。

「不仅如此哦,我特意写了一个背景npc以及npc群体的AI,整个初始化阶段就是从世界里出现第一个具备灵智的npc一直依据AI推演到玩家设置的年代为止演化而成的世界,所以玩家在游戏世界里找到的每一件重要物品都是可以追根溯源的。「

即使是竹猗,也不禁带上了一点炫耀的语气。

这个说法听起来很夸张。

但其实也用了取巧的方法,背景npc差不多是二类、三类npc的弱化版,并推演时基本上是以年为单位只记录其中的重大事件。

如果玩家探索到具体的细节呢?

本章未完,点击下一页继续阅读。

目录
返回顶部