建立海盜的天堂:盜賊之海的AI(一)

遊資網發表於2019-09-29
如果你在網站或YouTube上關注過這個系列,你就知道我平常研究的是商業電子遊戲中人工智慧(AI)的構建,但我通常會在遊戲發行後很久才開始。我之前從未有這樣的機會,能夠這麼直接、坦誠地與開發工作室談論他們的經歷——從產品最初的概念到上架,並在現代遊戲生態系統中生存。2018年年末,我受到Rare公司的邀請,去拜訪海盜題材多人冒險遊戲《盜賊之海》的開發工作室。這款遊戲不僅為Xbox平臺的玩家帶來了獨特體驗,還促使人們對Rare有了新的認識。請跟我一起去幕後,認識《盜賊之海》的程式設計團隊,你不僅能夠學到關於遊戲製作的第一手知識,而且還能瞭解他們在遊戲不斷更新和改進的過程中所付出的努力。

建立海盜的天堂:盜賊之海的AI(一)

關於《盜賊之海》

Rare公司是英國遊戲產業的元老之一,30年來他們通過不斷革新、適應市場的變化得以生存下來。1990年代,為了和任天堂建立緊密的合作關係,他們為ZX Spectrum電腦開發產品。現在的他們是微軟旗下的內部工作室之一,為Xbox提供支援。2015年,在發行了三款Kinect Sports產品以及Rare Replay週年紀念合集後,這家工作室將全部注意力轉移到一個與之前大不相同的專案上,顛覆他們以往的遊戲型別和開發方式。

Rare開發《盜賊之海》的初衷是想做一個獨特的產品。實時服務遊戲是他們之前從未嘗試過的,但他們的設計意圖是以玩家為中心。玩家可以從不同的人物那裡領取任務,你可以優先玩自己喜歡的內容,按照自己的節奏進行,這樣可以最大程度確保遊戲的易上手性。作為回報,玩家不僅可以提高他們在不同幫派中的聲望,還可以賺取貨幣來購買各種各樣的新裝扮:一頂很酷的新帽子或假腿、一張漂亮的船帆,或者一個鑲金邊的水桶。玩家可以通過完成任務、擊敗骷髏堡壘、克服極為糟糕的航行天氣、跟陌生人一起演奏漁村民謠再喝上幾杯而獲得滿足感。

建立海盜的天堂:盜賊之海的AI(一)

隨著時間的推移,《盜賊之海》已經形成了一個忠實的粉絲群體,他們持續在海上航行冒險,甚至可以挑戰最狂熱的傳奇海盜。這主要是歸功於Rare公司對遊戲的不斷擴充,遊戲發行後的8個月內就有四次大更新。2019年4月,遊戲週年慶的到來也揭開了今年的更新序幕:PvP模式、新的劇情以及新的遊戲玩法的引入。Rare試圖將這些新遊戲特色結合不斷優化的已有內容,從而增加核心遊戲玩法複雜程度。

《盜賊之海》內建有靈活多變的AI系統,並且會隨著每次更新而不斷豐富。雖然遊戲中所包含的還是較為傳統的類人敵對角色(如骷髏),島嶼上也是蛇、豬這樣較為普通的AI生物,但開發團隊的重點關注是不斷增加海洋環境中的威脅,它們可能會你和你的船造成嚴重傷害。他們不滿足於發行初期的鯊魚,2018年增加了海怪,巨齒鯊和幽靈船,它們的設定會隨著每次更新而優化調整。所有的這些內容都需要搭配能夠發揮平衡作用的系統,確保這個內建上百個AI角色的網路世界能夠保持穩定、處於掌控範圍之內,因為每臺伺服器上都有各種各樣的惡作劇在發生。此外,由於它是一個實時服務遊戲,專案需要保持能夠快速迭代的狀態,頻繁地釋出新內容,並確保遊戲對玩家來說是穩定的。所有的這些都是在開發團隊沒有過度加班的情況下實現的——AI甚至也在其中發揮了作用。現在,我們來從頭開始思考:在它們發展成可玩內容之前,《盜賊之海》是如何開端的。

建設AI系統

受到Rare工作室的邀請之後,我迫切地想要了解更多關於《盜賊之海》AI系統的資訊:不僅僅其本身,還有它是如何成為遊戲的最關鍵元素。遊戲採用的是Epic的虛幻引擎4,它不僅是電子商業遊戲最常用的引擎之一,而且在3A領域也享有盛名。

建立海盜的天堂:盜賊之海的AI(一)

眾所周知,虛幻引擎在多人聯網玩法和跨平臺開發方面非常可靠——尤其是考慮到開發商打算在Xbox One和PC兩個平臺上發行這款遊戲並連線到Xbox Live,這一點至關重要。此外,虛幻4的AI工具合集可以說是所有可供開發人員使用的商業引擎中最強大的。它不僅提供了一套導航網格編輯工具——確保角色能夠在移動的過程中識別地形的變化——它還有行為樹系統,用於建立對遊戲中事件反應的通用表現行為。當《盜賊之海》開始製作時,環境查詢系統(EQS)還處於實驗階段——它用於檢視角色是否能被近距離看到或聽到,可以模擬感官輸入,並將效能開銷降至最低。然而,這一切對Rare的構想來說還是有所欠缺。只有骷髏和其它陸地上的AI角色(如豬、雞)是完全由原有的AI框架操刀的,當然Rare還進行了一點特殊加工。

