從后端游時代開始,任務系統(tǒng)便逐漸成為各個游戲的標配系統(tǒng)。從最開始為游戲劇情服務到后來變成為新手引導服務。現在的任務系統(tǒng)除了作為玩家的入門引導系統(tǒng)外,還會根據運營活動的需求臨時肩負起玩法模塊的重擔。
那么這一次我們就談談基礎任務系統(tǒng)的設計,同時看看幾個常見的容易忽略的細節(jié)。
PS:這里所提到的任務系統(tǒng)主要為mmorpg游戲中的主線支線等任務,并不是指RTS游戲當中的"任務",與此相比,我習慣性稱之為"成就系統(tǒng)"
基礎任務系統(tǒng)
新下載一個游戲,進去的第一件事就是跟前期新手任務一步一步操作進而熟悉游戲的操作和玩法。
如果基礎操作有別于其他游戲,第一步引導必然是關于基礎操作的。在基礎操作引導結束之后就會引導玩家完成游戲任務。這之后的很長一段時間主要就是體驗游戲的任務。所以在游戲前期做好任務系統(tǒng)體驗也能為留住玩家加分不少。
任務系統(tǒng)是一個非?;A的模塊,用基礎的任務系統(tǒng)可以擴展成各種新穎的任務模式,豐富游戲的表現力。
一、任務系統(tǒng)基本框架
首先我們引入任務線的概念,因為一套完整的任務流程是根據有序的單個任務的線索逐條執(zhí)行下去的,串聯各個獨立的任務設計即可成為一個整體。
我們根據任務類型,將任務分為主線任務、支線任務、家族任務、日常任務等等。每一種任務就對應一條單獨的任務線。
由于任務內容會經常性地調整改動,而且會根據運營或者測試情況需要進行添加刪除等,所以任務系統(tǒng)也需要做成腳本配置。對應的基礎腳本框架如下:
<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>
上面列舉了一個非?;A的任務系統(tǒng)框架,每一個任務線我們可以用一個“l(fā)ine”來表示。一個line就是一個大的任務類型,其包含的元素主要是唯一標識id、任務線名稱name,名稱主要用于注釋作用。
具體這個任務線對應的任務內容我們可以用“track”來表示,一個track就是一個獨立的任務。當然一個任務也可能擁有多個步驟,每一個步驟我們用一個action來表示。在track當中,我們需要定義唯一標識id、任務需求等級、任務描述等。
在action中,我們采用act來定義此條任務的具體類型,類型字段需要與程序商議制作,根據act的不同后續(xù)字段內容也會有變化。在例子當中,我們使用了“visit”、“kill”、“change”、“search”四種類型。
visit是一個訪問類型,此任務需要玩家與對應的NPC進行對話交流,所以在配置當中需要給出NPC所在的地圖(mapID)和坐標(pos),用以尋找NPC。在找到NPC后,需要調用劇情對話內容(storyID)。desc用以在任務面板顯示任務描述,同時也可以給策劃起到任務注釋的作用。在一個act執(zhí)行到最后我們可以給與一定的獎勵,對應reward。
kill是一個殺怪類型,此任務需要玩家擊殺特定數量的怪物,后面需要填上目標怪物的id。
change是一個變身類型,此任務可以幫助玩家根據劇情 需要變身成為其他NPC,也是比較常用的一種類型。
search是一個搜索類型,比如常見的去某個地方巡視、放信號、治療傷者等需要讀進度條的都是這種類型。
在任務系統(tǒng)的這個基礎框架上,根據游戲設計需要進行擴展就可以實現我們任務設計所需的各種表現了。
二、任務系統(tǒng)中的相關邏輯判定
除了任務系統(tǒng)的基礎框架,我們在設計任務的時候還需要考慮很多的問題。比如:
- 任務執(zhí)行終止的條件。即在什么情況下任務為終止執(zhí)行狀態(tài),需要對任務進度進行保留。常見的有手動終止、切換到其他任務線、手動進行場景切換,進入副本或者其他無法與目標地圖銜接的地圖場景等。
- 任務執(zhí)行完成的判斷與后續(xù)操作。比如當前任務完成是否自動執(zhí)行下一個任務,任務是否可以自動執(zhí)行等。
- 任務內容的執(zhí)行周期。任務線是終身只可執(zhí)行一次,還是每日可進行一次,或者是每周進行循環(huán)等
任務系統(tǒng)中的邏輯關鍵字需要策劃根據實際項目需要向程序哥哥提出功能需求,考慮的越全面,后面優(yōu)化的次數就會越少。
幾個比較容易忽略的細節(jié)
一、活動任務到期后的處理
去年圣誕前夕,我玩了一款手游,接了一個修補雪人的活動任務。需要搜集10次材料,就是分別跑到10個隨機點,讀一下條的那種。我讀了5次,然后有事下線了,隔了十天半個月才想起來這個任務沒有完成,就想上去瞧瞧結果咋樣。
我上線后發(fā)現任務追蹤還在,于是繼續(xù)搜集材料,后面5次讀條非常順利,但是在交任務的時候就傻眼了,原來放在這里的一個大雪人NPC因為活動結束給清掉了,現在的我無法提交任務。我嘗試重新登錄,發(fā)現系統(tǒng)也沒有幫我清掉任務線。那么我這個號就永遠掛著這樣一個完成了卻無法領獎,且不能從我的任務面板清除的任務。
其實在設計這些活動任務的時候這些情況不難考慮進去,處理的方法也很簡單,既可以讓接了任務的人最后一步不用訪問直接領獎,也可以直接將任務線清除,一了百了。

