建立海盗的天堂:盗贼之海的AI(一)
如果你在網站或YouTube上關注過這個系列,你就知道我平常研究的是商業電子游戲中人工智能(AI)的構建,但我通常會在游戲發行后很久才開始。我之前從未有這樣的機會,能夠這么直接、坦誠地與開發工作室談論他們的經歷——從產品最初的概念到上架,并在現代游戲生態系統中生存。2018年年末,我受到Rare公司的邀請,去拜訪海盜題材多人冒險游戲《盜賊之海》的開發工作室。這款游戲不僅為Xbox平臺的玩家帶來了獨特體驗,還促使人們對Rare有了新的認識。請跟我一起去幕后,認識《盜賊之海》的編程團隊,你不僅能夠學到關于游戲制作的第一手知識,而且還能了解他們在游戲不斷更新和改進的過程中所付出的努力。
?
關于《盜賊之海》
Rare公司是英國游戲產業的元老之一,30年來他們通過不斷革新、適應市場的變化得以生存下來。1990年代,為了和任天堂建立緊密的合作關系,他們為ZX Spectrum電腦開發產品。現在的他們是微軟旗下的內部工作室之一,為Xbox提供支持。2015年,在發行了三款Kinect Sports產品以及Rare Replay周年紀念合集后,這家工作室將全部注意力轉移到一個與之前大不相同的項目上,顛覆他們以往的游戲類型和開發方式。
Rare開發《盜賊之海》的初衷是想做一個獨特的產品。實時服務游戲是他們之前從未嘗試過的,但他們的設計意圖是以玩家為中心。玩家可以從不同的人物那里領取任務,你可以優先玩自己喜歡的內容,按照自己的節奏進行,這樣可以最大程度確保游戲的易上手性。作為回報,玩家不僅可以提高他們在不同幫派中的聲望,還可以賺取貨幣來購買各種各樣的新裝扮:一頂很酷的新帽子或假腿、一張漂亮的船帆,或者一個鑲金邊的水桶。玩家可以通過完成任務、擊敗骷髏堡壘、克服極為糟糕的航行天氣、跟陌生人一起演奏漁村民謠再喝上幾杯而獲得滿足感。
?
?
隨著時間的推移,《盜賊之海》已經形成了一個忠實的粉絲群體,他們持續在海上航行冒險,甚至可以挑戰最狂熱的傳奇海盜。手游賬號賣號這主要是歸功于Rare公司對游戲的不斷拓展,游戲發行后的8個月內就有四次大更新。2019年4月,游戲周年慶的到來也揭開了今年的更新序幕:PvP模式、新的劇情以及新的游戲玩法的引入。Rare試圖將這些新游戲特色結合不斷優化的已有內容,從而增加核心游戲玩法復雜程度。
《盜賊之海》內置有靈活多變的AI系統,并且會隨著每次更新而不斷豐富。雖然游戲中所包含的還是較為傳統的類人敵對角色(如骷髏),島嶼上也是蛇、豬這樣較為普通的AI生物,但開發團隊的重點關注是不斷增加海洋環境中的威脅,它們可能會你和你的船造成嚴重傷害。他們不滿足于發行初期的鯊魚,2018年增加了海怪,巨齒鯊和幽靈船,它們的設定會隨著每次更新而優化調整。所有的這些內容都需要搭配能夠發揮平衡作用的系統,確保這個內置上百個AI角色的網絡世界能夠保持穩定、處于掌控范圍之內,因為每臺服務器上都有各種各樣的惡作劇在發生。此外,由于它是一個實時服務游戲,項目需要保持能夠快速迭代的狀態,頻繁地發布新內容,并確保游戲對玩家來說是穩定的。所有的這些都是在開發團隊沒有過度加班的情況下實現的——AI甚至也在其中發揮了作用。現在,我們來從頭開始思考:在它們發展成可玩內容之前,《盜賊之海》是如何開端的。
建設AI系統
受到Rare工作室的邀請之后,我迫切地想要了解更多關于《盜賊之海》AI系統的信息:不僅僅其本身,還有它是如何成為游戲的最關鍵元素。游戲采用的是Epic的虛幻引擎4,它不僅是電子商業游戲最常用的引擎之一,而且在3A領域也享有盛名。
?
眾所周知,虛幻引擎在多人聯網玩法和跨平臺開發方面非常可靠——尤其是考慮到開發商打算在Xbox One和PC兩個平臺上發行這款游戲并連接到Xbox Live,這一點至關重要。此外,虛幻4的AI工具合集可以說是所有可供開發人員使用的商業引擎中最強大的。它不僅提供了一套導航網格編輯工具——確保角色能夠在移動的過程中識別地形的變化——它還有行為樹系統,用于創建對游戲中事件反應的通用表現行為。當《盜賊之海》開始制作時,環境查詢系統(EQS)還處于實驗階段——它用于檢視角色是否能被近距離看到或聽到,可以模擬感官輸入,并將性能開銷降至最低。然而,這一切對Rare的構想來說還是有所欠缺。只有骷髏和其它陸地上的AI角色(如豬、雞)是完全由原有的AI框架操刀的,當然Rare還進行了一點特殊加工。
這其中的一個重要的原因是游戲的大部分場景都是在水里,無論是四處游泳還是在船上,導航網格都無法提供支持——我后續會細講這點。幸運的是,人們可以接觸到虛幻4引擎的源代碼。這能讓開發者根據自己的需求定制水上導航系統,然后再套入引擎現有的導航框架,這一點我會在系列的第二部分展開。除此之外,我會在文章的第三部分講到海怪、幽靈船這樣的敵人也需要定制工具,這將使AI能夠以一種特別的方式運行——這在虛幻4默認條件下是不可能實現的。所以總結來說,Rare公司能創造出獨特的系統并契合現有的虛幻引擎AI工作流,同時確保工具鏈不會變得太難以管理。
讓AI適應任務設計
在我寫這篇文章的時候,《盜賊之海》已經發行一周年了。在這一年期間,游戲中的主要活動有三個,它也們在游戲玩法、任務構建和AI行為方面都有不同的需求和側重。NPC能夠讓玩家從三大貿易公司中獲取任務:
?
1.淘金者:你出航到島上挖寶箱,回來時要把寶箱交給淘金者,寶箱只有他們才能打開。
2.商人聯盟:他們會要求玩家帶回指定的物品——有可能是豬、雞等動物,也有可能是朗姆酒、植物等貨品。
3.靈魂秘社:你需要去一個或多個熱帶地區,找到不死骷髏戰士,再次殺死他們,然后把他們頭骨賣掉。
這些任務都需要游戲系統在運行時生成AI角色,以滿足任務需求。舉個例子,靈魂秘社任務需要骷髏出現在指定的島嶼中供玩家對戰,同時還需要設定一些高價值的打擊目標。淘金者和商人聯盟任務,骷髏戰士仍然會在特定的時間出現在島嶼上,成為你與戰利品之間的阻礙。另外,商人聯盟任務有的需要捕捉動物,游戲就必須確保某些特定島嶼會出現動物,供玩家捕捉。隨著近期周年慶的更新,游戲引入了第四家貿易公司“獵人召喚”,增加了捕魚機制以及伴隨而來的魚類AI。
在進行任務時,游戲不僅需要確保這些角色在指定區域大量出現,還要根據玩家團隊的規模、任務地點、任務領取人的排名以及任務類型把握好目標數量和難度之間的平衡曲線。這就是程序生成發揮小作用的地方。
賞金獵人的數量——也就是有多少敵人和隊長——被限制在一組參數之內。任務會在購買后生成。所以當你使用金幣時,系統會決定你要去往游戲世界的哪個地方以及你需要完成多少目標。賞金多少是根據島嶼特定區域內的特定目標所決定的。 如果你有多個懸賞目標,它們會給你帶來不同的戰術作戰經驗。比如說,你可能要在海岸邊打一場,而另一場是在洞穴深處,由此來達到一種平衡效果。
隨著時間的推移,每一種任務類型都在以自己獨有的方式拓展,這不僅為玩家,也為設計師制造了越來越多的挑戰。 這些任務鏈彼此獨立,允許玩家優先選擇他們喜歡的任務線,游戲也不會因為他們從其它貿易公司獲取任務而給予懲罰或令他們犯難。因此,你可以在玩了幾個小時的靈魂秘社任務后為商人聯盟快速跑個腿,而且后續任務的規模和難度不會受到前幾個小時游戲的影響。
但是從AI性能和多人聯網方面考慮,有個關鍵問題需要思考:這個服務器上并不只有你一個團隊。這與我之前在研究《全境封鎖》AI時發現的挑戰類似,即游戲必須平衡活動世界中的所有AI行為。在所有這些AI角色都在運行的情況下,你如何保持游戲世界的良好性能表現?我們就這個重要話題在工作室討論了很久,盡管其中涉及的具體計算問題仍需保密,但我了解到了每個任務所需的AI角色僅在必要時大量產生,并且讓它們出現在離當下最近玩家千里之外的島上,或者讓玩家去往幾乎沒人會注意到它們的海域,從而避免浪費CPU和內存資源。這樣當一個船員正忙于獵捕巨齒鯊時,它不會影響到另一個在島上進行靈魂秘社任務的船員。像豬和雞等AI角色只會在船員足夠靠近、大概能看到時才會出現。除此之外,與玩家同處一島的豬、蛇和骷髏,在非戰斗狀態下或者人類玩家視線之外往往會進入休眠狀態。這是一種安全的策略,可以最大程度減少服務器端不必要的計算(因為大概也沒有人會去注意這些角色的情況),從而釋放資源,留給其它更值得用的地方。
我們將在接下來的系列文章中看到,這種設計理念同樣適用于骷髏船、巨齒鯊和海怪。然而,這些系統的規則都具有唯一性,且基于完全獨立的服務和行為系統之上。
?
?
總結
將這種恃強凌弱的冒險帶給玩家聽起來像是一項艱巨的任務,但這僅僅是個開始,我仍有許多令人興奮的話題要討論。
?
- 骷髏AI的行為樹結構,以及它們是如何設計成與玩家一樣的行動模式。
- 鯊魚的導航系統有哪些獨特之處?
- 海洋深處最致命的威脅:巨齒鯊、海怪和骷髏。
- 好了,我們終于要開始分析自動化測試框架了——它能夠讓Rare在開發過程中對游戲進行廣泛測試,將bug大幅減少,在游戲發行前后更快更流暢地部署游戲。
總結
以上是生活随笔為你收集整理的建立海盗的天堂:盗贼之海的AI(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 游戏AI之决策结构—行为树
- 下一篇: 人工智能(AI)在游戏中的应用(下)