建立海盜的天堂:盜賊之海的AI設定(三):巨齒鯊、海怪和骷髏船的AI執行

遊資網發表於2019-10-12
歡迎來到AI與遊戲,《盜賊之海》系列的第三篇。在前兩篇,我分析了Rare公司是如何平衡這款海盜題材遊戲的AI系統在不同伺服器的遊戲體驗,另外骷髏和鯊魚AI是如何促使玩家無論在陸地還是水中都保持警惕。在系列的倒數第二篇,我們來看看《盜賊之海》中玩家面臨的三個最大威脅:巨齒鯊、海怪和骷髏船。

建立海盜的天堂:盜賊之海的AI設定(三):巨齒鯊、海怪和骷髏船的AI執行

我們至今看到的AI都是圍繞特定的設計元素而構建的。豬、蛇和雞給藏寶的島嶼增加了生氣,骷髏成為了你尋寶路上的障礙,而鯊魚是為了不讓你在水中閒得太久。雖然其他玩家小隊也是你航海途中的威脅之一,但是Rare想要增加一些更具有震懾力的威脅,不管多牢固的大帆船也能被摧毀。

在遊戲剛發行之時,海怪會在開放世界中捕獵船隻,玩家可能會不幸成為它的獵物。飢餓深淵DLC引入了巨齒鯊,而詛咒之帆DLC加入了幽靈船——由一群骷髏掌舵的大型帆船。它們都有的特定啟用條件,是遊戲世界中大型海戰事件的主角。海怪總是出沒在公海上,隨時準備攻擊船隻,而巨齒鯊最初需要完成梅里克的任務線才能啟用,並且只在Devil’s Ridge島的南部活動。同樣,在詛咒之帆加入的骷髏船最初也只在3個地區活動——分別是Smuggler’s Bay、Sharkbait Cove和Marauder’s Arch的附近海域。然而,在這些DLC發行之後,巨齒鯊和骷髏船的活動範圍逐漸擴大,以更靈活的方式遨遊在公海中,伺機攻擊玩家,跟海怪AI的執行方式更像了。

建立海盜的天堂:盜賊之海的AI設定(三):巨齒鯊、海怪和骷髏船的AI執行

2018年的最後一個DLC霧鎖寶藏,巨齒鯊有了多種個性、骷髏船分為了兩種大小規模以及海怪攻擊模式的調整。開發人員新增新特色、重新平衡現有內容為的就是讓玩家時刻保持警惕。但這些變化也帶來了一些新的問題,這些系統可以彼此互動嗎?你可以通過攻擊骷髏船來中斷巨齒鯊的攻勢嗎?海怪或者巨齒鯊也會攻擊骷髏船嗎?

開發團隊曾經擔心過一個小隊可能會同時遇上多種危險。然而,在經歷了內部測試之後,團隊的想法很快就發生了改變。你可以在最近的更新中看到開發者做了更多努力,從多方面確保這些互動的實際效果好玩有趣,同時還要將效能開銷保持在最低限度,也就是我們在第一篇所說的那樣。

在拜訪Rare工作室期間,我找了個機會跟三位開發者坐下來聊了聊,他們的工作對新特色的發行起著至關重要的作用。巨齒鯊主要是由Andy Blastable負責,Chantelle Porritt和Tristan Bell分別負責海怪以及骷髏船的持續的開發、調整。我在上一篇與Rob和Sarah的視訊訪談中就已經發現了這些系統的內部命名:海怪Kraken是Karen,巨齒鯊Megalodon是Megan,而骷髏船skeleton ships是Skevin(?)。

嘿,我知道你是來看敵對角色的AI分析,所以開始吧。讓我們逐個分析,這些AI運作的基礎是什麼、自發行以來做過哪些調整和更新、它們是如何與第一篇中講過的的AI管理系統相適應的、以及讓骷髏到處跑並控制幽靈船所需的有趣技巧。

巨齒鯊

讓我們先從最容易解釋的開始:巨齒鯊Megan,在開發期間人們也稱她為“小鯊魚”。這是一個代號,目的是為了不讓資料探勘者發現開發人員的意圖,因為他們總是在窺探下一次的更新內容。可以說,她是最容易解釋的AI角色了,因為大部分內容我在第二篇就講過了。巨齒鯊就是鯊魚的加大號版本,只是她現在會攻擊船而不僅是玩家。

建立海盜的天堂:盜賊之海的AI設定(三):巨齒鯊、海怪和骷髏船的AI執行

然而,開發團隊並不只是單純地把鯊魚變大,他們重新平衡了巨齒鯊的行為,以便更好地適應海戰的節奏。為了讓她的行為頻率達到一個平衡的狀態,他們用了計時器。這些行為包括跳出水面游到目標船隻旁邊、游到船下面、當然還有攻擊和從船體上撕咬下一大塊。雖然對絕大部分人來說她是一個挑戰性十足的擊殺目標,但開發人員仍然需要確保玩家能夠拿下她,不會覺得遊戲體驗失衡。於是,他們不僅在視覺效果上做了調整——魚鰭,也就巨齒鯊的頂部在海平面看得更加清楚了——還沿用了之前我們在第二篇中討論過鯊魚導航系統,確保Megan的位置在大炮射程之內。

