|
写了这篇文章给他们以后,由于那里的版主说这不能叫随机任务,所以我改名叫山脚含树公式化任务模式,结果后来他们出了一个类似的随机任务系统,除了连锁其他都实现了。
一年多以前写的,有些内容表述不科学或??拢?朐?拢?攵孕怨?康亩温淙艨床欢?胩??/color]
山脚含树公式化任务模式
1对于游戏中的任务类型抽象成公式,把具体内容归纳为元素。(类型做成执行部分,元素作为变量)
2设计公式和元素的组合,来批量的生成大量单步骤的任务。(任务的对白也可以同样生成)
3任务需求与任务奖励的重合,可以用堆栈模式把单步骤任务自动转化为连续的流程任务,自动产生提示。
4利用类继承的方式简化制作过程,并且有一定的自由度,可以出现模糊任务。
5利用元素价值的量化,实现自动计算任务奖励。
6用任务引擎和数据库方式建立任务系统,减少冗余度,并且有利于翻译成其他语言。
难点:公式的建立过程
时间复杂度:由于发生任务是间断的计算,运算量并不会很高。
错误检查:公式如果错误,会在每次运行这个公式的时候都会发现,
元素错误则可以在调用这个元素的时候发现。
序:
游戏的场景、技能、物品、功能,构成了游戏的意境;游戏的剧情和规则构成了游戏的内涵。意境可以很快的、直接的看到。比如处在什么时代,魔法具有什么特点,职业具有什么功能,场景有那些特色等等。游戏中不是必须有剧情,单纯追求快感,没有实际意义的游戏也可以存在。
游戏的世界观需要在游戏过程中慢慢累积体现。改变任务的设计思路,一个NPC通过多个任务来反映其身份,能力,人际关系,甚至部分思想,用多个任务塑造好一个NPC,也看清了其人际关系等,可以增加游戏的真实感;对多个NPC的塑造联合起来则可以反映整个时代的状态。对于NPC的身份和功能的设置可以很详细,通过交流可以体验到虚拟世界中的人文特色,NPC的思想和生活和对玩家的看法等等。
在单机游戏的任务(有的人称之为“剧情”)中,一个NPC的任务、奖励等特性基本是固定的,触发条件除了点击触发还有走到特定区域内触发任务,还有定时触发任务等,并且同一个NPC在完成任务之后被撤下,可能用在另外一个地方,手工安置上新的任务。以实现所谓“出人意料的、感人的、高潮迭起的”大作级剧情。手工摆放的固定功能固然可取。但是对于网络游戏中的功能就显得不足了,网络游戏的NPC一般不可撤回,不可移动,不可跟随,不可主动摊派任务,不可轻易改变状态(友好、敌对),所以如果只有一个任务,利用率就很低了。设计任务可以围绕NPC进行,这样可以避免出现围绕玩家设计任务的单调性。这样同样有利于让游戏中的NPC更真实。也有利于制作人员的安排和修改,可以创造出没有流程攻略的任务。甚至改变NPC的状态,比如改变对玩家友好、敌对状态,在房间模式下是可以小范围实现的。
这种模式的作用并不是拆散任务顺序、改变流程,而是要追求真实感、神秘感,是为了实现每个任务都有多种完成方式。
公式化随机任务系统(基础篇)
公式化的前提就是游戏的任务具有可分类特点:
1寻找(人或物),2战斗,3送信(信息或解谜)其他类型暂时不考虑,比如宋金、月饼活动等,那个属于活动,应该算功能,而不是任务。
而语言又分为主谓宾模型,称呼分为尊称、一般称呼和蔑称,而且根据身份具有高度的等级特点。人际关系具有连锁(可能递减)的特性。
所以根据规律生成的任务具有数量大,针对性强,制作简单的特点,至于防止错误方面,如果公式错误是严重的问题,但是公式数量有限,而且基于语言、行为的自然规则,所以很难出错,至于元素错误则是小问题,影响不大,修改也容易,而且如果是输入错误或制作不完全,可以通过程序自动检验机制查出错误。前期几乎所有的工作量都在于建立公式和数据库上,后期维护主要是数据库扩充,公式其实没有多少改进的必要。扩充的方式很简单,只要增加元素就可以了,不用改变公式。由于任务不是直接手工编写的,用不了多少工作量,如果增加的功能不完整,比如寻找物品但是没有目标物品的取得方法,软件会自动给出提示,数据库管理员就会及时发现这个问题了,要检查数据库也很容易,可以自动列出需求物品的多个取得方法,也可以自动查找连锁任务是否有可能形成过长锁链或者死循环。可以自动评估单个任务和连锁任务的复杂度,并且给出适当奖励。填写元素是在一定范围内做的,出现错误还有提示,应该也不困难。制作这种模式的任务系统需要借鉴一些解谜游戏和养成游戏的元素,对NPC的刻画中需要对社会、心理学有比较多的了解。工作效率方面,工作量应该是比较大的,但由于批量化,高利用率,低错误率的特点,这种方式并不会造成制作方面的负担,而且由于游戏内容丰富、乐趣提高,游戏的寿命可以大幅度延长,这样还能有助于提高任务以外其它组件的利用率。
游戏中任务的特点:
理由:通常不可以直接的就给出一个任务,做事情需要理由,不过既然是游戏,只要一个说的过去的理由也就可以了。
实际上游戏中做一件事的理由也就那么几种:帮助别人,拯救世界,追求心上人,获得奖励等。
难度:难度可以影响到游戏的挑战性、体验性和乐趣。
难度有累积上的(时间、等级或者友好度)、碰运气的、解谜方面的、操作上的和玩家互相配合默契程度的。
风险:游戏中的任务可以是不能过于顺利完成的,有失败的可能。
由于很多游戏中不允许毁灭性失败,所以对于失败的任务可以取消,当作没有发生过,重新做,或者通过其他条件达成。
奖励:游戏中需要奖励才能吸引玩家探索,所以奖励是任务的必备项目。
奖励可以根据任务类型来确定奖励类型;根据难度、风险来全自动评估,通过连锁度加成,并且根据玩家自身情况决定奖励的物品等。
(一)资料部分:整理资料阶段需要了解的内容,搜集、分析这些资料的过程实际上也是对社会,对人性的逻辑化分析。
一部分是给管理资料的人看的,有助于安排任务,也有利于搜索和整理,另一部分属于生成任务直接需要的。
NPC需要有一定的属性:
身份职位:
说话内容往往与职业相关,物以类聚,人以群分,职业也与交往的人的范围和类型有关,职位还可能跟亲戚职业有关。一人得道,鸡犬升天,一个高官往往能让全部亲友处于比较高的地位和比较大的能力,一部分原本是劳动者的亲友可能放下原来的工作。
自身状况:
如果身体不好往往要求助于人,可能有某些爱好或特殊习惯,关系到这个NPC的任务内容。另外,对于曾经帮助过NPC的玩家,NPC可以有记忆,懂得知恩图报,对于志同道合的玩家,NPC可以有感觉,往往对利益不计较很多,表现得很亲切。
以上两个方面的设置有助于在填充元素时采用“宏”方式,比如设计一个元素子集让所有弱势群体一起具有寻求保护公式,让体弱者批量出现药品元素需求。
性格特征:
包括语言与行为的方式,语言具有职业特色,还反映个人性格。行为反映了它的生活经验与世界观。NPC可以出现类似人的思维,有私心,也有良心,太吃亏的事情不做,太缺德的事情不做,当然要因人而异,也有一些趁人之危的。比如这个NPC的类型属于:自私自利型、固步自封型、忽冷忽热型、乐于助人型、趋炎附势型、自命清高型、有情有义型、有特殊嗜好型等等。
语言特点:比如自我称呼特点,地区特色(比如方言),另外语言往往跟场合(是否正式)、事件(求助还是助人)、身份等相关。
人际关系(影响力):
一个NPC对于玩家的好恶不仅仅会影响到关于这个NPC的任务,也同样影响到其相关联的NPC,比如亲友,也影响到其敌对NPC,比如竞争对手的关系,还包括解除误解、隔阂后从对立转向友好的NPC,也包括揭露阴谋后的友好转为敌对。人际关系甚至包括又爱又恨、反复无常等任意类型。与一个处于行业巨头地位的NPC认识以后,会造成同行业甚至相关行业(包或敌对行业)的大量NPC发生变化。帮助一个NPC或者表示自己的意见以后,可能使玩家地位发生微妙变化,变成某一个阵营或利益集团的成员了。
地理位置:
一方面是把这个NPC摆在哪里,一方面也就限定了这个NPC的一些特征,比如邻里关系,比如其生活经验中的认识的人的范围等等。把地理位置单独作为一个关键词主要是考虑设计时候可以更方便的搜索和管理。
动态范围:
对于玩家职业不同,声望不同,过去经历过的任务不同,NPC给出的任务也不一样。任务的内容与玩家职业应该关系密切,不能提出玩家没有能力解决的问题,也不能提出完全不符合玩家身份的问题。此外还包括超越正常状态的能力,如果玩家和此NPC关系密切,而且求助于他的时候,最多可以多么反常,可以做哪些平时不敢或者不愿意做的事情。另一个方面是,在正常情况下,此NPC办事情的尺度范围多宽,对同一个人可能做出的行为差别有多大。
特殊生活经历备注:
往往早年的一些经历,可以使一些人具有与身份职位反常的社会地位和人际关系。一个NPC的经历可能要在经历了很多事件以后,慢慢透漏出来,而且与玩家的感情要好,玩家声誉要符合条件,这样才有可能慢慢揭开NPC不为人知的秘密。还有一些不直接诉说的部分,这个部分不是直接产生任务的必要成分,属于资料,但是有利于安排任务。
修正、保护与扩充:
很多NPC之间的关系是双向的,比如亲友关系等,还有单向的,比如某些仇人关系,需要设置校验系统来发现并修正简单的逻辑错误。
要保护上述资料的变化不要太大,避免性格、身份等特征混乱,不要把功能放在错误的NPC上面。
NPC在安排的时候可以留有余地,日后扩充的时候比较容易进行,有的东西不要发展的太全了,故事讲的一点不剩就没法接了。
(二)数据库的建立与整理,这个过程就是尽可能用收集的资料模拟出一个个完整功能的NPC,进而拼出完整的虚拟世界。
激发任务的条件:
检验每一个任务的状态需求,包括玩家状态(身份、能力、声望、阵营、人际关系)
NPC状态(比如限时任务中的问题)
还要考虑先决条件,因为很多复杂度高的任务要激发先决任务后才可能慢慢揭开一个复杂的故事。NPC的好恶,可以影响任务的简单或苛刻。
系统取向:引导玩家在人少的区域进行任务,有利于平衡游戏内的人员分布,充分利用现有资源。
任务本身类型:
战斗需求:请玩家去与特定NPC战斗。往往需要战斗等级作为触发前提。
物品需求:要玩家寻找制定物品,通常是为此NPC建立需求物品库,在生成任务时随机抽取一部分物品种类,要玩家的能力所能及为前提。
这些物品包括采集、制造的和需要从其他NPC处获得的,采集的可以算是简单的任务结构,对于需要从其他NPC处获得物品的情况,
属于任务的横向延伸,关于任务延伸后面再讨论。
情报需求:去其他NPC处打听情况,或者送信等。一般需求不是很多,可能要求阅历、身份等等,情报需求极可能有前后很多连续任务,
种类也不完全一样,得到的信息往往是一些剧情提示,甚至一些秘密的资料。
混合需求:很多时候一个NPC可能要求玩家做多个事情。
提供能力:
根据上面说的性格特征和利益原则,要NPC提供帮助往往是需要条件的,不仅仅是利益条件,也可能是对玩家本人的一些特性提出要求。
向NPC寻求交流或者帮助也是任务连锁的方式之一。
提供物品:一部分是玩家可以采集或者交易获得的,一部分是只有少数几个NPC可以提供的。向NPC索取物品有一定几率触发其他任务,
比如NPC要求用其他物品来交换(寻物)、因为某些原因不能提供(调解、战斗)、物品没有完工(玩家自己或找人深加工)。
提供信息:与情报需求对应,或者是一些帮助说明,甚至也包括给新手的介绍。
提供关系:用对话考验玩家的能力与思想,如果符合要求可以提高某些无形属性,比如人际关系等,达到继续任务的目的。
完成任务的结果(奖励):
经济奖励:赠送物品或者金钱,交易折扣等。
过关奖励:任务作为一种通行的工具,还包括学习武功,入师门等。
信息奖励:告知某人某处有好东西,玩家可以去寻找。
任务奖励:触发一个绝对合算的好任务,做完以后可以得到丰厚回报。
关系奖励:此NPC及其相关联NPC友好度提高,当日后做其他任务的时候,比平时更大的便利。
其他奖励:比如声望、统率力提高,也可以直接获得经验值。
连锁任务方式:当玩家需要此NPC帮助时,NPC可能根据情况提出一个要求作为交换,根据两者难度关系,分为递增,保持,递减,固定。
交往难度:提高友好度的容易程度、友好度可提高的余地、友好度提高以后的效果。
任务的校验与过滤:
在某些时候,任务的发展可能出现与常规思维不符或者两个任务之间需要有排斥关系,这个时候需要去掉两个任务的连接可能,
让他们只能在不同的时间出现,可以通过任务类型限定和各种等级分类(比如地位等级,关系等级等等)来修正这些问题。
绝大部分的游戏中的支线任务都符合上面的条件,甚至主线任务都在很大程度上符合,尤其是开放式RPG,可以说就是这样拼出来的。实际上,所有游戏中的任何任务,还有通过NPC产生的一部分“功能”,都可以用上面的规律概括,甚至人类实际生活中的行为,也可以用这种规律概括,而按照规律模拟出来的任务,可以代表世界上任何可能发生的事件,需要做的,就是建立一个框架,然后收集单位元素,整理以后放进数据库里面,要建立真实的任务系统,需要的就是大量收集相对独立的元素,然后统一整理就可以了。
任务的延伸(扩展篇)
横向延伸:连锁
当一个任务中需要更多NPC参与的时候,就属于横向延伸,如果范围太小,完成的的太快了,就会很单调。如果范围太大,会造成没完没了,玩家跑了很多路还没有做完,会很疲劳的。所以要限制涉及的范围和复杂度,在产生任务的时候建立难度累加评估系统,一个任务的复杂度根据需求元素累加,得到最后的复杂度,任务的难度可以决定最后给多少奖励,也决定了截止任务的随机扩展的时机。当一个任务没有完成,是否给出另外一个任务呢?可以,但是应该限制数量和范围,由于任务在一定程度上是随机的,有可能出现冲突,也有可能出现交叉甚至重复,所以为了避免出现错误和逻辑混乱,应当严格限制任务的创建。
连锁可以自动产生攻略:新增的任务嵌套在原有攻略中,例如原攻略为“[接受某任务]→[任务的完成方法(可能有多种方法)]→[回复任务]”而当选定某种任务完成方法后,中间的步骤替换为“[接受某任务]→[已决定用某方法完成子任务]→[子任务的完成方式(可能有多种选择)]→[回复子任务]→[回复上级任务]”,在这里先接到的任务最后完成,中间新增的任务接到的越晚就需要越早完成,作任务的顺序类似于堆栈。
纵向延伸:个性化、友好度
有的任务具有前提属性,比如在某公式、某元素被使用过以后才可以被开启。比如当一个NPC与玩家出现过一次任务以后,再出新任务可以出现原来不可能有的隐藏内容。有的任务具有友好度等数值限定,需要关系良好才可以开启这个功能。同一个NPC对待不同的玩家,容易出现的个性化任务也不同,比如让打猎技术高的人交猎物,让打造技能高的人打造制定的物品等。同样一个任务,NPC可能一次给出多个解决方法,比如治病的任务,可以玩家采药解决,可以资助一些钱解决。可以说服药店医生帮助解决(需要声望高的人),甚至可能事先碰巧已经获得这种药,直接就解决了。任务的执行方式可以变动,还是治病的任务,如果选择了采药,可是实在找不到,可以改选其他的,比如给钱。说服药店医生失败了,可以寻找医生指定的其他药材,然后交换所需的药材,也可以直接买。由于中国语言丰富多变,游戏中不可能用输入方式对话,只能选择,所以如果选错了就不要再出现同样的选择。任务需要出现一定的过滤,比如在某个特殊情况下不出现某个分支,尤其是比较明显带有重大后果的,或者可能和其它内容发生冲突的,还有情理上不能放在一起的等。否则大家都用穷举法就没有意思了,正确答案可以不止一种,但是如果还是选择错误,自动用其他方式代替,不出现完全固定的对话。
如果有必要,可以设置最后防线:
放置特殊NPC,与之对话可以搜索数据库,并且重新检验任务正确性,然后提示需要找的人或物的位置,剩余的解决方案等。可以在寺庙祈祷事事顺利,让任务不再分支。如果选择错误,当前子任务不满意,可以用适当代价允许任务链回退,从若干步骤前重新选择子任务。如果不愿意做了,也可以让特殊NPC帮忙彻底销了这个任务。
任务系统的更新:经过一段时间,一定有很多人都经历了大部分的事件组合,为了避免重复单调,应该添加适当新NPC和新的对话,任务模块等,并且适当调整NPC的连接关系,增大任务的活动范围。随机任务模式可以向下兼容固定任务。
类型一:(单体非主线可连锁任务)
产生一个任务:
1在数据库中寻找此NPC可以产生的任务类型,并随机选区一个适当的类型
2读取此类型的模型框架,并且列出需要补充的元素
3检查玩家的身份和经历,还有其他状态
4根据状态在数据库中查找此NPC任务元素中匹配的元素,与玩家身份、经历等状态相关的元素优先出现。
5把元素添入模型
6在数据库中寻找此NPC的语言特征,补充出符合身份的上下文、关联词、称呼等
7在数据库中寻找目标(可以是物品、信息、人物等)的状态,以便于给出任务提示,比如物品的来源和信息的下一站的大概范围。
8补充,对于不同类型的模型,还可能根据具体情况出现更多特征点。任务内容必须完全由服务器生成,但是配套上下文可以在客户端做。
NPC数据库:模型种类、元素种类,身份(语言)特征,关系特征,其他信息。
模型数据库:各种模型的框架、可以使用此模型的要求,元素添入模型的方式。
专门设计一个信息库,它承担着文化、趣味、解谜、剧情等很多功能,还包括多种阵营间间复杂关系,对于许多事件的逐步探索,解谜任务的分支和结果,养成任务的社会人际关系的培养等。
丰富的闲聊语言:虽然一个NPC可以产生数十个甚至更多任务,但是也不能总在一个地方接任务,没有任务的时候需要一些闲聊语言,不仅仅是说明这里没有任务,同时也是体现NPC个性的方法和了解游戏时代背景的途径。
比如一个工匠,刚刚见面时候他就在找自己的小刻刀:“我的刻刀哪去了?”玩家提醒他“不是在你的耳朵上吗?”“谢谢提醒。”
经过一段时间后再次见面:“钉子放在那里了”玩家提醒他(指指耳朵)“在老地方”“……”
后来可以出现关于刻刀损坏请玩家修理、玩家让工匠给自己刻印章等剧情,也为此人有一定几率忘记帮玩家做事情留下铺垫。
还比如某个孩子闲聊语言大多是“某某处的什么什么真好吃啊”之类关于吃的,其母的闲聊语言是“孩子越来越胖,真担心啊”
举例说明:
我首先举一个最简单的找物品(找人)的例子。
(A)(你)帮(B)找(C)(D)
根据身份内容是不一样的民、一般、官、友
A表示身份:求、请、命、托
B自我称呼:小人、我、本官、兄弟
C数量或种类:根据物品和NPC需要来决定
D物品:根据此NPC的数据库决定种类,符合身份特征和实际需要。
[你]:实际中根据玩家最高生活技能而出现职业称号,称呼的尊重程度也跟阅历等级有关系。
可能出现的组合:求大侠帮小人找一瓶金创药,(这个还算常规)
还可能是托大哥帮兄弟找一个好老婆,(汗……)
这是任务入口,任务出口就是数据库中记录的物品(或者人)的寻找、取得方式,达到目标后任务就结束。如果出现连锁,则继续进行,直到最终找到任务出口为止。
称呼的变化是动态的,当组队中和一个NPC对话,一定是说尊称,当个人说话,则用昵称,一个官员对百姓自称“本官”但如果玩家属于有官衔的人(哪怕是挂名任务的虚衔)则称呼就变成了“下官”(通过身份等级实现,身份等级为隐藏属性)。
数据库的合并:(通过连锁任务的衔接、任务入口和出口的匹配实现)
当两个NPC关系变化,比如结婚、和好,数据库内容需要变化了,部分内容合并或衔接(反之则分开)
接上面的例子,如果把药店老板的女儿介绍给身份为猎人的NPC(如果成功的话,下同)
此猎人受伤需要药品治疗类任务永久消失,玩家如果一直保持良好关系,可在此免费治疗。
如果是裁缝,可以将猎人打的兽皮制成衣服,每年冬天送玩家一套。
如果是善于做饭的,则可以经常赠送一些野味(大补,一段时间内身体属性提高)
当两个NPC合并后,其互补的需求互相抵消,生产上下级关系的连接,并可能出现成品或半成品,如例,猎人的原料被妻子加工成产品
类型二:(比较复杂的半固定任务)
逆向的方式,从任务向NPC找匹配,这种模式需要与类型一交替使用,适合那些类似门派任务等,必需要做的任务。这个类型本质还是公式化、模块化的。任务的流程基本是固定的,分支并不是很多,系统随机在符合条件的NPC中抽取,并且生成任务。填充元素为符合条件的NPC,也就是即使比较固定的连锁剧情也不一定发生在固定的时间和地点,人物也不是可以完全准确预料的。 另外为了避免浪费(实际上由于类型一的存在,根本就不存在浪费),可以设计一些需要NPC群体身份等条件类似的任务,一部分任务在这些NPC上发生,另外的任务就在那些NPC上发生。
抢亲:
1接到任务某人(MM)被抢了。2到了目的地选择询问或直接动手抢回来。如果直接动手,抢回来了,可能直接结束,也可能发现有隐情,如果询问也有可能知道这个情况。因为MM的家人不是亲生的/因为利益驱使要把MM嫁给不喜欢的人/有某个有势力的人强迫……
3然后连接下一个任务,阻止对方逼婚或劝说,可以利用声望劝说,可以利用经济援助,也可以打败敌人等。具体的解决方法可体现职业特色。
再回来可能最开始认为是坏人的那个人实际上好人,甚至是MM心上人,最后还可以帮助有情人终成眷属……
除人际关系增长模型外,还可以设计出对立模型,玩家在多个利益集团间周旋,可以帮助一方,也可以尽量左右逢源,表现官场的明争暗斗。
可以出现特殊类型的任务,比如营救,比如不杀生任务,比如生存任务等。
某些任务需要两个以上人参加,需要配合完成任务等。
还可以出现选择任务:
比如师傅教了一个攻击技能和一个加血技能,师傅说这个时候的体质很适合练攻击技能,但是忽然有人来求助,如果不去而是练攻击,则攻击变成2级。如果去,加血技能不用练直接变成2级。
游戏中可以出现解谜,根据做过的任务记录和玩家记忆,有时候遇到虚假信息的时候可以出现识破,多人任务中只要一个人识破就等于全队伍的。可以得到额外奖励和附加剧情。如果代练很可能就不能很快的发现这个问题,额外奖励就不容易出现了。
公式化随机任务系统实现的功能是:
找到任务的时间、地点、人物不确定,任务内容不确定,任务总长度不确定但在一定范围内。单个元素可以采用穷举法列举,难度不大。任务总经过由于数量级的关系,可以认为完全不可预测。有一个明显的确定因素,虽然点击NPC可能会也可能不会得到任务,但是不点击NPC是一定不会得到任务的,如果要改变这一点,可以对触发条件做适当修改,不过我倾向于不改,这种地方还是给玩家主动权好,一般人不会喜欢主动找上门来的任务,还是等有心清的时候再做吧。
公式化任务可以模拟的NPC思维方式:用符号“/”隔开。可以模拟人类的思想、行为活动只要制作完善,就可以很好的生成任务了。
1:谁来帮我?/今天没有事/这件事只能和关系密切的人说/你来了?上次的事还没有完呢/上一次的那件事有新的变化了。
2:你是他的朋友,所以我也把你当朋友。/你帮助了我,我要把你的事情告诉我的亲朋好友。
3:我欠你人情,以后还。/你帮了我,我现在立刻感谢你。/我没有什么报答的,告诉你个有价值的消息吧。
4:在这种情况下,我不应该说那样的话/这种情况下有这些个选择。/说说你有什么要求?
5:我们知道对方的职业,所以任务内容根据你的职业决定/虽然我知道你的职业,但是我的要求就是这样,你看着办吧。
6:这次我一定要好好满足你的要求,因为上次我欠你人情呢。/你在这里名声好,所以我愿意无偿帮助你。
7:我帮助你要报酬/我帮助你,但要你帮我作为交换/我心情好,愿意无偿帮助你。
编辑器使用:
制作部分;
新建NPC:依次输入这个NPC的物品需求、奖励、闲聊语言、任务语言、称呼、地位值、友好度、连锁任务方式、影响范围(相影响的NPC友好度会同步提升,影响力限一层次内,如同一个城市、一家人或同行之间等)相关NPC等资料,建立一个比较丰富的档案。
新建物品:输入此物品的分类、价值、等级、取得难度、取得方法、备注等。
物品和NPC备注部分并不是完全不可见的,在平时对话中,经常可以利用到简要备注,当需要查阅物品、NPC的资料时,需要利用到详细备注。
新建公式:
类型一,单元公式,比如寻找物品公式(A)(你)帮(B)找(C)(D),并且注册其中元素的属性。
类型二,整合公式,完整的任务流程,并包括寻找符合条件NPC的规则。
类型三,其它公式,比如物品合成公式(地点:铁匠处):损坏的[物品]+原料(类)=修补好的物品
新建分类:
人物类:把同样属性的人分类,比如农民类,工匠类,也可以包括老弱类,甚至“可以被抢亲的年轻女子”!
物品类:饮料类,食品类,内服常规药品类,外用常规药品类,特殊药品类。
类需求任务复选框:是否允许直接把类作为需求。(关于编辑器的使用:允许把“类”作为任务的目标,比如某种需求为饮料类,那么NPC可能要玩家寻找指定饮料,也可能笼统地说要喝的。第一种情况是普通任务,第二种需要设定类限定、标尺、数值,超额完成任务的有额外奖励)
调用:把分类赋予元素,比如某老人需要内服常规药品类,制作人员制作这个NPC时候只要点选“内服常规药品类”拖动到其名称上即可。
复制:把一个NPC的内容复制到另外一个上,但是不包括个性化资料,这个功能有助于制作类似的NPC。
编辑:修改、扩充或缩减内容。
辅助部分:特殊强制某些元素不参与某些公式,或者可以参与某些公式,当一个NPC既需求某物品,同时也提供这种物品时,设定是否提示。
统计部分:
物品:统计各种物品的获取方法和难度。
人物:统计人物关系(避免出现八世同堂)
检验部分:
人物:是否有空缺内容。
任务:是否有“需要先决条件”的任务,但其先决任务并不存在。
物品:时候有某种物品被需要,但这种物品并没有取得方式。
过滤部分:去掉全部有问题的组件,包括有错误的、受错误影响或间接影响的。
非主动功能:
避免连续在一个NPC处获取任务的机制。
避免连续使用同样公式、需求同类物品的机制。
连锁任务长度限制、严格防止死循环。
在服务器运行中检测运行状态,通过增减相关任务产生率和适当奖励的方法,在等级、难度适当的情况下,引导玩家去人少的区域战斗或进行其他任务的机制。
避免连锁任务方式为“递增”造成游戏任务有增无减,无限扩大。
最后的补充:
慎重设置NPC的死亡、迁移、和永久性改变阵营,因为可能造成类型一中的部分任务无法利用,只能允许那些基本没有任务的临时NPC进行这些安排。
举例:(从制作角度写出的,不要以玩家角度看,也不要以欣赏的角度看,因为这不是实际看到的任务流程,而是往机器里面输入用的采样)
地点:某处宅院中
人物:山老头
人物关系:女儿含儿,在屋子里,儿子在附近城市官府当厨师,邻居是猎户阿树,附近有一个赤脚医生。
山老头提供物品奖励:
1:这里有一个祖传的[玉佩],你帮我这个大忙,就送你了。
2:年轻人真好心啊,让我[女儿]给你做[一双][鞋子]吧。
3:我这里有[一把]年轻时候用过的[武器],现在老了就送你吧(根据玩家武功给一个适当的武器)
山老头提供的其他奖励:
声望经验就不说了,帮助山老头大忙之后如果反而没有奖励,找其儿子,可以听说官府正在[悬赏][XX]可以是任务,
也可以是[寻找什么],也可以是[战斗],总之做了这个任务之后必然是有奖励的,而且是相当好的奖励。(任务奖励)
此NPC隶属的类:老弱、平民、经验中等者、中立阵营。
此NPC其他属性:交往难度:中下;连锁任务方式:递减;重大事件线索相关概率:较低
闲聊语言:天气不错,在这里晒太阳真是很好啊。我的儿女都很孝顺,生活还真是幸福啊。其他随机闲聊语言省略。
出现需求:(根据NPC类和玩家职业类产生,并非完全单独制作,大部分选项是类之间组合出来的,具有部分推广性,下面同样)
今天老毛病又犯了,[儿子]不在,不能照料,你帮我一下吧。(老弱类NPC任务入口)
玩家医生类:
选项:我来帮你看看吧。(如果医疗技能达到要求直接过关)
玩家书生类:
山:这里有一个偏方,我不认识字,你帮我看看。
玩家:打开来看。(如果文学能力达到要求1/3可能直接过关)
情况1(1/3可能性):这个药方是这样的……(结束)
回答2(2/3可能性):这个上面写的是……,
山:这些材料不是容易得到的,你可以帮我找一下吗?
选择(转入公共分支):
1:偏方不可靠,直接找医生开药吧。
2:帮忙。
3:我还有别的事情,不能帮忙
玩家猎人类:(出现需要虎骨等动物制品的可能性提高)
山:治这个病需要虎骨配药,可是不是很好找,怎么办啊?
选择:
1:我帮你找(直接打出来给他,或者用其他办法)
2:你知道附近什么人有吗?(公共分支)
山:可能邻居家有吧,可是不好意思总麻烦人家
玩家:我帮你说说……(走这个选项有点故意绕远,不过可以提高任务完成度,可能得到高级奖励)
可能出现的公共对话选择:
1:我还有别的事情,不能帮忙。(这个是必备的)
2:我找附近的医生看看,去找赤脚医生。(公共分支)
3:去邻居那里看看有没有虎骨,治病很需要的。(公共分支)
可能出现情况
A:帮山老头花钱买了(奖励声望,公共分支)
B:劝说先欠着(需要玩家本身声望很高,公共分支)
C:如果曾经多次帮助猎户,关系良好,可能直接猎户会免费赠送(公共分支)
D:答应帮助猎户一个忙(猎户其中一个任务分支在这里不出现,因为有趁人之危的嫌疑。)
如果玩家职业为铁匠,在猎户那里很大几率出现:“我的弓/捕兽夹坏了,帮我造一个新的吧”
造一个给他交换虎骨,如果给他一个质量3级以上的“真是太感谢了,这么好的弓/捕兽夹啊……
唔,再给你X张兽皮吧!”根据物品质量还换得兽皮若干!(类需求模式,类限定为捕兽夹,标尺项目为级别,数值为3)
4:到城里找我儿子,在官府当厨师,去了就说山老头找儿子就可以了。(转化为送信剧情,可以理解为激活送信模式连锁任务)
儿子可能A:说尽快回来(任务完成)。B:要玩家帮忙请假(多对话就可以完成,还有机会得到一道好菜)
C:告诉玩家传话家里的箱子里还有药,再跑回来通知一下。(这个任务的实现方法为:当发件人=山,通知玩家以上内容)
5:这里刚好有XX药,对你的病有帮助的,送给你吧。(如果当时玩家正好有对症的药)
如果这时候去找医生,可能出现的对话只有这几个,而且不会有下一步的延伸:
1:治病可以,这种药很有效,不过这价钱嘛……(付钱)
2:药我有,不过我来到这个村子也不是为了赚钱,听说附近出产XX药材,你采来和我换,要新鲜的呦!
3:这种小病没有什么的,一付药就能治好,既然大侠开口,就送你了!(出现这个选择的前提是:A:声望高。或者B:曾经帮助过此人)
山老头可能的其他需求:
1:儿子在城里,我很挂念,帮我送信吧。(跑腿任务)
2:女儿在村外XX林路过时候险些被土匪抓走(帮忙报官或者杀土匪,杀土匪奖励一天内防御提高的绿豆汤)
3:邻居家阿树和我家含儿很投缘的,我也很喜欢这孩子,后天我过寿,帮我传话让他也来吧。(送信,同时是结婚剧情的伏笔)
猎人阿树任务:(后面的任务、奖励和提供物品等,都比较简略)
此NPC隶属的类:猎人、劳动者、中立阵营、可组合改变(指可以通过结婚改变属性)弱战斗能力类、野外活动型。
此NPC其他属性:交往难度:中;连锁任务方式:递减;重大事件线索相关概率:中
1:我的弓/捕兽夹坏了,帮我造一个新的吧。(玩家铁匠更有可能遇到)
2:帮我想办法弄一个漂亮的扇子(玩家书生更有可能遇到)/一件XX裙(玩家裁缝更有可能遇到)/
帮我找一束鲜花(直接去山上采)。我想送给心上人。
3:(这个任务可能接在任务2后面,这个例子中的任务就是前面说要避嫌的那种,不能在对方困难时求婚!)
我喜欢上一个姑娘,可是不好意思表白,你可以帮我吗?我已备好了礼物(扇子或鲜花),帮我送给[邻居][含儿]!或者可能是:
邻居阿含已经答应嫁给我了,帮我把这个[衣服]送去看看,不知道她满意否?
4:哎呦,受伤了,不能打猎了,帮我去找赤脚医生买[一份金创药]!(玩家医生能直接治好,劳动者+医生组合的常见任务)
5:今天打猎收获不小,该庆祝一下,咦?[酒]没了,你有没有?如果没有,帮我打一壶……
6:强制触发任务,条件:玩家在野外捡到[猎人]掉的[东西],来归还失主,固定给这个任务。
含儿任务:
此NPC隶属的类:年轻女子、家务劳动者、中立阵营、可组合改变(指可以通过结婚改变属性)。
此NPC其他属性:交往难度:高(需声望或先决条件);连锁任务方式:递减;重大事件线索相关概率:低
1:后天就是爹的寿辰,我要准备礼物,听说城里新进了[紫砂茶壶],我想你帮我买一个。
2:猎户阿树[邻居类、弱战斗能力类、野外活动型]为了保护我,被[土匪](游戏旁白:地点X山X洞,坐标XX,XX,可去打)打伤,你帮我看看他,顺便把这份鸡汤送去。
3:我买了[两匹布],准备做一件衣服,可是我的手艺不好,你帮我做吧(玩家裁缝可遇到此剧情)
赤脚医生任务:
此NPC隶属类:医生,功能NPC,独立NPC
此NPC其他属性:交往难度:高(指赠药可能不大,其他功能正常);连锁任务方式:保持;重大事件线索相关概率:较低
1:山老头这几天没来拿药,帮我把[药]送去吧。(如果贪污减声望)
2:听说这一带有[XX草药],我没找到,你帮我找。
3:药箱的带坏了,帮我找一个[布条]来吧(在含儿那里可以得到)
4:这两天配药的真多,很多人受伤了,村外[XX林]那一伙[土匪]真害人,帮我找猎人阿树看看还有没有XX。救人要紧,还有,
去找[山老头]要点[原料],我做[金创药]需要它作原料。(送东西,杀土匪或报官)(旁白:坐标XX,XX)
5:天气真热,帮我打碗水喝吧,(类需求模式,类限定为饮料,标尺项目为价值,数值为50,如果给水奖励很少的经验,如果给茶奖励比较多经验和一些声望,如果把前面任务绿豆汤给他,可以得到一天内攻击增加的药丸或等价高级物品,当任务完成后,调用备注来评价玩家送来的物品。)
以上把山、脚、含、树四个人之间的任务简单的列举了一部分,其中的组合还不是很多,如果参与的人多一些,可以出现的道具、任务丰富一些,并且开放长步骤的连续任务,可以出现的变数就会成指数级快速上升。至于玩家在山、脚、含、树之间会经历哪些任务,山脚含树也不知道,也许只有玩家和山、脚、含、树知道吧?
公式化随机任务系统对游戏内容的改变:
游戏出现外挂并不是技术上的问题,而是游戏玩法的问题;由于内容单调、游戏方式单一,才有利用外挂挂机的想法和条件。游戏能出现挂机外挂是策划的失败,程序员一点责任也没有。因为游戏内容单调,可以很简单的用机器代替人,所以才会出现外挂。仅仅通过附加无乐趣功能,比如软件判断、验证码等进行检查,并不能完全避免外挂的出现,还容易造成正常玩家的困扰和客户端的负担。程序判断只能是一时的,外挂更新之后就会无法判断,最后演变成更新竞赛,对谁都没有好处。行为判断也是不准确的,可以同时挂两个ID,这样可以随便说说话,可以设置偶尔停下来,模仿人的方式,甚至可以在检测到刚刚打出来的物品是白色的情况下模仿人那样发个牢骚。只要内容过分简单,就一定出现挂机如果可以在工作量允许的情况下,给游戏中设置足够的任务,不但提高了游戏乐趣,丰富了内涵,也让外挂处于效果很差甚至没有效果的地步,让玩家主动放弃外挂。这样外挂就不能存在了,因为机器不可能自动去接任务,也不能根据指定的方式做任务,在一个地方打不了很久就没有经验了,而且无意义的战斗没有什么好处。而且手工玩也不单调。还可以避免服务器中人员分布不平衡的问题。
战斗任务:升级指引,没有接到任务的情况下打任何怪都是很少的经验,如果得到任务去杀指定的怪,有额外经验加成,同一个场景内的怪可以都以高经验状态消灭一次,消灭足够多的怪或者消灭头目(根据任务定)任务完成,额外奖励大量经验和一些声望,守点打怪不会有很多经验。
战斗等级主要随着战斗任务的进行而提高,学习一部分新的技能需要在经历足够任务后“领悟”出来,并不是有钱有等级就可以学的,人物学习技能是根据任务得到的,因为做完了任务,级别基本上也就够了,所以还是基本上到那个级别学那个技能。任务总难度和任务效果在生成任务的时候就可以知道,所以可以很容易判断出玩家在任务状态中累积多少经验、声望、熟练度等,非任务状态可以升级,但是对于称号提升、技能学习基本没有帮助。战斗场所根据玩家等级来确定,优先就近安排一个难度合适的场景,如果附近合适的场景不足或用过太多次,可以把任务放远,引导玩家去那些没有很多人的场景,平衡游戏中的人员分布,在整个游戏进程中,通过往返各地战斗或其它任务,可以尽量把整个游戏场景都走遍。
送信任务:文字方面的比较简单,口信往往是了解NPC的方法,信息收集也是高级解谜剧情必须的线索,通过对话、送信可以提高友好度和声望,在游戏中有很大的作用。
寻找物品:可以是采集获得,也可能是在NPC那里获取,也可能是打怪,还有可能是自己合成,几乎每种需求的物品都有多种取得方式,有多种地方用到,部分物品还是玩家平时用的物品。物品类任务是这种任务系统的最大优势。
对话聊天:除了可以利用自动机器人陪人闲聊外,还可以有其它能力的提高,比如生活经验等,丰富的对话选项也让外挂无法使用。
新的目标(声望、友好度、阅历,其实是变相等级):一个声望高,友好度高的人可以得到很多方便,比如可以从特殊NPC中获得能力提升,可以在游戏的大型活动中取得优先。(这个是与NPC互动中自然的得到的,不是强制优先)做一个任务会对所帮助NPC和其相关NPC产生影响,反映在功能上就是受影响的NPC用更高的价格收购东西,需要NPC帮助的时候非常容易,可以接到需要很高声望、信任值、友好度才能接的高级任务。 |
|