从后端游时代开始,任务系统便逐渐成为各个游戏的标配系统。从最开始为游戏剧情服务到后来变成为新手引导服务。现在的任务系统除了作为玩家的入门引导系统外,还会根据运营活动的需求临时肩负起玩法模块的重担。
那么这一次我们就谈谈基础任务系统的设计,同时看看几个常见的容易忽略的细节。
PS:这里所提到的任务系统主要为mmorpg游戏中的主线支线等任务,并不是指RTS游戏当中的"任务",与此相比,我习惯性称之为"成就系统"
基础任务系统
新下载一个游戏,进去的第一件事就是跟前期新手任务一步一步操作进而熟悉游戏的操作和玩法。
如果基础操作有别于其他游戏,第一步引导必然是关于基础操作的。在基础操作引导结束之后就会引导玩家完成游戏任务。这之后的很长一段时间主要就是体验游戏的任务。所以在游戏前期做好任务系统体验也能为留住玩家加分不少。
任务系统是一个非常基础的模块,用基础的任务系统可以扩展成各种新颖的任务模式,丰富游戏的表现力。
一、任务系统基本框架
首先我们引入任务线的概念,因为一套完整的任务流程是根据有序的单个任务的线索逐条执行下去的,串联各个独立的任务设计即可成为一个整体。
我们根据任务类型,将任务分为主线任务、支线任务、家族任务、日常任务等等。每一种任务就对应一条单独的任务线。
由于任务内容会经常性地调整改动,而且会根据运营或者测试情况需要进行添加删除等,所以任务系统也需要做成脚本配置。对应的基础脚本框架如下:
<Config>
<line id=“1” name="主线任务">
<track id="101" needLv="1" desc="去找新手引导员索菲亚" >
<action act=“visit” mapID="1" pos="100,100" npcId="101" storyID="1" desc="询问索菲亚找自己是为何事" reward="2001"/>
<action act=“kill” mapID="1" pos="200,200" npcId="1001" desc="帮助索菲亚击杀(%v/10)只野兽" reward="2002"/>
<action act=“visit” mapID="1" pos="100,100" npcId="101" storyID="2" desc="告诉索菲亚已解除野兽危机" reward="2003"/>
</track>
<track id="102" needLv="2" desc="新的征程" >
<action act=“visit” mapID="2" pos="100,100" npcId="101" storyID="3" desc="去海边寻找阿曼达公爵" reward="2011"/>
<action act=“change” changeID="103" mapID="2" pos="200,200" desc="在阿曼达公爵的帮助下伪装成海盗" reward="2012"/>
<action act=“search” mapID="3" pos="300,300" desc="去海盗出没的地方打探消息" reward="2013"/>
</track>
</line>
<line id="2" name="支线任务"/>
</Config>
上面列举了一个非常基础的任务系统框架,每一个任务线我们可以用一个“line”来表示。一个line就是一个大的任务类型,其包含的元素主要是唯一标识id、任务线名称name,名称主要用于注释作用。
具体这个任务线对应的任务内容我们可以用“track”来表示,一个track就是一个独立的任务。当然一个任务也可能拥有多个步骤,每一个步骤我们用一个action来表示。在track当中,我们需要定义唯一标识id、任务需求等级、任务描述等。
在action中,我们采用act来定义此条任务的具体类型,类型字段需要与程序商议制作,根据act的不同后续字段内容也会有变化。在例子当中,我们使用了“visit”、“kill”、“change”、“search”四种类型。
visit是一个访问类型,此任务需要玩家与对应的NPC进行对话交流,所以在配置当中需要给出NPC所在的地图(mapID)和坐标(pos),用以寻找NPC。在找到NPC后,需要调用剧情对话内容(storyID)。desc用以在任务面板显示任务描述,同时也可以给策划起到任务注释的作用。在一个act执行到最后我们可以给与一定的奖励,对应reward。
kill是一个杀怪类型,此任务需要玩家击杀特定数量的怪物,后面需要填上目标怪物的id。
change是一个变身类型,此任务可以帮助玩家根据剧情 需要变身成为其他NPC,也是比较常用的一种类型。
search是一个搜索类型,比如常见的去某个地方巡视、放信号、治疗伤者等需要读进度条的都是这种类型。
在任务系统的这个基础框架上,根据游戏设计需要进行扩展就可以实现我们任务设计所需的各种表现了。
二、任务系统中的相关逻辑判定
除了任务系统的基础框架,我们在设计任务的时候还需要考虑很多的问题。比如:
- 任务执行终止的条件。即在什么情况下任务为终止执行状态,需要对任务进度进行保留。常见的有手动终止、切换到其他任务线、手动进行场景切换,进入副本或者其他无法与目标地图衔接的地图场景等。
- 任务执行完成的判断与后续操作。比如当前任务完成是否自动执行下一个任务,任务是否可以自动执行等。
- 任务内容的执行周期。任务线是终身只可执行一次,还是每日可进行一次,或者是每周进行循环等
任务系统中的逻辑关键字需要策划根据实际项目需要向程序哥哥提出功能需求,考虑的越全面,后面优化的次数就会越少。
几个比较容易忽略的细节
一、活动任务到期后的处理
去年圣诞前夕,我玩了一款手游,接了一个修补雪人的活动任务。需要搜集10次材料,就是分别跑到10个随机点,读一下条的那种。我读了5次,然后有事下线了,隔了十天半个月才想起来这个任务没有完成,就想上去瞧瞧结果咋样。
我上线后发现任务追踪还在,于是继续搜集材料,后面5次读条非常顺利,但是在交任务的时候就傻眼了,原来放在这里的一个大雪人NPC因为活动结束给清掉了,现在的我无法提交任务。我尝试重新登录,发现系统也没有帮我清掉任务线。那么我这个号就永远挂着这样一个完成了却无法领奖,且不能从我的任务面板清除的任务。
活动结束任务无法提交,中间的雪人NPC已被清除其实在设计这些活动任务的时候这些情况不难考虑进去,处理的方法也很简单,既可以让接了任务的人最后一步不用访问直接领奖,也可以直接将任务线清除,一了百了。
二、帮会任务的处理
前段时间玩了某款知名IP改编的手游,画面和剧情还原度都不错,加上360°无死角的3D自由视角确实给人眼前一亮。但是我进去玩了20多分钟就碰到一个让我作为非处女座的游戏策划都不能容忍的事情。
我在达到加入帮会的等级之后,按照系统的引导申请了一大波帮会,最后有一个帮会通过了我的申请。我看了一下帮会任务有经验产出,于是暂时停止主线开始做帮会任务。当我费了五六分钟做完其中两个准备提交任务的时候,悲剧发生了,可能是因为没有充值战力过低等原因,我被帮主“请”了出去。更悲剧的是,我想提交任务,系统却提示我需要帮派。如果这个时候没有可申请的帮会,或者短时间内没有被其他帮会通过申请,那么纠结于这个任务完成了却不可领取奖励的玩家,是否就会考虑流失了?
接取帮会任务,在执行帮会任务这条任务线的时候,是需要判定玩家是否拥有帮派,但是在提交已完成的任务时,如果没有特殊的需求,是可以适当放宽条件的,不然就会出现我所碰到的这种情况。
被踢出帮会任务无法提交先不说这里会造成多少流失,辛辛苦苦做一个游戏,因为这一个设计就被别人说成是“傻X策划”就得不偿失了。
三、进行任务对话时是否需要关闭其他界面
今年手游大作频出,各种端游移植版也相继上架。也是前两天的事,玩了一款大型端游改版的手游,画面确实跟端游比较接近,与市面上手游相比算的上是非常精美的了,不负其端游的名声,而且根据介绍,玩法内容也与端游出入不大,算得上是大手笔。
不过我进去玩了10分钟不到就因为任务系统的设计而想流失。
游戏玩的多的人对于红点提醒都可谓是又爱又恨,红点提示作为无意识设计流派的代表性设计,确实是红遍世界各地,几乎是所有游戏的必备系统。爱它是因为红点能很方便的提示你当前可以进行的游戏操作;恨他大多数是因为万恶的充值,不充你就得忍受它一直出现在你屏幕上。
游戏中的技能系统开放的比较早,每次升级都会有红点提醒你技能可以升级。由于UI界面的设计,每次进行技能升级操作都需要打开四层界面。而任务系统设计的是,无论你打开的是什么界面,一旦有任务对话,将会把你的对话全部关闭,并且在对话结束不会恢复之前打开的界面。
当红点设计的软性强迫升级暗示与任务对话强制关闭界面的设计重叠到一起时,就会出现让人抓狂的游戏体验:我不断的在逐层打开技能界面想进行技能升级操作,但是前期频繁的任务对话,总会让我偃旗息鼓。最后忍受不了,我只好关闭游戏,并且点了立即卸载。
我在做任务设计的时候关于主线剧情对话,一般是让它的层级停留在已打开的界面层级之下,而又在主界面UI层级之上(打开对话时,主界面的UI需要给予隐藏)。这样处理即不会出现对话时主界面遮挡对话界面,也不会造成对话界面遮挡已打开的界面的情况。
打开技能界面进行技能升级操作 剧情对话强制关闭所有界面像这种,有对话时关闭所有已打开的主界面弹框的体验是极差的,因为它强制中断了用户的操作进程。如果你这样做了,那也得尽善尽美,对话完毕请帮用户恢复原来的界面。
相关链接:
网友评论
做游戏尤其是商业游戏,肯定是以盈利为目的的,但是也应当尽力做好游戏体验,让花钱的跟不花钱的都能找到自己的存在感和体会不一样的游戏乐趣。
用简叔的话说就是:挺直腰板赚钱