建立海盜的天堂:盜賊之海的AI設定(三):巨齒鯊、海怪和骷髏船的AI執行

在冷卻時間結束後Megan會立即出現,可能會攻擊船員,任何在還在水中的船員都能親身領教她的憤怒。然而,儘管如此,其實有不小概率她只是跳出來搗亂罷了。自飢餓深淵發行以來,遊戲後續的更新讓巨齒鯊有了更多樣化的外形和行為,還有不同的皮膚。她可能是以被動形態出現的,只會在被激怒時發動攻擊。

海怪

接下來,我們來談下游戲發行之初時就有的boss,海怪Karen!海怪會定期選擇一艘船攻擊,此時周圍的海會變成黑色,幾隻觸手從海底升上來。每次海怪出現時,觸手會包圍船隻——是的只有觸手,因此有很多玩家懷疑海怪Karen實際上就沒有主體。有些觸手是真的會攻擊玩家和船,有些只是花瓶觸手,為的是把畫面弄得更加壯觀。

建立海盜的天堂:盜賊之海的AI設定(三):巨齒鯊、海怪和骷髏船的AI執行

海怪這個角色是非常獨特的,她是唯一一個沒有用虛幻引擎行為樹構建的AI角色。每隻觸手都有屬於自己的AI元件,或者是攻擊玩家,或者是攻擊船,又或者是屹立於海上什麼都不做。它們從Overlord系統接受指令,系統命令哪些觸手需要主動出擊,並選擇有效的目標。Overlord在一定程度上是作為一個有限狀態機(finite state machine,是表示有限個狀態以及在這些狀態之間的轉移和動作等行為的數學模型,遊戲邦注)構建的,它的任務是關注攻擊之間的時間間隔(無論攻擊物件是船還是玩家)以及攻擊方式。

跟Megan類似,Karen的觸手包圍船隻是刻意設計的,為的是確保它在炮彈的射程範圍之內,玩家可以打敗它。此外,被攻擊團隊的每個玩家都會有對應的冷卻計時器。當玩家被某個觸手攻擊後,冷卻計時器就會重置。你會得到喘息的機會,要麼趕緊回血,要麼再次開始攻擊。另外更關鍵的是,攻擊會被分攤到其他船員和你的船隻上。因此,一點合作+運氣你就能把海怪送回老家。

建立海盜的天堂:盜賊之海的AI設定(三):巨齒鯊、海怪和骷髏船的AI執行

每次Karen攻擊伺服器上的一艘船時,她都會等待一段時間再發動又一次攻擊。所以在這期間全體船員都有機會處理自己的事。雖然具體的間隔時長還是個祕密,但與巨齒鯊一樣,海怪攻擊的冷卻時間在遊戲開發的第一年中經過了多次調整。另外,我瞭解到了一件有趣的事:Karen不會歧視任何人,她樂於攻擊任何在海上的船員,甚至是剛才她已經攻擊過的。雖然你可能暫時是安全的,但最好儘快把所有的戰利品都扔到最近的據點。

骷髏船

最後一個但同樣重要的——骷髏船。隨著新DLC霧鎖寶藏的發行,骷髏船現在能在開放海域航行了,如果有玩家靠近他們,他們就會立即發起攻擊。每艘船上都有獨立的AI骷髏船員,實時AI行為再加上一些煙霧彈式設計,既能簡化開發人員的工作,又能達到預期的效果。事實上,骷髏船是遊戲中最複雜的一組AI系統,從最初的概念到最後成品耗費了好幾個月的時間。

建立海盜的天堂:盜賊之海的AI設定(三):巨齒鯊、海怪和骷髏船的AI執行

這些船隻依賴於它們自己獨特的航行和轉向機制,而虛幻4引擎沒有內建的水上導航系統,這就跟鯊魚AI的問題一樣。因此,每艘骷髏船都有自己的感測器合集,不僅是用於探測附近的障礙物,還能計算出它和附近的船(無論是人類還是AI控制的)幾秒鐘後的移動位置。這有助於預測它與附近島嶼、礁石甚至其它船隻的碰撞,並讓掌舵AI相應地改變方向。當然,如果它是刻意想撞你的話那就另當別論了。這個設計方式也適用於從海洋裡升起的船隻,這樣它們就不會落在另一艘船上。實際的運動速度要考慮風向等因素計算得出並做相應的調整。

