在遊戲中製作每日隨機任務

從以往製作遊戲營運的經驗中,我們知道玩家消耗遊戲內容的速度經常比設計者預想的速度要快。遊戲企劃們花費時間辛苦製作的劇情與任務,玩家很快的就玩完了。因此以往我們在製作遊戲的時候,都會設計一些可以『重複』運用的機制,像是每日隨機任務就是常用的一種設計。

The Division_Daily Mission【最近熱門的《全境封鎖》這遊戲裡也有每日任務,但是 ….】

所謂的每日隨機任務,就是在遊戲中設計數個任務,然後由系統每日隨機挑選其中的幾個讓玩家執行。當玩家執行這些任務後,就會獲得相對應的獎勵。這樣的設計,在許多知名的MMORPG裡(例如:《魔獸世界》)裡都看得到。而最近熱門的《湯姆克蘭西:全境封鎖 (Tom Clancy’s : The Division)》這款遊戲裡面也有類似的設計。

備註:《湯姆克蘭西:全境封鎖 (The Division)》是遊戲全名,在以下的文章中將以《全境封鎖》這個簡稱來稱呼。

這一類的每日隨機任務的最大作用,就是讓玩家每天都有事做。特別是對於那些已經封頂或是把遊戲中的任務都解完的玩家,這一類任務存在的目的就是要拖住這些玩家。因此,每日隨機任務通常會帶有積分型的獎勵,當玩家累積到足夠的積分時,就可以兌換到相對應的獎品。當然,玩家要累積到足夠的積分,通常也不是一兩天的時間就能夠達到,這也是每日隨機任務的目的。

一般來說,設計這樣的每日隨機任務我們常用的方式就是單純的亂數決定,將所有的隨機任務放在一個群組裡,然後每天重置時間到了的時候,系統就從裡面隨機挑選出需要的任務數量。如果說任務有難易之分,那麼可能會將任務依難易度分成不同的群組,然後從這不同的群組中挑選出相對的任務,讓每日隨機任務裡面有簡單與困難的任務,讓程度不同的玩家可以依自己的實力來決定自己要解那些每日隨機任務。

如果說我們不希望所有玩家的每日隨機任務都相同,那麼可能會改成玩家在每天重置時間過後的第一次上線時,系統會隨機挑出任務,然後將這些任務的代號記錄在玩家的身上。這樣每個玩家的每日隨機任務就不會相同,也是一種作法。當然,這個每日隨機任務還可以做得更複雜一些,設計者可以再加上各式各樣的限制,像是不讓同一個任務隔天又出現;玩家解過的任務會比較慢再一次出現等等的設計,都是我們在製作每日隨機任務時可以採用的手段。

當然,如果不想花時間做這樣一個機制來處理每日隨機任務,那麼也可以用簡單的填表方式來處理。由遊戲企劃依日期在表格上填入每日隨機任務要出現那些任務的代碼,然後程式就依這個表格在遊戲中顯示每日隨機任務。不過這個作法,需要有遊戲企劃持續的維護這張表格,並不是銀狐所喜歡的方式。所以在以往銀狐帶領的專案中,如果有每日隨機任務的類似設計,都會採用由系統來亂數決定的方式。

The Division【在《全境封鎖》這款遊戲中也有每日任務的設計】

不過,在《全境封鎖》這款遊戲中,Ubisoft採取的似乎是人工填表的這種方式。這款遊戲在推出後,發生了伺服器連線狀況不佳、Bug一堆、PC版外掛橫行等等的狀況後,就連每日隨機任務也出了問題。發生過連續幾天每日隨機任務都是相同的任務的狀況,也有發生過每日隨機任務消失的狀況。從網路上流出的《全境封鎖》每日任務設定檔來看,這款遊戲的每日任務會出這麼多問題,暴露出了《全境封鎖》的開發小組在QC上的不嚴謹。

網路上的《全境封鎖》每日任務設定文字檔(在此)

在《全境封鎖》這款遊戲裡,每天會從遊戲的多個副本中挑選三個作為當天的每日任務。這三個每日任務中,會有兩個是困難的這個難度、一個是挑戰的這個難度。所以在這個設定文字檔中,我們可以看到像是下圖這樣以三個副本為一組的每日任務設定(第23-78行):

The Division_每日任務設定檔_23-78

在每一段這樣的語法裡,都可以看到當天的三個任務。而在這之下則標示著任務的名稱、難度以及對應的獎勵以及任務的起始與結束日期。

像是這樣的文字檔設定,通常為了節省時間,我們會使用Copy/Paste的方式複製大區域的文字貼上,然後再修改其中部份的資料。不過《全境封鎖》裡負責這件事的工作人員非常的粗心,因此裡面就出現連續兩天重複的每日任務(第3272-3384行)、日期填錯(第3899-3954行)的狀況。第一個錯誤只是讓兩天的每日任務相同,這只是個小問題。但是第二個錯誤把日期2016-04-30填成2016-04-31,這就造成了4/30當天遊戲中沒有每日任務。如果再仔細的看一下這個設定表裡,這樣的錯誤在接下來還不少。

銀狐個人不喜歡這種填表的方式來設計每日任務,除了這種設計日後需要遊戲企劃持續的維護,就成本上來說很不划算之外。另一個原因就是這種靠人力來填寫的東西很容易出錯,特別是當表格的資料複雜,每次一填就要填很長一段時間除錯上也相對的比較困難。為什麼Ubisoft在《全境封鎖》裡會採用這種方式,銀狐個人推測這是應急做的,在當時時間有限的狀況下採用最簡單的模式去做。如果真的要選擇這樣的作法,那麼填表後的QC需要做得更小心。而Ubisoft就是沒有做好QC,才會讓遊戲中的每日任務不斷出狀況。3A大廠都會犯這種錯,我們只能當作案例,提醒自己不要犯一樣的錯誤。