作者:TokyoRed
前言:關於線性/多路徑/開放世界
在大型3D遊戲中(內容體驗型為主),遊戲關卡具有【線性】和【非線性】的區分。
線性遊戲中的挑戰和事件往往是依次展開的;而非線性的遊戲則會具有更多的自由度,挑戰和事件將會交給玩家選擇具體的完成順序。
從這一基礎概念出發,重點關注三類遊戲的設計:
- 線性 Linear
- 多路徑 Multi-path
- 開放世界/沙盒 Open/Sandbox
本篇文章希望討論:
- 從【線性】到【多路徑】,再到【開放世界遊戲】,遊戲關卡設計有哪些共通的方法論。
- 如何通過【分層】和【簡化】的思路,來完成遊戲的構思設計。
這裡放上一張名圖,老頭環玩家對於其初始場景的簡單分析。
其中涉及到了目標地點、路徑選擇、重要的POI興趣點等關卡設計的內容。通過閱讀本文,我們將會對這一張圖,以及遊戲設計師的方法實踐有更加深入的理解。
本文內容框架基於設計師@Iuliu-Cosmin Oniscu,並進一步延申,融入筆者個人的解讀與思考。
一、線性遊戲的設計方法
線性遊戲中,玩家使用預定的路徑從A點移動到B點。
標準的線性進程
這種節點圖的表達是抽象的,我們可以假設A和B可以是任何東西。
為了簡單起見,它們代表線性進程的開始和結束。
線性進程-X標記意味著遊戲中的遭遇戰/事件
在A和B之間,玩家會發現障礙(用紅色標記)。
隨著設計的深入,我們可以把這些障礙變成實際的遭遇戰或事件,這樣就有了專門的對應空間。
我們可以進一步為每個空間分配主題,暗示遊戲中的進程。
比如遭遇戰的發生空間,從洗手間到廚房到臥室
要注意的是:
- 用節點圖來說明位置之間的聯繫是一個設計早期的好主意。
- 節點的表示使遊戲設計更容易閱讀。
- 在後期,當事情開始變得複雜時,僅僅通過節點圖會變得困難。
如果我們把上述的節點圖變成一個平面圖,我們可能會得到這樣的草圖:
關卡設計草圖
- 紅色區域:代表實際承載遊戲玩法的空間,
- 綠色區域:代表安靜的過渡空間,以便在移動到下一個遊戲空間時進行安靜的思考過渡。
另外在設計關卡時,有一件事經常出現,那就是在關卡中設置一條難度曲線。
它可能看起來像這樣:
難度曲線示意圖
這意味著難度曲線先上升,在某個點達到峰值,然後下降,最後關卡結束。
然而如果設計師真的完全這樣做了,玩家可能會在關卡結束前心臟病發作。
在實際的遊戲設計中,它可能是這樣的:
在整體關卡的節奏控制中,每個小節的難度曲線
曲線的谷峰代表最喧鬧的時間(遊戲挑戰最強烈的時候),而谷底則代表遊戲中平緩的時間。
曲線的谷峰和谷底
因此,儘管最開始舉例的節點圖是線性的,但關卡中的強度和節奏可能非常不同。
為什麼要記住上面這些內容:
- 防止遺忘:因為遊戲設計師可能會忘記設計初衷
- 防止偏離:因為設計師很容易偏離主題,開始過分強調或忽略關卡的部分內容
- 優化表達:因為當你試圖用一種容易閱讀、不複雜的分析圖向別人展示設計時,它很有用。並不是所有人都明白你想在關卡中做什麼,事實上你可能是唯一知道這一點的人
二、多路徑遊戲的設計方法
多路徑,意味著關卡設計能促進遊戲中的多種選擇,將目標/重要區域通過不同的路徑連接。
多路徑示意
這引發了一系列問題:
- 玩家有多種方式到達一個區域/目標
- 如何確保玩家不會迷失方向或感到困惑?
- 如何確保不管玩家通過何種路逕到達目標,遊戲整體進程都保持不變?
- 如何確保玩家按照設計師的意願行事?
解決方案是對關卡路徑進行【分層+簡化】:
設計師可以將不同的地點、以及與之相關的遊戲玩法分配到特定的遊戲節拍(beat)中。
遊戲節拍流程圖示意
如果我們觀察關卡節拍的結構,我們馬上就能注意到關鍵的路徑是什麼。
關卡的關鍵路徑
這樣設計師可以確保:
- 玩家在所有路徑上的進程都是相同的
- 設計師知道玩家在任何特定時刻「可能」在哪裡
- 允許玩家選擇自己想要走的道路
- 確保每個區域都足夠明顯,這樣玩家就不會迷路
這也意味著,作為遊戲設計師,需要放棄一些控制權,讓玩家自己決定如何體驗遊戲。
但簡而言之,多路徑的遊戲可以歸結為:分別設計多個線性關卡序列,並有節奏地組合在一起。
它們相互疊加,相互交叉,並為玩家提供更多的玩法選擇。
三、開放/沙盒遊戲的設計方法
開放世界中可能的玩家點位分布
如果開放世界是空的,但我們在周圍散布了一堆刷新點,我們得到的就是缺乏方向性的關卡。
玩家可以去任何地方,但並沒有真正「值得」去的地方。
所以不管你有多少刷出點,地圖有多大,從節點圖的角度來看,一切都可以簡化成這樣:
沒地方可以去
如果我們為這個問號引入一個答案,並讓玩家注意到它,它就會成為玩家的興趣點(POI, point of interest)
場景中的POI興趣點
節點圖的角度來看是這樣的:
也就是說:
- 如果沒有來自設計師的任何指示,玩家將只會探索自己感興趣的內容。
- 如果橙色的興趣點是場景中最有趣的部分,那一般就是玩家會去的地方。
- 如果將遊戲內容有節奏地分布集中在這一區域,玩家便能夠充分地體驗。
這是因為:
- 地圖中的每個POI,都會對玩家產生吸引力。
- 玩家將被POI吸引到,並最終想辦法到達那裡。
如果在地圖上引入其他POI,情況就會變得更加複雜:
玩家現在有很多選擇,那麼應該先去哪裡呢
POI傾向於相互競爭,它們像是為了吸引玩家的注意而互相打架。
遊戲中,玩家在訪問POI之前會權衡一系列因素:
- 距離:那個地點有多遠?
- 趣味:它看起來比其他的更有趣嗎?
- 信息:關於那個地點我知道些什麼?
- 重複:我已經去過那裡了嗎?
應該去哪裡呢
我們可以通過調整一些變量,來分化POI的吸引力,讓某些地點變得更有趣、更獨特:
相對清晰的結構
這樣去做的話,可以引出一系列遊玩這個關卡的路徑結構:
這些路徑的組合,將會基於玩家偏好的遊戲風格和玩家類型:
- 有些玩家可能會先去比較困難的地方
- 有些玩家可能喜歡探索地圖一邊的位置
然而,所有的POI都必須具有吸引力。
因為玩家只有在知道自己努力前往地點的意義時,才會真正到達地點並體驗到遊戲內容。
如果遊戲設計師加入更多的變量,關卡就會變得更加複雜和難以預測。
這就是設計師需要強化POI的分布,並且進行簡化的時候:
極端的開放世界場景
在這個例子中,我們很難預測玩家的前進方向。
所以很難確保遊戲進程在這個場景中發揮作用。那麼我們該怎麼辦呢?
我們可以用之前講過的【分層】+【簡化】的方法。
分層+簡化:把世界分成不同的區域泡泡
將遊戲世界中的POI劃分為不同區域,並嘗試著使用明確的結構將玩家的進程分隔開。
這樣做是為了:確保玩家在最佳情況下,能夠基於我們的遊戲進程曲線,從一個區域泡泡旅行到另一個區域泡泡來體驗內容。
預估玩家的路徑
所以,這就引出了討論的核心:開放世界關卡的POI。
四、開放世界中的POI設計方法
基於開放世界中POI網絡的複雜性,玩家可以從多個角度到達這些POI。
因此,讓我們看看應該如何組成一個POI。平面圖的角度是這樣的:
從節點圖的角度來看,應該是這樣的:
1)方法一:序列化設計的復用
將之前多路徑遊戲的序列化設計應用在這裡,將是解決這種情況的一個不錯方法:
把每一段體驗都做出結構化的序列
2)方法二:重點設計層級+進入點
另一種方法是對POI分層,重點考慮簡化的層級和進入點,可以通過下面的分析圖理解:
關注不同的層級和進入方法
對上面這張圖,可以盤點其中POI的常量和變量。
常量:
- 從開放世界來看,路徑的選擇可能——無限
- 從Layer1到Layer2來看,路徑的選擇可能——4種
- 從Layer2到目標Objective來看,路徑的選擇可能——2種
變量:
- 地點的尺寸大小
- 目標Objective具有幾層Layer數
- Layer2層級區域的數量
- 不同地點定位的難度
簡單總結一下,保持關卡結構清晰和簡單的理由:
- 難以預測:開放世界有太多的關卡組成部分,很難預測玩家路徑。
- 功能錯位:部分關卡可能會出現和預期不符的功能變化。
- 迷失目標:過於複雜的地點分布最終會讓玩家感到困惑。
- 精力有限:如果設計師能預先確定合適的POI路線,那麼就應該把重點放在優化設計這些路線。如果關注點太多,遊戲設計師沒有足夠的時間去覆蓋所有的遊戲內容。