現在,思考一下幽靈船的構造,它的甲板上有許多骷髏,每個骷髏都依賴於的他們獨特的AI框架,正如我們在第二篇中詳述的那樣,骷髏與玩家共享輸入介面,玩家能做的事他們也能做。然而,還是有一些限制存在的。他們可以部署大炮、用裝備欄中的木板修理船體,但他們不能舀水——這就讓玩家們想出了各種有意思的對策。開發人員確實用了一些矇蔽人眼的技巧製造出骷髏船員控制帆船的效果。但船錨和船帆都不是骷髏控制的,是船本身調整的。我們已經解釋了所有的導航系統,你們也可以推測出遊戲不需要經由骷髏來控制航行路線。儘管如此,在船長沒有到位的情況下船是無法行駛的。所以,雖然有船長掌舵才能揚帆起航,但實際上船本身就可以指揮一切。

建立海盜的天堂:盜賊之海的AI設定(三):巨齒鯊、海怪和骷髏船的AI執行

所以,如果你想展示一下海盜的職業能力,可以去嘗試分散船長的注意力,或者直接殺死船長,這都會迫使骷髏船停下來,而且其他骷髏都無法接手掌舵。記住這一點,下次你在海上看到他們的時候就有勝算了!

然而,不管這一切有多酷,骷髏船AI真正的成功之處是大多數玩家都不會留心注意的:骷髏是真的在甲板上、船體內都在活動。他們能夠找到船體破洞裡修理,也能夠移動到到大炮後邊發射它們。我知道對於大多數家來說,這聽起來似乎並不是什麼具有突破性的東西,但從AI的角度來看,這確實是個大事,是我在玩《盜賊之海》時的一個真正意外驚喜。讓我來解釋一下。

建立海盜的天堂:盜賊之海的AI設定(三):巨齒鯊、海怪和骷髏船的AI執行

就如我們在第二篇中所分析的那樣:一般我們會用一個叫作導航網格的系統讓角色在三維空間內行走,遊戲島上所有的骷髏都是用這個系統。然而,導航網格或者是提前構建好的,或者是整合到關卡之中,又或者是像我最近研究的《地平線:零之曙光》那樣,在執行時根據岩石或在導航網格表面移動的其他小物體的變化來計算。是的,導航網格可以適應在表面上移動的物體和角色的變化,但是導航網格本身並沒有移動。如果這個二維表面也在移動,那就不僅要重新計算導航網格,還要重新規劃所有站在這上面的角色的路徑,哪怕只是移動一點點。這無疑會消耗很多CPU和記憶體資源,你很難想到適合的解決方案。但是在《盜賊之海》中,船體和甲板的表面並不只是隨著海浪的移動而移動,船本身也是移動的!一開始時我以為這是假的:骷髏只是簡單地從船上的一個點移動到另一個點,但是如果你仔細觀察帆船上骷髏的移動方式,你會發現它們是按照自己的需求地四處奔走,從海洋物理學的角度來說,它們一直都是站在一艘移動的船上。

建立海盜的天堂:盜賊之海的AI設定(三):巨齒鯊、海怪和骷髏船的AI執行

最大的祕密在於船隻的導航網格其實是靜止的,它是覆蓋在海底的,船上的骷髏其實還是跟島上的一樣,在導航網格上移動。也就是說導航網格是固定的,不會跟隨船隻移動。同時,海底導航網格上的座標分別被傳送到甲板以及船體上,這個過程必須考慮船目前的方向。也就是說,導航路徑需要跟隨船隻的實時轉向而變化。面對這個非常複雜的問題,開發團隊給出了一個頗具創造性的解決方案,雖然不算完美,但它確實很好地實現了團隊的目標!


總結

雖然其他其他玩家是你航海途中的真正威脅,但是這些AI角色也是不可忽視的狠角色。這三篇文章中我們探討了《盜賊之海》遊戲體驗背後的所有AI系統,它們為你提供任務、在島嶼和海上生成不同個性的AI角色(友善和非友善)、平衡不同伺服器上的玩家體驗。但我還不打算在此畫上句號。《盜賊之海》這個遊戲需要Rare全體開發成員的大量投入,無論是原畫師、動畫師、聲效設計還是程式設計師都是如此,事實證明要駕馭類似規模的專案是非常具有挑戰性的。

在系列的最後一篇,我們會談到貫穿《盜賊之海》整個開發過程的測試、部署系統,以及它是如何簡化開發團隊的工作。我將採訪專案的兩位領導主力Andy Bastable和Rob Masella——他們從程式碼庫入手,將《盜賊之海》引向新的未來。為了預防玩家在遊戲過程中AI或者其它遊戲系統出現bugs,測試系統起到了什麼樣的作用?以及遊戲是如何做到快速部署的?

相關閱讀:
建立海盜的天堂:盜賊之海的AI設定(一):任務活動是如何生成的?
建立海盜的天堂:盜賊之海的AI設定(二):骷髏和鯊魚AI的祕密

原作者:Tommy Thompson
來源:遊戲邦編譯
原譯文:
https://www.gamasutra.com/blogs/TommyThompson/20190619/344876/How_Megaladons_Krakens_and_Skeleton_Ships_Work_in_Sea_of_Thieves_Part_3_of_4.php


相關文章