序
在我玩遊戲的過程中,總會遇到一些讓我感到困惑的情況,包括但不限於,我用什麼子彈就掉什麼子彈,有的遊戲越玩越簡單而有的遊戲越玩越難,boss一刀劈在我臉上血條剛好就剩一點點。這些情況自然不是無心之舉,在它們的背後,都有一隻無形的手把控著觸發條件,也就是我們今天的主題——動態難度。
![保持遊戲樂趣的魔法——淺談動態難度設計-第1張](https://cdn.nlark.com/yuque/0/2021/jpeg/21525103/1636196392319-8c6abc8f-67ef-4c1b-818e-1e53bf51fe21.jpeg)
以動態難度聞名的遊戲《Flow》
心流狀態
在回答以上情況產生原因之前,我們首先要清楚遊戲設計者在設計遊戲時最希望玩家達到的狀態——心流(Mental Flow)狀態,此為心理學家米哈里·希斯贊特米哈伊先生在1990年出版的《心流》一書中提出的人類特殊心理狀態,在心流狀態下,人類會全身心地投入到目前手上正在進行的工作中去,不願意被打斷,保持極高的興奮感和充實感。這種狀態的應用場景非常廣泛,只要是人類能著手從事的工作都有可能觸發心流狀態,對於電子遊戲,同樣如此。
![保持遊戲樂趣的魔法——淺談動態難度設計-第2張](https://cdn.nlark.com/yuque/0/2021/jpeg/21525103/1636196951005-555b7334-2e3f-4d6b-a85c-72236f2b3ae8.jpeg)
為了直觀的表現出心流狀態實現的方式,在這裡我們以玩家期待度為橫軸,以遊戲挑戰性為縱軸繪製一幅圖像。在中間區域的部分即為心流狀態,當玩家期待度低於遊戲挑戰性時,玩家會產生焦慮感,認為遊戲太難了;而當玩家期待度高於遊戲挑戰性時,玩家會感到無聊,認為遊戲太簡單了。
同時,你能看到圖像中的心流狀態並不是一條直線,正如前文所說,隨著遊戲經驗的累積,玩家的期待度也會發生變化。倘若遊戲挑戰性是固定的,就很難迎合玩家變化的期待度,從而難以實現心流狀態,於是,動態難度的設計,誕生了。
![保持遊戲樂趣的魔法——淺談動態難度設計-第3張](https://cdn.nlark.com/yuque/0/2021/png/21525103/1636196368883-26761bc5-b655-41ef-be8f-3d9c61464656.png)
基本概念
動態難度(Dynamic Difficulty Adjustment)正如其名,是一種在遊戲進程中動態調整遊戲難度的設計,從字面上看,這顯然是一個合成詞,由“動態”和“難度”構成,我們將分別進行介紹。
動態方面有三大基本要求:
一,遊戲需要自動追蹤玩家能力並適應它;
二,遊戲需要根據玩家能力的提升和下降維持難度平衡;
三,動態調節的過程不能讓玩家知道,並且調節過程前後需要關聯。
其中第三點為什麼要強調“不能讓玩家知道”,我們會在之後的具體案例中進行解釋。動態難度的出現,讓遊戲能時刻維持玩家期待度和遊戲挑戰性的平衡,讓玩家一直處在心流狀態,獲得最佳的遊戲體驗。
![保持遊戲樂趣的魔法——淺談動態難度設計-第4張](https://cdn.nlark.com/yuque/0/2021/jpeg/21525103/1636196852167-f6aea8de-77f0-47f6-83fa-8bcd358f0f6f.jpeg)
難度方面也有三大基本要求:
一,清晰地指出影響難度的要素
二,根據玩家能力對難度做出分類
三,難度跨度需要控制得當。
其中第一點尤為重要,因為不同的遊戲類型決定遊戲難度的要素是大相徑庭的,開發者需要根據自己的遊戲特色因地制宜,決不能草率地套用其他作品的標準。
![保持遊戲樂趣的魔法——淺談動態難度設計-第5張](https://cdn.nlark.com/yuque/0/2021/jpeg/21525103/1636196809132-68150456-0edf-40da-84bb-952dff10175f.jpeg)
魂系列的“難”顯然不能和解謎遊戲的“難”相比較
應用方案
在這裡我先介紹兩個現有的動態難度架構,然後再結合遊戲實例看看它們的表現。
其一是動態腳本(Dynamic Scripting),如圖,其由三個步驟組成,
![保持遊戲樂趣的魔法——淺談動態難度設計-第6張](https://cdn.nlark.com/yuque/0/2021/png/21525103/1636196448340-0d1298a3-dd89-40da-a933-06933baba68d.png)
從技術的角度來看,動態腳本實現得其實並不是實時調整難度,而是根據玩家的表現選擇不同的腳本觸發。其核心在於調整不同腳本的出現率使其達到更加優秀的效果,為此開發者們還另外製作了一套選取率相關的架構,如圖所示。
![保持遊戲樂趣的魔法——淺談動態難度設計-第7張](https://cdn.nlark.com/yuque/0/2021/png/21525103/1636196453432-f80ed885-6c8d-4410-908a-e39c82a29b3e.png)
這三個方案中的第一個在實際表現中的效果並不如意,而二三的表現非常優秀,這裡我們詳細解釋一下運作機制。在玩家觸發某一腳本時,系統會根據玩家的表現給該腳本“打分”,例如玩家在該腳本下更容易擊敗敵人就加分,更容易死亡就扣分。得分越高的腳本就越容易被觸發,也就是增加它的選取率,但得分和選取率是兩套獨立的得分體系,且為充分不必要關係,前者決定後者。隨著腳本的多次觸發,得分也會越來越高,當該腳本的得分超過所設上限時,其選取率將會降低到原始數值,同時根據其他腳本的表現將其分配。這是為了避免一套腳本使用過度導致玩家認為遊戲難度過低的保護措施,並重新開始之前的操作。
![保持遊戲樂趣的魔法——淺談動態難度設計-第8張](https://cdn.nlark.com/yuque/0/2021/png/21525103/1636196738474-e0392f81-0ab0-44ab-b8d9-9d12bb84e1f6.png)
動態腳本簡化實現機制
動態腳本的出現的確能帶來一定的動態難度設計,但其需要龐大的腳本量支撐,對於大型規模的遊戲作品顯然並不適用,於是,另一套系統出現了。
其二是哈姆雷特系統(Hamlet System),如圖,其由五個步驟組成,
![保持遊戲樂趣的魔法——淺談動態難度設計-第9張](https://cdn.nlark.com/yuque/0/2021/png/21525103/1636196458393-7b27031d-d3ed-4416-ae4d-7053df903f32.png)
相較於動態腳本,哈姆雷特系統雖然同樣存在追蹤玩家行為的過程,但其觸發的結果要智能得多,遊戲並沒有預設腳本,而是根據玩家的不同能力自行調節對應的難度要素,比如玩家的戰鬥能力非常出色,那就增加敵兵的數量或血量。這一套系統將調節的過程完全交給了遊戲自行處理,開發者只需要設計一些階段性的難度即可,開發工作大大降低。
![保持遊戲樂趣的魔法——淺談動態難度設計-第10張](https://cdn.nlark.com/yuque/0/2021/png/21525103/1636196750110-4ac46e99-6bff-48bf-94c1-44e9c2488ca4.png)
哈姆雷特系統簡化實現機制
而隨著人工智能技術的進步,動態難度的設計也可能迎來全新的高度,前段時間的熱門電影《失控玩家》中的智能NPC倘若能夠實現,遊戲的難度將會真正做到千人千面。不過這些都是後話了,我們在這裡先看看當下的開發者們是如何使用動態難度的吧。
![保持遊戲樂趣的魔法——淺談動態難度設計-第11張](https://cdn.nlark.com/yuque/0/2021/jpeg/21525103/1636196500138-7061fdc2-8a7e-41b0-86be-9d47a15f1037.jpeg)
生化危機4
三上真司作為最早將動態難度加入到遊戲設計的製作人之一,在生化危機4裡將其優勢展現得淋漓盡致。生化危機4的動態難度設計正是我們先前提到的哈姆雷特系統,遊戲會根據玩家能力的體驗細緻地改變遊戲中的難度要素,在遊戲開始時,玩家會選擇一個基礎難度,但在其背後還有一個更加細緻的難度體系,姑且稱為真實難度。我們這裡假設有三檔基礎難度,簡單,普通,困難,其對應的真實難度分別為三等,五等,七等,並假設真實難度的跨度為0~10,假設玩家以普通難度進行遊戲,但在流程中經常遇到子彈不足的情況,那麼遊戲就會自動將資源刷新的難度等級在基礎難度的基礎上降低(5-1),更多地刷新子彈;而如果玩家在遊戲中的戰鬥表現非常出色,鮮有死亡,那麼遊戲就會將敵人的難度等級增加(5+1),同時不同的基礎難度一般也會設計一個上下界限,普通難度就可能是2~8,而困難難度就可能是6~10,確保遊戲的難度曲線不至於太過畸形。
![保持遊戲樂趣的魔法——淺談動態難度設計-第12張](https://cdn.nlark.com/yuque/0/2021/jpeg/21525103/1636196570958-5f6abfe7-0144-497c-a9d2-0a640b2b90dd.jpeg)
不過當動態難度的機制被玩家發現後,一些速通選手刻意地在某些關卡失誤進而降低之後的關卡難度便於通關,讓這個設計失去了原有的作用,這也是為什麼“動態”必須要“不被玩家知道”。
馬里奧賽車
不同於生化危機,馬里奧賽車的難度主要由道具和速度組成,所以遊戲的動態難度調整的方向也截然不同。當電腦角色跑在玩家前面時,遊戲會限制他們的最高速度,同時降低高級道具的刷新概率,反之亦然。這樣的設計讓玩家落後保持一種“我差一點就追上了”的感覺,同時當玩家領先時又保持一種“它們差一點就追上我了”的感覺,使遊戲時刻維持著挑戰性。
![保持遊戲樂趣的魔法——淺談動態難度設計-第13張](https://cdn.nlark.com/yuque/0/2021/jpeg/21525103/1636196541010-5e95bb44-6eaf-4e00-9536-cc709f10b88f.jpeg)
上古卷軸
B社旗下的大部分RPG作品其實都有動態難度設計,不過這裡我們以上古卷軸舉例。在上古卷軸4中,B社設計了一套隨時間敵人自動加強的機制,以便遊戲難度能跟上玩家進度,但過於死板的調節機制實現的效果也並不如意,尤其是在上古卷軸這樣場景要素極多的遊戲中,在遊戲前期的一個任務中,玩家需要向NPC提供狼皮作為任務道具,但如果玩家在遊戲中後期才觸發這個任務,此時地圖上已經沒有低級的狼作為敵人了,也就意味著玩家此刻再也無法完成這個任務。
![保持遊戲樂趣的魔法——淺談動態難度設計-第14張](https://cdn.nlark.com/yuque/0/2021/jpeg/21525103/1636196658230-901e63e1-387c-421d-8446-3db5d6836a46.jpeg)
為了解決這一問題,B社在上古卷軸5中更改了調節難度的機制,他們首先將地圖的各大板塊做好難度標記,再根據玩家的遊戲進程動態地調整板塊的邊界。例如假設玩家一直在冬堡範圍活動,那麼冬堡所處的板塊就會從一開始的普通難度逐漸增加到困難難度,同時保持其他板塊的難度水平。並在遊戲世界中設計一些固定難度等級的區域,保證遊戲世界的真實性。
![保持遊戲樂趣的魔法——淺談動態難度設計-第15張](https://cdn.nlark.com/yuque/0/2021/png/21525103/1636196632093-052796cf-5cb2-4dfd-bc34-4789f7010609.png)
上古卷軸5中的河木鎮就是一個固定的低級區域
結語
動態難度的設計當然並不止於此,在筆者看來,每款需要玩家在一開始選擇難度的遊戲都應該搭載動態難度系統,因為玩家很難根據簡短的難度設計就選擇出適合自己的難度。畢竟對於一款給玩家玩的遊戲而言,玩家想要的難度才是最好的難度。