這其中的一個重要的原因是遊戲的大部分場景都是在水裡,無論是四處游泳還是在船上,導航網格都無法提供支援——我後續會細講這點。幸運的是,人們可以接觸到虛幻4引擎的原始碼。這能讓開發者根據自己的需求定製水上導航系統,然後再套入引擎現有的導航框架,這一點我會在系列的第二部分展開。除此之外,我會在文章的第三部分講到海怪、幽靈船這樣的敵人也需要定製工具,這將使AI能夠以一種特別的方式執行——這在虛幻4預設條件下是不可能實現的。所以總結來說,Rare公司能創造出獨特的系統並契合現有的虛幻引擎AI工作流,同時確保工具鏈不會變得太難以管理。

讓AI適應任務設計

在我寫這篇文章的時候,《盜賊之海》已經發行一週年了。在這一年期間,遊戲中的主要活動有三個,它也們在遊戲玩法、任務構建和AI行為方面都有不同的需求和側重。NPC能夠讓玩家從三大貿易公司中獲取任務:

建立海盜的天堂:盜賊之海的AI(一)

1.淘金者:你出航到島上挖寶箱,回來時要把寶箱交給淘金者,寶箱只有他們才能開啟。
2.商人聯盟:他們會要求玩家帶回指定的物品——有可能是豬、雞等動物,也有可能是朗姆酒、植物等貨品。
3.靈魂祕社:你需要去一個或多個熱帶地區,找到不死骷髏戰士,再次殺死他們,然後把他們頭骨賣掉。

這些任務都需要遊戲系統在執行時生成AI角色,以滿足任務需求。舉個例子,靈魂祕社任務需要骷髏出現在指定的島嶼中供玩家對戰,同時還需要設定一些高價值的打擊目標。淘金者和商人聯盟任務,骷髏戰士仍然會在特定的時間出現在島嶼上,成為你與戰利品之間的阻礙。另外,商人聯盟任務有的需要捕捉動物,遊戲就必須確保某些特定島嶼會出現動物,供玩家捕捉。隨著近期週年慶的更新,遊戲引入了第四家貿易公司“獵人召喚”,增加了捕魚機制以及伴隨而來的魚類AI。

在進行任務時,遊戲不僅需要確保這些角色在指定區域大量出現,還要根據玩家團隊的規模、任務地點、任務領取人的排名以及任務型別把握好目標數量和難度之間的平衡曲線。這就是程式生成發揮小作用的地方。

賞金獵人的數量——也就是有多少敵人和隊長——被限制在一組引數之內。任務會在購買後生成。所以當你使用金幣時,系統會決定你要去往遊戲世界的哪個地方以及你需要完成多少目標。賞金多少是根據島嶼特定區域內的特定目標所決定的。 如果你有多個懸賞目標,它們會給你帶來不同的戰術作戰經驗。比如說,你可能要在海岸邊打一場,而另一場是在洞穴深處,由此來達到一種平衡效果。

隨著時間的推移,每一種任務型別都在以自己獨有的方式擴充,這不僅為玩家,也為設計師製造了越來越多的挑戰。 這些任務鏈彼此獨立,允許玩家優先選擇他們喜歡的任務線,遊戲也不會因為他們從其它貿易公司獲取任務而給予懲罰或令他們犯難。因此,你可以在玩了幾個小時的靈魂祕社任務後為商人聯盟快速跑個腿,而且後續任務的規模和難度不會受到前幾個小時遊戲的影響。

但是從AI效能和多人聯網方面考慮,有個關鍵問題需要思考:這個伺服器上並不只有你一個團隊。這與我之前在研究《全境封鎖》AI時發現的挑戰類似,即遊戲必須平衡活動世界中的所有AI行為。在所有這些AI角色都在執行的情況下,你如何保持遊戲世界的良好效能表現?我們就這個重要話題在工作室討論了很久,儘管其中涉及的具體計算問題仍需保密,但我瞭解到了每個任務所需的AI角色僅在必要時大量產生,並且讓它們出現在離當下最近玩家千里之外的島上,或者讓玩家去往幾乎沒人會注意到它們的海域,從而避免浪費CPU和記憶體資源。這樣當一個船員正忙於獵捕巨齒鯊時,它不會影響到另一個在島上進行靈魂祕社任務的船員。像豬和雞等AI角色只會在船員足夠靠近、大概能看到時才會出現。除此之外,與玩家同處一島的豬、蛇和骷髏,在非戰鬥狀態下或者人類玩家視線之外往往會進入休眠狀態。這是一種安全的策略,可以最大程度減少伺服器端不必要的計算(因為大概也沒有人會去注意這些角色的情況),從而釋放資源,留給其它更值得用的地方。

我們將在接下來的系列文章中看到,這種設計理念同樣適用於骷髏船、巨齒鯊和海怪。然而,這些系統的規則都具有唯一性,且基於完全獨立的服務和行為系統之上。

建立海盜的天堂:盜賊之海的AI(一)

總結

將這種恃強凌弱的冒險帶給玩家聽起來像是一項艱鉅的任務,但這僅僅是個開始,我仍有許多令人興奮的話題要討論。

  • 骷髏AI的行為樹結構,以及它們是如何設計成與玩家一樣的行動模式。
  • 鯊魚的導航系統有哪些獨特之處?
  • 海洋深處最致命的威脅:巨齒鯊、海怪和骷髏。
  • 好了,我們終於要開始分析自動化測試框架了——它能夠讓Rare在開發過程中對遊戲進行廣泛測試,將bug大幅減少,在遊戲發行前後更快更流暢地部署遊戲。


作者:Tommy Thompson
譯者:Willow Wu
來源:遊戲邦編譯
原譯文:https://www.gamasutra.com/blogs/TommyThompson/20190604/343937/Building_a_Pirates_Paradise_The_AI_of_Sea_of_Thieves_Part_1.php

相關文章