建立海盗的天堂:盗贼之海的AI设定(三):巨齿鲨、海怪和骷髅船的AI运行
歡迎來到AI與游戲,《盜賊之?!废盗械牡谌T谇皟善?#xff0c;我分析了Rare公司是如何平衡這款海盜題材游戲的AI系統(tǒng)在不同服務器的游戲體驗,另外骷髏和鯊魚AI是如何促使玩家無論在陸地還是水中都保持警惕。在系列的倒數(shù)第二篇,我們來看看《盜賊之海》中玩家面臨的三個最大威脅:巨齒鯊、海怪和骷髏船。
?
我們至今看到的AI都是圍繞特定的設計元素而構建的。豬、蛇和雞給藏寶的島嶼增加了生氣,骷髏成為了你尋寶路上的障礙,而鯊魚是為了不讓你在水中閑得太久。雖然其他玩家小隊也是你航海途中的威脅之一,但是Rare想要增加一些更具有震懾力的威脅,不管多牢固的大帆船也能被摧毀。
在游戲剛發(fā)行之時,海怪會在開放世界中捕獵船只,玩家可能會不幸成為它的獵物。饑餓深淵DLC引入了巨齒鯊,而詛咒之帆DLC加入了幽靈船——由一群骷髏掌舵的大型帆船。它們都有的特定激活條件,是游戲世界中大型海戰(zhàn)事件的主角。海怪總是出沒在公海上,隨時準備攻擊船只,而巨齒鯊最初需要完成梅里克的任務線才能激活,并且只在Devil’s Ridge島的南部活動。同樣,在詛咒之帆加入的骷髏船最初也只在3個地區(qū)活動——分別是Smuggler’s Bay、Sharkbait Cove和Marauder’s Arch的附近海域。然而,在這些DLC發(fā)行之后,巨齒鯊和骷髏船的活動范圍逐漸擴大,以更靈活的方式遨游在公海中,伺機攻擊玩家,跟海怪AI的運行方式更像了。
?
2018年的最后一個DLC霧鎖寶藏,巨齒鯊有了多種個性、骷髏船分為了兩種大小規(guī)模以及海怪攻擊模式的調整。開發(fā)人員添加新特色、重新平衡現(xiàn)有內容為的就是讓玩家時刻保持警惕。但這些變化也帶來了一些新的問題,這些系統(tǒng)可以彼此交互嗎?你可以通過攻擊骷髏船來中斷巨齒鯊的攻勢嗎?海怪或者巨齒鯊也會攻擊骷髏船嗎?
開發(fā)團隊曾經(jīng)擔心過一個小隊可能會同時遇上多種危險。然而,在經(jīng)歷了內部測試之后,團隊的想法很快就發(fā)生了改變。你可以在最近的更新中看到開發(fā)者做了更多努力,從多方面確保這些交互的實際效果好玩有趣,同時還要將性能開銷保持在最低限度,也就是我們在第一篇所說的那樣。
在拜訪Rare工作室期間,我找了個機會跟三位開發(fā)者坐下來聊了聊,他們的工作對新特色的發(fā)行起著至關重要的作用。巨齒鯊主要是由Andy Blastable負責,Chantelle Porritt和Tristan Bell分別負責海怪以及骷髏船的持續(xù)的開發(fā)、調整。我在上一篇與Rob和Sarah的視頻訪談中就已經(jīng)發(fā)現(xiàn)了這些系統(tǒng)的內部命名:海怪Kraken是Karen,巨齒鯊Megalodon是Megan,而骷髏船skeleton ships是Skevin(?)。
嘿,我知道你是來看敵對角色的AI分析,所以開始吧。讓我們逐個分析,這些AI運作的基礎是什么、自發(fā)行以來做過哪些調整和更新、它們是如何與第一篇中講過的的AI管理系統(tǒng)相適應的、以及讓骷髏到處跑并控制幽靈船所需的有趣技巧。
巨齒鯊
讓我們先從最容易解釋的開始:巨齒鯊Megan,在開發(fā)期間人們也稱她為“小鯊魚”。這是一個代號,目的是為了不讓數(shù)據(jù)挖掘者發(fā)現(xiàn)開發(fā)人員的意圖,因為他們總是在窺探下一次的更新內容。可以說,她是最容易解釋的AI角色了,因為大部分內容我在第二篇就講過了。巨齒鯊就是鯊魚的加大號版本,只是她現(xiàn)在會攻擊船而不僅是玩家。
?
然而,開發(fā)團隊并不只是單純地把鯊魚變大,他們重新平衡了巨齒鯊的行為,以便更好地適應海戰(zhàn)的節(jié)奏。為了讓她的行為頻率達到一個平衡的狀態(tài),他們用了計時器。這些行為包括跳出水面游到目標船只旁邊、游到船下面、當然還有攻擊和從船體上撕咬下一大塊。雖然對絕大部分人來說她是一個挑戰(zhàn)性十足的擊殺目標,但開發(fā)人員仍然需要確保玩家能夠拿下她,不會覺得游戲體驗失衡。于是,他們不僅在視覺效果上做了調整——魚鰭,也就巨齒鯊的頂部在海平面看得更加清楚了——還沿用了之前我們在第二篇中討論過鯊魚導航系統(tǒng),確保Megan的位置在大炮射程之內。
?
在冷卻時間結束后Megan會立即出現(xiàn),可能會攻擊船員,任何在還在水中的船員都能親身領教她的憤怒。然而,盡管如此,其實有不小概率她只是跳出來搗亂罷了。自饑餓深淵發(fā)行以來,游戲后續(xù)的更新讓巨齒鯊有了更多樣化的外形和行為,還有不同的皮膚。她可能是以被動形態(tài)出現(xiàn)的,只會在被激怒時發(fā)動攻擊。
海怪
接下來,我們來談下游戲發(fā)行之初時就有的boss,海怪Karen!海怪會定期選擇一艘船攻擊,此時周圍的海會變成黑色,幾只觸手從海底升上來。每次海怪出現(xiàn)時,觸手會包圍船只——是的只有觸手,因此有很多玩家懷疑海怪Karen實際上就沒有主體。有些觸手是真的會攻擊玩家和船,有些只是花瓶觸手,為的是把畫面弄得更加壯觀。
?
海怪這個角色是非常獨特的,她是唯一一個沒有用虛幻引擎行為樹構建的AI角色。每只觸手都有屬于自己的AI組件,或者是攻擊玩家,或者是攻擊船,又或者是屹立于海上什么都不做。它們從Overlord系統(tǒng)接受指令,系統(tǒng)命令哪些觸手需要主動出擊,并選擇有效的目標。Overlord在一定程度上是作為一個有限狀態(tài)機(finite state machine,是表示有限個狀態(tài)以及在這些狀態(tài)之間的轉移和動作等行為的數(shù)學模型,游戲邦注)構建的,它的任務是關注攻擊之間的時間間隔(無論攻擊對象是船還是玩家)以及攻擊方式。
跟Megan類似,Karen的觸手包圍船只是刻意設計的,為的是確保它在炮彈的射程范圍之內,玩家可以打敗它。此外,被攻擊團隊的每個玩家都會有對應的冷卻計時器。當玩家被某個觸手攻擊后,冷卻計時器就會重置。你會得到喘息的機會,要么趕緊回血,要么再次開始攻擊。另外更關鍵的是,攻擊會被分攤到其他船員和你的船只上。因此,一點合作+運氣你就能把海怪送回老家。
?
每次Karen攻擊服務器上的一艘船時,她都會等待一段時間再發(fā)動又一次攻擊。所以在這期間全體船員都有機會處理自己的事。手游賬號轉讓平臺雖然具體的間隔時長還是個秘密,但與巨齒鯊一樣,海怪攻擊的冷卻時間在游戲開發(fā)的第一年中經(jīng)過了多次調整。另外,我了解到了一件有趣的事:Karen不會歧視任何人,她樂于攻擊任何在海上的船員,甚至是剛才她已經(jīng)攻擊過的。雖然你可能暫時是安全的,但最好盡快把所有的戰(zhàn)利品都扔到最近的據(jù)點。
骷髏船
最后一個但同樣重要的——骷髏船。隨著新DLC霧鎖寶藏的發(fā)行,骷髏船現(xiàn)在能在開放海域航行了,如果有玩家靠近他們,他們就會立即發(fā)起攻擊。每艘船上都有獨立的AI骷髏船員,實時AI行為再加上一些煙霧彈式設計,既能簡化開發(fā)人員的工作,又能達到預期的效果。事實上,骷髏船是游戲中最復雜的一組AI系統(tǒng),從最初的概念到最后成品耗費了好幾個月的時間。
這些船只依賴于它們自己獨特的航行和轉向機制,而虛幻4引擎沒有內置的水上導航系統(tǒng),這就跟鯊魚AI的問題一樣。因此,每艘骷髏船都有自己的傳感器合集,不僅是用于探測附近的障礙物,還能計算出它和附近的船(無論是人類還是AI控制的)幾秒鐘后的移動位置。這有助于預測它與附近島嶼、礁石甚至其它船只的碰撞,并讓掌舵AI相應地改變方向。當然,如果它是刻意想撞你的話那就另當別論了。這個設計方式也適用于從海洋里升起的船只,這樣它們就不會落在另一艘船上。實際的運動速度要考慮風向等因素計算得出并做相應的調整。
現(xiàn)在,思考一下幽靈船的構造,它的甲板上有許多骷髏,每個骷髏都依賴于的他們獨特的AI框架,正如我們在第二篇中詳述的那樣,骷髏與玩家共享輸入接口,玩家能做的事他們也能做。然而,還是有一些限制存在的。他們可以部署大炮、用裝備欄中的木板修理船體,但他們不能舀水——這就讓玩家們想出了各種有意思的對策。開發(fā)人員確實用了一些蒙蔽人眼的技巧制造出骷髏船員控制帆船的效果。但船錨和船帆都不是骷髏控制的,是船本身調整的。我們已經(jīng)解釋了所有的導航系統(tǒng),你們也可以推測出游戲不需要經(jīng)由骷髏來控制航行路線。盡管如此,在船長沒有到位的情況下船是無法行駛的。所以,雖然有船長掌舵才能揚帆起航,但實際上船本身就可以指揮一切。
?
所以,如果你想展示一下海盜的職業(yè)能力,可以去嘗試分散船長的注意力,或者直接殺死船長,這都會迫使骷髏船停下來,而且其他骷髏都無法接手掌舵。記住這一點,下次你在海上看到他們的時候就有勝算了!
然而,不管這一切有多酷,骷髏船AI真正的成功之處是大多數(shù)玩家都不會留心注意的:骷髏是真的在甲板上、船體內都在活動。他們能夠找到船體破洞里修理,也能夠移動到到大炮后邊發(fā)射它們。我知道對于大多數(shù)家來說,這聽起來似乎并不是什么具有突破性的東西,但從AI的角度來看,這確實是個大事,是我在玩《盜賊之?!窌r的一個真正意外驚喜。讓我來解釋一下。
?
就如我們在第二篇中所分析的那樣:一般我們會用一個叫作導航網(wǎng)格的系統(tǒng)讓角色在三維空間內行走,游戲島上所有的骷髏都是用這個系統(tǒng)。然而,導航網(wǎng)格或者是提前構建好的,或者是集成到關卡之中,又或者是像我最近研究的《地平線:零之曙光》那樣,在運行時根據(jù)巖石或在導航網(wǎng)格表面移動的其他小物體的變化來計算。是的,導航網(wǎng)格可以適應在表面上移動的物體和角色的變化,但是導航網(wǎng)格本身并沒有移動。如果這個二維表面也在移動,那就不僅要重新計算導航網(wǎng)格,還要重新規(guī)劃所有站在這上面的角色的路徑,哪怕只是移動一點點。這無疑會消耗很多CPU和內存資源,你很難想到適合的解決方案。但是在《盜賊之?!分?#xff0c;船體和甲板的表面并不只是隨著海浪的移動而移動,船本身也是移動的!一開始時我以為這是假的:骷髏只是簡單地從船上的一個點移動到另一個點,但是如果你仔細觀察帆船上骷髏的移動方式,你會發(fā)現(xiàn)它們是按照自己的需求地四處奔走,從海洋物理學的角度來說,它們一直都是站在一艘移動的船上。
?
最大的秘密在于船只的導航網(wǎng)格其實是靜止的,它是覆蓋在海底的,船上的骷髏其實還是跟島上的一樣,在導航網(wǎng)格上移動。也就是說導航網(wǎng)格是固定的,不會跟隨船只移動。同時,海底導航網(wǎng)格上的坐標分別被傳送到甲板以及船體上,這個過程必須考慮船目前的方向。也就是說,導航路徑需要跟隨船只的實時轉向而變化。面對這個非常復雜的問題,開發(fā)團隊給出了一個頗具創(chuàng)造性的解決方案,雖然不算完美,但它確實很好地實現(xiàn)了團隊的目標!
總結
雖然其他其他玩家是你航海途中的真正威脅,但是這些AI角色也是不可忽視的狠角色。這三篇文章中我們探討了《盜賊之?!酚螒蝮w驗背后的所有AI系統(tǒng),它們?yōu)槟闾峁┤蝿?、在島嶼和海上生成不同個性的AI角色(友善和非友善)、平衡不同服務器上的玩家體驗。但我還不打算在此畫上句號?!侗I賊之海》這個游戲需要Rare全體開發(fā)成員的大量投入,無論是原畫師、動畫師、聲效設計還是程序員都是如此,事實證明要駕馭類似規(guī)模的項目是非常具有挑戰(zhàn)性的。
在系列的最后一篇,我們會談到貫穿《盜賊之海》整個開發(fā)過程的測試、部署系統(tǒng),以及它是如何簡化開發(fā)團隊的工作。我將采訪項目的兩位領導主力Andy Bastable和Rob Masella——他們從代碼庫入手,將《盜賊之海》引向新的未來。為了預防玩家在游戲過程中AI或者其它游戲系統(tǒng)出現(xiàn)bugs,測試系統(tǒng)起到了什么樣的作用?以及游戲是如何做到快速部署的?
總結
以上是生活随笔為你收集整理的建立海盗的天堂:盗贼之海的AI设定(三):巨齿鲨、海怪和骷髅船的AI运行的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用数学方法分析哪类游戏中的AI难度最大
- 下一篇: 从零开始做一个SLG游戏(三):用uni