【嚴(yán)陣以待/熟肉】第50期周報(bào)-關(guān)于新準(zhǔn)備室外貌和 AI 重修

歡迎來到 第50期 周報(bào)!
為了紀(jì)念這個(gè)里程碑,這次周報(bào)會(huì)稍微長一些。這次周報(bào)會(huì)帶來一些有分量的 AI 系統(tǒng)改動(dòng),以及(車站)準(zhǔn)備室的再度重修。先從準(zhǔn)備室重修開始,作為大部分玩家接觸的第一個(gè)區(qū)域,準(zhǔn)備室的好壞決定了玩家對(duì)游戲的第一印象,周圍的環(huán)境同時(shí)也作為了洛圣都的一個(gè)粗略縮影。房間里,重新修筑的內(nèi)飾與崩毀的殘?jiān)珨啾谙嗷ソ豢椫?,無處不與屋內(nèi)先進(jìn)的警用裝備形成的鮮明的對(duì)比,讓玩家沉浸在他們抉擇的世界中。
浴火重生的車站(準(zhǔn)備室)
我們可不會(huì)把玩家的家晾在一邊,它會(huì)與所有參與重修中的地圖一樣并入重修計(jì)劃。我們已經(jīng)在亞當(dāng)更新中加入了一階段準(zhǔn)備室,我們意識(shí)到是時(shí)候該開始更新剩余部分了。
以下:稍微重修了靶場的外貌和光影,把原先讓人直犯幽閉恐懼癥的狹小的空間稍微擴(kuò)大到更加大氣舒適。

以下:監(jiān)控室和情報(bào)中心,特警們迫切需要這些情報(bào)的幫助。請(qǐng)盡量定期訪問派遣訊息

在未來,車站內(nèi)會(huì)有更多的犄角旮旯需要你去探索,你甚至?xí)l(fā)現(xiàn)一些彩蛋。大致是類似于咖啡機(jī)和殺戮屋外的警帽這類,有些會(huì)給你,你的警員,以及游玩體驗(yàn)產(chǎn)生不同效果。
以下:證據(jù)室,你能在里面找到收繳的武器,毒,以及@#!¥(此處經(jīng)過編輯)

以下:LSPD警局內(nèi)相對(duì)清閑的時(shí)刻,在你還能享受的時(shí)候好好享受吧。

////來自嚴(yán)陣以待AI程序員 Ali 的一封信:經(jīng)由大眾請(qǐng)求,嚴(yán)陣以待中對(duì) AI 的構(gòu)筑最有話語權(quán)的程序員“Ali”,將向大家講解嚴(yán)陣以待中的AI行為,以及AI如何基于環(huán)境因素而改變后續(xù)決策。我們使用的AI系統(tǒng)名為“Utility-Based”AI系統(tǒng),即一個(gè)負(fù)責(zé)決策的模型。
簡要原理就是通過數(shù)學(xué)模型里的公式,數(shù)字,曲線,來模擬人類的行為。而那個(gè)“人類”則被稱為agent或者AI,每個(gè)AI在環(huán)境中都會(huì)被賦予一系列的決定表(Decisions list,或者也可以叫做“動(dòng)作列表”)。每一幀中AI 都會(huì)跑一遍這個(gè)列表來看接下來將會(huì)選擇執(zhí)行哪個(gè)新動(dòng)作。這個(gè)行為就叫做核心AI循環(huán)(core AI loop)在每個(gè)動(dòng)作內(nèi),又有一個(gè)叫做“考慮列表”(Consideration list)的東西根據(jù)數(shù)學(xué)模型計(jì)算每一項(xiàng)考慮內(nèi)容的分?jǐn)?shù),最后加起來就是如果去執(zhí)行這個(gè)動(dòng)作的總分,最后對(duì)比每個(gè)動(dòng)作哪個(gè)總分最高就會(huì)優(yōu)選出哪個(gè)動(dòng)作。并且有些動(dòng)作有最低承諾時(shí)間,哪怕下一幀決定執(zhí)行b動(dòng)作,但在動(dòng)作 a 徹底執(zhí)行完前 動(dòng)作b 不會(huì)生效。而有些動(dòng)作則可以在下一幀被打斷。
計(jì)算最終分?jǐn)?shù)僅僅只有四個(gè)數(shù)學(xué)執(zhí)行單元,加減乘除,非常簡便,計(jì)算后就是該動(dòng)作的最終得分。舉個(gè)例子“生命值”,根據(jù)現(xiàn)有/最大生命,我們會(huì)在[0,1.0]這個(gè)區(qū)間根據(jù)加權(quán)數(shù)得出一個(gè)分?jǐn)?shù),用這分?jǐn)?shù)作為決定ai下一步行動(dòng)的部分因素之一。實(shí)際上遠(yuǎn)遠(yuǎn)不只要考慮“生命值”帶來的分?jǐn)?shù)。默認(rèn)計(jì)算單個(gè)分?jǐn)?shù)是線性函數(shù),但也可以使用指數(shù)函數(shù),正弦曲線函數(shù)等等。
血量0.9/1.0可以是一個(gè)好壞兼具的事情,好處是血量高AI不太需要找掩體,可以冒險(xiǎn)做出一些大膽的動(dòng)作,壞處是如果AI被設(shè)定成想要一直保持滿血,一點(diǎn)小傷就會(huì)去找掩體打藥。(類似老頭環(huán)boss一受傷就喝血或者apex被滋兩滴就去打甲,很浪費(fèi)時(shí)間)。當(dāng)然ron沒有打藥這個(gè)東西,只是舉個(gè)例子。