二、幫會任務的處理
前段時間玩了某款知名IP改編的手游,畫面和劇情還原度都不錯,加上360°無死角的3D自由視角確實給人眼前一亮。但是我進去玩了20多分鐘就碰到一個讓我作為非處女座的游戲策劃都不能容忍的事情。
我在達到加入幫會的等級之后,按照系統(tǒng)的引導申請了一大波幫會,最后有一個幫會通過了我的申請。我看了一下幫會任務有經驗產出,于是暫時停止主線開始做幫會任務。當我費了五六分鐘做完其中兩個準備提交任務的時候,悲劇發(fā)生了,可能是因為沒有充值戰(zhàn)力過低等原因,我被幫主“請”了出去。更悲劇的是,我想提交任務,系統(tǒng)卻提示我需要幫派。如果這個時候沒有可申請的幫會,或者短時間內沒有被其他幫會通過申請,那么糾結于這個任務完成了卻不可領取獎勵的玩家,是否就會考慮流失了?
接取幫會任務,在執(zhí)行幫會任務這條任務線的時候,是需要判定玩家是否擁有幫派,但是在提交已完成的任務時,如果沒有特殊的需求,是可以適當放寬條件的,不然就會出現我所碰到的這種情況。
先不說這里會造成多少流失,辛辛苦苦做一個游戲,因為這一個設計就被別人說成是“傻X策劃”就得不償失了。

三、進行任務對話時是否需要關閉其他界面
今年手游大作頻出,各種端游移植版也相繼上架。也是前兩天的事,玩了一款大型端游改版的手游,畫面確實跟端游比較接近,與市面上手游相比算的上是非常精美的了,不負其端游的名聲,而且根據介紹,玩法內容也與端游出入不大,算得上是大手筆。
不過我進去玩了10分鐘不到就因為任務系統(tǒng)的設計而想流失。
游戲玩的多的人對于紅點提醒都可謂是又愛又恨,紅點提示作為無意識設計流派的代表性設計,確實是紅遍世界各地,幾乎是所有游戲的必備系統(tǒng)。愛它是因為紅點能很方便的提示你當前可以進行的游戲操作;恨他大多數是因為萬惡的充值,不充你就得忍受它一直出現在你屏幕上。
游戲中的技能系統(tǒng)開放的比較早,每次升級都會有紅點提醒你技能可以升級。由于UI界面的設計,每次進行技能升級操作都需要打開四層界面。而任務系統(tǒng)設計的是,無論你打開的是什么界面,一旦有任務對話,將會把你的對話全部關閉,并且在對話結束不會恢復之前打開的界面。
當紅點設計的軟性強迫升級暗示與任務對話強制關閉界面的設計重疊到一起時,就會出現讓人抓狂的游戲體驗:我不斷的在逐層打開技能界面想進行技能升級操作,但是前期頻繁的任務對話,總會讓我偃旗息鼓。最后忍受不了,我只好關閉游戲,并且點了立即卸載。
我在做任務設計的時候關于主線劇情對話,一般是讓它的層級停留在已打開的界面層級之下,而又在主界面UI層級之上(打開對話時,主界面的UI需要給予隱藏)。這樣處理即不會出現對話時主界面遮擋對話界面,也不會造成對話界面遮擋已打開的界面的情況。
像這種,有對話時關閉所有已打開的主界面彈框的體驗是極差的,因為它強制中斷了用戶的操作進程。如果你這樣做了,那也得盡善盡美,對話完畢請幫用戶恢復原來的界面。


相關鏈接: