![]()
作者:點357口徑太妃糖 6年經驗,專注游戲任務設計。
引言
這其實是一次基于工作中想到的問題的思考,或者說是探討。
因為某些原因,我接觸到了一個非常類似GOAP(Goal-Oriented Action Planning)的系統。我的工作目標是為這套系統的下的NPC設計屬于NPC的任務,提供給玩家體驗。
但從體感來說,很多人其實對這套系統下的NPC有些“不太適應”——一方面是對于設計者而言,當他們去設計一些非常流程化的,腳本化的情節時,往往需要額外的功能來“剝奪”GOAP NPC的系統;另一方面作為GOAP NPC系統的開發層,他們也不知道應該怎么去豐富GOAP NPC在敘事中的表現。
所以這大概就是我寫下這篇文章的源動機——我的文章會比較多的提到《逃離塔科夫》《潛行者》《天國拯救》等比較新的利用到GOAP NPC的例子(塔科夫我只是推測他使用了GOAP NPC,因為行為確實比像。而且談到塔科夫的GOAP NPC的話繞不開AI PMC,所以默認我們討論的是PVE),來去談談他們怎么去理解GOAP NPC的行為,他們如何去設計玩家的敘事環境和任務。
GOAP NPC
如果你不知道GOAP是什么,那么我來給你描述一種NPC設計。
通常來說,游戲的NPC會分為兩種設計思路——基于行為樹驅動的NPC,和基于狀態機驅動的NPC。
![]()
行為樹像是一個可以循環的思考Flow,一個AI會在一個從上往下的多叉樹上按照節點執行的順序去執行行為。節點的定義有很多,可以是查詢環境;可以是移動到某個指定點/隨機點;可以是檢查Collision的Overlap事件。
![]()
我確實對狀態機設計了解不太多,獻丑了
而狀態機驅動的NPC則走的是基于事件或基于其他某些東西的狀態切換機制(當然這點我不是特別了解,我正經鼓搗過的AI其實只有行為樹,所以就不獻丑了),你可以簡單理解為設計者為NPC定義了多種狀態,比如攻擊,受擊,Dot等等,每個狀態會對應一種應對表現。
這兩種AI都有一個特點——他們需要基于某種線性邏輯,或是邏輯碎片來進行運作。對于傳統的線性驅動游戲,或者是ACT/ARPG的BOSS來說無傷大雅。畢竟玩家流程大多數是可控的,很多時候你甚至可以讓腳本接管AI來進行表演。而行為樹或狀態機在進行一些比較精細化的表現時更加可控,能夠很好的適應線性流程需要的那些設計。
但我們都知道一點——游戲的世界在變大,或是游戲需要變的更加“規則隨機性“(游戲不再提供某種線性的劇本,而是一種全局的規則和你當前需要達成的目標,完成目標的方式由你自己決定)
這使得傳統基于行為樹和狀態機的NPC變的不太……聰明。
所以GOAP這套本源自2004年F.E.A.R的系統又重新被提了出來。不論是以單局回合為主的游戲(比如塔科夫 雖然他們沒說自己的AI走的是GOAP,但至少正式版里部分AI的行為還是很像的)或者是開放世界(《天國拯救2》的NPC就是基于GOAP系統設計的),他們都用這套系統來構建NPC,效果也都不錯。
![]()
戰馬在GDC 2025分享了他們在《天國拯救2》中使用GOAP來構建NPC的例子:https://gdcvault.com/play/1035576/Game-AI-Summit-Combining-GOAP
但這就有個問題——我們其實都知道GOAP NPC的優勢:NPC會根據World State(世界狀態)中的定義判斷自己當前的GOAL(目標)是什么,然后去執行對應的Action(行為)。但他有點……過于不可控了。因為AI擁有自己的GOAL和Action,所以他自己會決定自己要去做什么,這使得設計者幾乎無法保證他按照自己的想法在進行行動。所以通常在流程設計里,GOAP NPC也只是有限的開放在流程之中,或是干脆就做成一種Combat AI,在戰斗的過程中直接切換。
但GOAP框架下的游戲并非不能呈現敘事,相反GOAP框架下的游戲因為規則和目標導向,能夠更好地基于Gameplay來呈現敘事內容。只是我們得轉變一下思路,從傳統流程控制的任務設計方向里跳出來,轉而從玩家的行為和心理去設計。
玩家在用本能玩游戲
如果你看過我寫的**讓玩家用本能來玩游戲——簡明魚人任務|敘事設計手冊(四),那你應該知道我在這篇文章里提到了一個概念——”基于玩家行為驅動的任務模型“。
![]()
其實我們跳出任務設計的角度來思考,玩家在游戲中每經歷一次挑戰,或者進入到一個陌生的環境,再或者遭遇某個事件,玩家自己都會開始這個思考循環,并以此給自己創造解決方案。
![]()
我們假設你玩過《逃離塔科夫》,你作為一個剛體驗這個游戲的,暫時被這個游戲里的其他玩家或AI BOSS折騰過的萌新,你會自然而然的對游戲的不同地圖產生不同的”強弱/難易“概念。
- 比如你可能覺得立交橋新區只會刷SCAV,不算難,但進入宜家就可能要面對笑出強大的killa;
- 再比如你可能縱橫新手階段的中心區,但你聽說中心區21級后會刷bos,不太好對付;
- 又或者你知道工廠區域結構很簡單但地圖小,隨時可能有個掄錘子的瘋子過來跟你招呼兩下……
發現一個問題沒有?上述對地區,對boss,對地圖的概念,并非游戲的”劇情“或”任務“告訴你的,他完完全全源自你自己數次踏入地圖時的體驗得出來的。
換言之,這是一套源自你自己體驗游戲時的本能產生的敘事。你給這張地圖構建了一個初始的情境,并根據你的體驗和當前狀態了解了現狀,你在進入地圖之前構建了一個屬于自己的目標,然后進入地圖來做出行動。
在正式版之前,塔科夫的地圖開放可謂是慘無人道——你親愛的尼沙皇并不在乎你作為新手第一次進的是工廠還是海關,除了實驗室外的所有地方都直接丟給你。
![]()
而正式版尼沙皇卻一改原先測試的設計,給這些地圖都加上了解鎖條件。新的地圖解鎖機制既能算科學也能算不科學——新手除了中心區就是立交橋,這兩張圖既有簡單的結構,但也有帶有一定挑戰的boss。玩家可以在這兩張圖里學習《塔科夫》的基礎游戲內容,包括見到AI的行為,陣營劃分;了解地圖內的區域,物資點,撤離機制等等。
![]()
新版立交橋確實結構很清晰,商場內和商場外幾乎變成了兩款游戲
但與此同時,如果你覺得這兩張圖能給你天地任馳騁的感覺,你依然能夠在立交橋的宜家遇到Killa和錘哥,這兩個新手階段相當不好對付的Boss。尼基塔依然在立交橋給你展現游戲殘酷的一面。
這迫使玩家在地圖中基于上面提到的本能來了解游戲規則,并基于自己了解到的規則進行游戲。一個玩家基于規則了解后的任務敘事自然的呈現出來,玩家會給自己設立目標,知道自己進入戰局需要做什么,目標是什么,路線是什么。而他的體驗則取決于GOAP NPC是否按照自己對規則理解的方式在運作。
換言之,玩家在這樣的一個情境下去學習游戲,而學習游戲的過程創造了屬于自己的敘事。
聽起來還不錯,但只是對環境有感知的話,還不足以構建玩家進入地圖時自發產生的敘事,甚至玩家依然缺少一個進入地圖的目標。
而幾乎使用了GOAP這套系統的游戲,不論是《輻射3》《極度恐慌》《塔科夫》《潛行者》《天國拯救》,在任務設計上都采用了一個機制——目標導向的任務,和基于GOAP系統創造的環境驅動型敘事。
環境驅動型敘事
Quest是個很簡單的結構,這是從RPG時代傳下來的規矩。
![]()
所謂的委托,有委托需要執行的目標,有關于委托的信息,還有委托的獎勵。
在RP元素不斷強化的年代,Quest開始加入了各種各樣的元素。NPC可能會跟你繪聲繪色的講述一段故事,或是讓你觀看某個演出,再或者是給你前往目標的路上做一些豐富的設計。
在這樣的目標下,Quest開始變的有些流程化,也就有了Quest Step的概念。
設計者會習慣性的利用Quest/Step的”線性“和”階段性“這一特性,來創造各種可控”流程“。我們會將任務拆分成宏觀目標和微觀目標,微觀目標是一步一步引導你做什么的step,宏觀目標則是你本次踏上旅途的驅動力。
![]()
從經驗上來講,Step通常也會是某些演出的開始點,因為這方便玩家讀取存檔點或者斷線重連后,重新播放這些腳本
通常來說,這樣做的目的是利用Step設計更多可控的敘事內容。有點像以前COD里的”CheckPoint”的概念,當你來到一個檢查點時,通常也意味著一個階段的表演正準備開始。我們可能會在這個Step對應的Trigger觸發時創建環境里的情境,播放一些Sequence/Timeline,做一些NPC對話或者腳本演出。
這一切目的有兩個,對應了前面提到的“基于玩家行為驅動的任務模型”中的【創建情境】和【了解現狀】。并以強制或半強制的方式為你創建一個你認為你當前應該去做的目標,促使你進行下一步。
這相當于游戲主動地以玩家為單位進行表演,對吧?演出全部砸在你的臉上,腳本和行為都只發生在你的面前。
![]()
但是,基于GOAP系統設計的游戲世界,由于AI可以自己決定自己需要做什么(Action),設計者只能宏觀的給到他各種狀態約束(GOAL和World State),設計師其實很難創造一個“砸在玩家臉上”的流程體驗。
可這其實也意味著,游戲正在按照某種規則約束自己在運行。這個規則約束的方式包括了游戲的全局規則,地圖區域設計,GOAP AI中的GOAL list。
這些規則決定了NPC,玩家,世界三者之間的關系。NPC利用行為踐行和印證世界的宏觀關系。而這層關系又需要以玩家產生互動,或是允許玩家成為體驗的一方,這樣玩家才能夠感知。
這些都沒有依賴玩家當前身上的任務和任務目標去產生,他只是客觀的基于一種“世界狀態”,這個狀態可能源自另一個系統,也可能源自AI自發在場景里產生的Action(比如兩撥在打架的AI可能會引來更多的AI改變GOAL)。
![]()
類似于A-Life系統在《潛行者》的效果
我將這些稱呼為“環境驅動型敘事”,他并非基于任務敘事或流程敘事創建,而是由規則和GOAP系統自發產生的敘事表現。他并沒有基于設計師明確的設計(某個步驟或某個觸發器觸發下必定在某個地方創造某個單位并執行某個行為),而是一種基于規則自然產生的表現。
這種表現是有限隨機的,它主要影響的是玩家對當前情境和現狀的判斷。他可能會在玩家進行某個目標的過程中產生,也可能在一開始進入區域時產生,更可能只是在其他玩家的口耳相傳中產生。
通常來說,他是一個一次性買賣——你需要在前期對游戲里的陣營關系,地區的地圖設計和陣營分布,不同陣營里的NPC GOAP進行設計,然后讓他們在地圖里跑起來。他的目標其實是給玩家創造關于這個地區的“印象”,也鼓勵玩家去傳播自己眼中的這個“印象”。
而當你在這一步完成之后,你只需要做一件很簡單的事情——在你的這個情境里創造一個【目標明確,但實現模糊】的任務。也就是“目標導向任務”。
目標導向任務
目標導向任務的設計其實很簡單,基于你游戲中的陣營,或是你希望玩家體驗到的敘事,或是某種引導訴求,來去創造一個“讓玩家進入地圖”的動機。
這類任務有一個特點:他的目標很明確且匱乏,通常是擊殺/進入或離開區域/獲取道具/和什么東西進行交互。擴展到其他類型游戲的話還有和NPC對話/拍照等等。
我們通過環境驅動型敘事去創造了一個環境的情境,玩家對這個區域產生了固有的印象。在你的任務推給玩家后,玩家自然會結合你的目標和你任務中提到的區域的復雜度做判斷。
《塔科夫》有很多在游戲社群里臭名昭著的任務,比如“天神之眼”“挖礦-1”等等。他們都是把一個看似比較一般的挑戰放在了一個高危險的環境,或者在這和環境上又給任務疊加了一個帶有一定難度的附加條件。
![]()
想象一下,如果一個前往工廠做挖礦-1(修理面板)任務的玩家知道工廠有很大概率刷新錘哥,而修理面板的區域剛好就在錘哥附近。玩家可能就會重新審視這個任務的難度,從而思考自己應該怎么行動。而這會強化他對工廠這張地圖,以及錘哥這個角色在場景里面行為的印象。進而改變他真正進行任務的流程——他可能會先宰了錘哥再去做任務,或是嘗試賭一把錘哥沒刷新直奔修理點。而這一切的體驗又會在你進入戰局后,基于GOAP NPC的涌現邏輯產生額外變化(比如AI PMC攻擊了SCAV,引起了不小的慌亂,甚至把錘哥引過去了,這對于你來說是個機會)。
我們在傳統任務設計時會考慮RLD(理性關卡設計),換言之,用一種量化的方式去評估當前任務的難度,復雜程度,在心流體驗上的強度。而基于目標導向任務和環境驅動型敘事所產生的流程,其體驗的心流曲線則是由當前環境涌現的情境,和玩家基于當前情境,評估自身目標后所產生的行為來決定。
當然,對于設計師來說,他依然可以控制這個任務的整體難度,只不過這次考慮的角度需要更加宏觀——不再只是單純考慮任務動線和任務中的挑戰元素,而是綜合考慮整個地圖的環境,AI的行為邏輯,地形對于玩家和AI行為的影響。在一些適當的時候,任務也可以主觀的創造一些對于GOAP AI而言的吸引錨:比如從腳本的角度上,任務可以強制改變某些GOAP NPC的位置,或是創建一個接管區域,進入區域的GOAP NPC會被調整GOAL的優先級,用來刻意的實現某些表現。
當然,你也可以從Action下面的規則出發。比如如果你要表達某個任務區域里兩方正在混戰,但你又不希望GOAP AI在這個區域里主動攻擊玩家,那么你可以在他們的警戒Action里把玩家單獨抽成一個layer,并通過任務腳本指定某個區域的AI會屏蔽Player的Layer。這樣AI就會在警戒狀態時不索敵玩家,而如果玩家主動攻擊這些AI,GOAP會將AI的狀態切換為Combat,此時玩家又會成為被索敵的目標,這就不會讓AI看起來特別的“傻”。
所以,這類型任務在設計上所要考慮的,其實是目標投放的節奏,對應環境的復雜程度,還有助推環境變化的方法。這也就是為什么我在前面提到,《塔科夫》的正式版做了如此復雜的地圖鎖,和基于任務推進的地圖解鎖機制——中心區和立交橋新區剛好是兩個作為新手而言風險較低,地圖結構較為簡單,又同時能夠感知到《塔科夫》這個游戲陣營關系的兩張地圖。而作為進度卡點的海關,海岸線,森林這三張圖則給到玩家復雜環境的長期挑戰,讓玩家重新評估自身的情況,評估當前裝備,尋找自己解決任務的方式。
而同樣你也會發現,盡管不是搜打撤游戲的《天國拯救2》,作為前期你真正開始探索世界的流程,他的做法是——將你扒個精光,并給你設定一個很宏觀的目標,讓你自己通過探索環境。你會通過不斷的探索和死亡威脅,意識到如何賺錢,周圍有什么樣的危險,有哪些發家致富的辦法,地區又有哪些規則存在。
所以,總的來說,對于GOAP系統下的任務設計,一條可行的方法論是:
- 創造一個清晰的基于GOAP的NPC關系和陣營關系設計
- 一個迫使玩家邁出第一步的壓力環境
- 基于投放節奏和玩家在世界中的體驗進度解鎖的,目標清晰但實現方式模糊的任務。
作為擺脫了傳統以線性或腳本敘事的“手作工坊”式任務來說,這樣也能一定程度上保證玩家敘事體驗,而不是出現用GOAP系統硬凹傳統腳本化/線性敘事,最后發現完全不適配,體驗還不好的情況。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.