可以想象一下?lián)碛幸粋€(gè)幾百項(xiàng)考慮選項(xiàng)的庫,我們利用這些變量去創(chuàng)造不同AI的人格 或不同的行為習(xí)慣, 有些AI比其它AI更不會(huì)輕易投降,或更喜歡找掩體,或著在你處理不當(dāng)下更傾向于自盡。

我們的系統(tǒng)中有另一個(gè)概念,我認(rèn)為我在其他人的實(shí)用程序?qū)崿F(xiàn)中沒有看到過,但它不是什么開創(chuàng)性的東西。我們叫它“閥門”。它是對(duì)“考慮”的補(bǔ)充。“閥門”與考慮因素類似,但它們不彈出分?jǐn)?shù),只輸出true或false、open或closed(是或不是兩個(gè)選項(xiàng))。閥門的目的是阻止我們不想讓AI“考慮”的行動(dòng)(舉例:通過人為禁止來避免不成熟的系統(tǒng)設(shè)定出現(xiàn)讓劫匪在特警面前換彈這種一眼就知道不符合常理的情況。說人話就是“考慮”系統(tǒng)不夠智能的場景下就用程序員的“閥門”去手動(dòng)操作)。所有的“閥門”都必須保持開啟才能讓“考慮”運(yùn)行得分。冷卻計(jì)時(shí)器就是一個(gè)很有用的例子,你沒有辦法通過考慮和權(quán)重來合理地做到這一點(diǎn),它需要一個(gè)true or false的操作。冷卻時(shí)間結(jié)束了嗎?冷卻時(shí)間結(jié)束后“考慮”才能再度運(yùn)行(比如在劫匪開火的兩秒內(nèi)你可以任意使用致命武力還擊,即使他投降,但兩秒后“考慮”重新開始運(yùn)行,你的攻擊行為就可能會(huì)被判定為違規(guī)扣分)。在我們沒有這個(gè)概念之前,劫匪會(huì)無征兆自己投降,或者做一些它們不應(yīng)該做的動(dòng)作,當(dāng)你去調(diào)試發(fā)生了什么時(shí),所有的程序運(yùn)行又似乎都是合理的。“閥門”幫助我們更好地控制它們,使它們不會(huì)做出迷惑行為,不會(huì)做出意想不到的事情,這是我們的設(shè)計(jì)師愿意看到的的。

通過數(shù)學(xué)公式和函數(shù)來自動(dòng)決定AI行為能做到純手動(dòng)可能做不到的事,每個(gè)AI行為都可能與別的AI有些微不一樣。而之前的AI還是“有限狀態(tài)機(jī)”,也只能被我們編輯,想要自如的為其他個(gè)人開發(fā)者提供調(diào)節(jié)AI行為的選項(xiàng)需要切換Utility(花費(fèi)大約六個(gè)月才行)。然而,我們并不會(huì)完全拋棄“有限狀態(tài)機(jī)”,向某方向移動(dòng)以及撿起武器或者破門還是用的固定邏輯算法(包含大量狀態(tài)),但是AI的行為決策和大腦都是基于Utility的,我們不用為他們的每一個(gè)行為都寫一個(gè)“if發(fā)生a,then做出行為b”的代碼,相對(duì)的我們會(huì)用一系列的行為交給他們自己決定,更逼近于一個(gè)“真實(shí)的”AI。作為一個(gè)編輯者,你唯一要做的就是創(chuàng)建一個(gè)AI框架(AI 的性格),然后再把這個(gè)性格下放給特定的AI,我們已經(jīng)做了50個(gè)預(yù)設(shè)框架(性格),讓不同的地圖AI會(huì)有他們特定風(fēng)格和行為方式,同一地圖的AI性格也會(huì)相近。簡單來說,我們不想創(chuàng)建幾十個(gè)相同性格的復(fù)制人出來,但有時(shí)候也會(huì)重復(fù)利用比較優(yōu)秀的AI性格。加上管理這么多架構(gòu)的開支負(fù)擔(dān),讓這些架構(gòu)保持精簡也是個(gè)好事情。