歡迎收看本期的《不止遊戲》,我是喬伊。
最近有一部較為大火的遊戲題材電影——《失控玩家》,估計在座有部分觀衆已經看過了。如果有沒看過的觀衆,我在不劇透的情況下先給大家簡單講講劇情。
電影講的是有家遊戲公司,開發了一個多人在線的開放世界遊戲《自由城》。跟目前很多玩家玩過的開放世界遊戲差不多,遊戲中也有很多NPC為玩家提供各種服務。按理說這些NPC都是一堆代碼構成,隻需要兢兢業業在這個虛拟世界中和玩家互動即可。但其中有一個NPC出于某些原因,擁有了更“自主的意識”。讓它擁有了近乎人類的強大智能。由此引發了一連串的故事。
當時我看完這個電影之後,突然想到了一個這期節目的靈感。就是我們大家玩過不少開放世界的遊戲,例如《看門狗》《荒野大镖客》《刺客信條》等等。平常我們玩這些開放世界的遊戲時,除開少部分有關鍵劇情的角色會給大家留下印象。大部分NPC在虛拟世界中隻扮演“純路人”,它們既不能給我們提供任務,也不能給我們帶來劇情。很多時候隻是一種“環境道具”和“人肉背景闆”的存在。
那麼這期節目我們來研究下這些遊戲中的NPC,它們一天到底在幹些什麼?它們背後的運行邏輯是什麼樣的?《失控玩家》真的可能實現嗎?
根據我在多個遊戲中,花了數小時“尾随”了不同的NPC的觀察。發現很多“純路人”NPC真的隻是純路人。它們通常就圍繞某個路線轉圈,偶爾走走停停。哪怕玩家們和他們發生碰撞,它們也會繞開玩家重新走回預設的道路上。如果和它們互動,例如打了它一拳。它要不就是逃跑,要不就是反擊。等過一段時間恢複正常,還是會按照最先預定好的路線繼續移動。
通過我的調查發現,他們的行為和反應,是根據遊戲開發者設定好的腳本來執行的。開發者規定他們在什麼情況下作什麼事情,他們就完全按照規則忠實的行動。一般來說NPC都會有一整套行為樹,以對應玩家可能會對NPC做出的各個行為。
一般來說,開發者給NPC設定的腳本越多,行為樹越豐富,就能越讓他們接近于真人。比如不差錢的R星,花費幾年時間上千名設計師,為《荒野大镖客:救贖》幾乎每個角色都寫了詳實的腳本,才使得遊戲裡的西部世界在細節上還原的很真實。
而有時候玩家看到這些NPC,做出一些很奇怪的舉動。可能是因為玩家做出的操作超出了開發者的預料,以至于沒設置過對應的行為反應。所以在表現上,NPC回應的驢頭不對馬嘴,或根本不回應玩家。
當簡單了解背後的運行邏輯之後,你就會發現幾乎遊戲中的NPC雖然看起來“活靈活現”,但其實連演員都算不上,隻是遊戲設計師的提線木偶。那些被玩家一口一個“老婆”叫着的遊戲人物,不過是隻會執行設計師操縱的工具人罷了。(牛頭人震怒)
既然傳統行為樹做不出完全還原真人的NPC,那人工智能是否可以呢?
最近幾年AI應用發展很快,人臉識别短短幾年鋪遍了大街小巷、自動駕駛成各大新能源車企主要課題、視頻、購物乃至外賣APP都無一例外在用算法推薦。
但遊戲領域裡,反倒比較少聽到有人工智能的消息?明明是阿爾法狗擊敗人類強者,才掀起了近些年AI研究的熱潮,現在都2021年了,遊戲AI又有哪些進步呢?我們有可能玩到《失控玩家》裡那樣的遊戲嗎?世界上是否真有人在做這樣的遊戲AI技術呢?
為了探尋這些問題,我便開始在網上尋找答案,我先是找到了一家很有名的國外人工智能團隊 Open AI。就是之前用 AI 打敗了 Dota 2 世界冠軍的那個。不少玩 Dota 2 的觀衆對那場比賽應該有較為深刻的印象。
後來 Open AI 還搞過一個“AI 躲貓貓”的遊戲。裡面的角色全由 AI 構成,規則非常簡單。在一個固定的遊戲場地中,藍色方負責躲藏,而紅色方則負責抓人。遊戲一開始會先把小紅人固定住,藍色方趁這個時間躲起來。
最初所有的 AI 都有點“笨”。隻知道遊戲目标。但卻不知道如何實現,四個角色基本都是各種亂跑,藍方最終總會被抓到。但随着訓練次數增多,慢慢藍方 AI 學會了利用場景中的箱子,把缺口給堵住并将其鎖定。讓外面小紅人無法進入,這一堵門戰術讓藍方勝率大幅度提高。然而後來,紅方也學會了利用斜坡方塊,可以直接翻牆進去抓人。勝利的天平重新倒向紅方。再接着藍色方也漸漸理解了斜方塊的作用。他們在遊戲開始前會先把斜方塊搶進來再堵門,讓外面的紅色方一點手段都沒有,殺死了這場比賽。
後來 Open AI 的研究員重新弄了個新地圖,這次由較多的可移動方塊構成。一開始 AI 還是要熟悉環境,随着訓練次數不斷增加。藍方想出了用長闆自己搭圍牆并鎖定。來構成一個封閉環境避免被抓。而紅方也想到可以利用斜方塊的翻牆功能。再往後藍方見招拆招,想出了先提前鎖定所有斜方塊,讓紅方不能再利用斜方塊的方法翻牆。
此刻看起來是不是紅方又陷入第一局的情況沒招了。結果它們搞出了個一般人類都未必能想到的騷操作,先把普通方塊移到被鎖定的斜方塊旁,然後靠斜方塊走上普通方塊。利用 BUG 站在上面移動方塊最後跳進圍牆去抓人。
越往後開始越離譜,AI 的不斷學習和進化,使得遊戲越來越超出開發者的預想了。藍方開始遊戲幹脆鎖定所有方塊,或者直接跑路逃之夭夭。紅方也不知道哪摸索出了引擎 BUG,還能用“彈跳”的功能來實現飛越。
AI 躲貓貓的案例,很形象的讓我理解了“訓練”這一過程對于 AI 的重要性。可以想象到,如果這種帶有自我學習功能的 AI 被做成NPC加入遊戲當中,那未來的遊戲一定非常有意思。就比如萬一怪物獵人裡應用了類似的技術,雄火龍在一次次被讨伐過程中越來越強,太恐怖了我都不敢想,可真就是“怪物虐人”了。
那麼我又接着在網上找,找到另一個展示遊戲 AI 的技術 Demo 案例。這個封面和标題晃眼一看,就感覺像是一個标題黨。遊戲場景和《失控玩家》很相似,都是發生在銀行的搶劫故事,都是玩家扮演劫匪。畫面還周圍顯示着各種不明覺厲的數據。
這個案例和 AI 躲貓貓不一樣,是有玩家參與其中的。其他角色則全是 NPC。我們看到玩家跟着同夥進入銀行,随即鳴槍震懾現場所有人。NPC 同夥不斷威脅櫃員,逼她打開櫃台大門,但櫃員剛上班沒幾天不會開門,氣的 NPC 同夥用腳踹、用槍破門也無濟于事。
此時玩家張口說話,用槍脅迫大堂内的其他人,迫于無奈大堂經理幫忙開了門,兩名劫匪魚貫而入,命令櫃員打開保險櫃幫他們裝錢。
女櫃員笨手笨腳。搞了好半天才打開保險櫃,劫匪 NPC 迫不及待,讓她滾一邊去自己上手,拿到錢兩人立刻溜之大吉。這時候肯定有觀衆說:“這遊戲的劇本編很平淡啊,就一個很簡單的搶銀行。我上次在聖丹尼斯搶銀行的時候比這個精彩多了。”
但此時反轉來了:演示視頻時空回溯,這次不讓同夥去裝錢了,讓櫃員去裝。趁同夥不留神,玩家一槍将他打死,面對突如其來的謀殺,櫃員吓得連忙求饒,玩家自己獨吞了所有贓款逃之夭夭,走之前甚至還不忘開兩槍慶祝一下。
再次回溯,在威脅大堂經理開門之前,玩家一不小心手抖打死了大堂經理。巨大的槍聲把銀行所有人吓懵了。就連 NPC 同夥都被玩家吓到。這跟計劃的不一樣啊?搶個錢而已你殺什麼人?直接抛下玩家落荒而逃。搶劫行動至此失敗。
看了這個視頻,大家是不是覺着,這個遊戲 Demo 自由度還不錯,玩家的各種行為 NPC 都能配合做出各種相對應的反應,行為樹編的還挺全的啊。然而最大的反轉來了,我瞄了一眼視頻的簡介才知道,原來 Demo 裡的 NPC 都沒有被設定過任何腳本,所有動作、反應、包括說的每一句話,都是 AI 根據玩家的行為和語言實時動态生成的!
更離譜的是,這竟然還是 2019 年的技術展示 Demo。雖然一開始看視頻的時候沒搞懂,但看了簡介後再看一遍我覺着大受震撼。
通過 B 站私信,我與制作團隊 rct AI 取得了聯系。才發現這個遊戲 Demo 居然是中國人做的。于是向他們請教到了很多有關技術的問題。他們也非常樂意将各種資料和其他案例發送給我,并且深入淺出的介紹了許多技術原理。
那麼如何在沒有任何腳本的情況下,實現這樣一個由多個 NPC 構成的實時動态交互場景呢?簡單來說,核心在于 rct AI 的混沌球算法。首先他們給每個NPC都設定了性格與目标,以及一些人物背景。就比如:銀行雇員非常膽小,故事發生時她才入職銀行不久,有心保護銀行财産但更怕死;再比如:玩家的劫匪同夥,目标是搶走盡可能多的錢,他脾氣暴躁但沒啥本事,所以碰上玩家殺人時才會提前逃跑。
那麼這些 NPC 在遊戲中怎麼知道自己每時每刻該做什麼呢?這是因為,除了性格和目标規定了 NPC 能做哪些事之外,他們還受當時所處的空間位置、環境參數等因素影響。就比如門打沒打開,有沒有拿到錢,現場是否死了人。遊戲場景進度影響 NPC 做不同的活動。
玩家的行為、說的話,會被識别并梳理為各種相對應的“意圖”輸入 AI 引擎混沌球之中。就比如玩家說:(插入 just open the safe,fast 讓櫃員打開保險櫃門的畫面),AI 判斷玩家想要讓它去執行打開保險櫃的操作,而且自己還被槍指着,于是立刻乖乖就範。AI 在遊戲中可以被理解為“演員”,他們配合玩家的行為進行“表演”,還原現實裡搶劫的“刺激體驗”。
當然,和 AI 躲貓貓一樣,rct AI 的智能 NPC 也需要進行大量訓練,這也是為什麼視頻還存在一些劇情BUG 的原因。但令我非常吃驚的是,NPC 地說的話居然也是 AI 實時生成的,NPC 沒有固定的對話模闆,理論上,隻要玩家想,甚至可以跟一個 NPC 無限對話下去!
我們生活中有很多可對話的 AI 應用案例。就比如小愛同學,就比如手機導航。不過這與 rct AI 在做的有一些區别。比如百度導航,AI 回答給你的句子是固定的,在相同情況下隻會以固定語料回答;而 rct AI 在做的卻是生成式語料,回複的句子也是由 AI 生成,即便不同玩家對 AI 說相同的話,得到的回答也大概率不會重複。同意,在不同環境條件下,AI 也給到的回複也大不相同。
在這些技術加持之下,他們做遊戲不再是以往那樣線性叙事,而是直接打造出一個遊戲場景,讓玩家在場景中自由探索。理論上,玩家幾乎可以玩出成百上千種劇情可能,即使同一個玩家用相同的方式玩遊戲,也有可能玩出截然不同的劇情結局。
随着訓練次數的增加,rct AI 也曾見到NPC做出過完全出乎他們意料的舉動。就比如在他們做的另一個演示“盜夢人”技術 Demo 中,同樣的搶銀行場景,在玩家搶劫的時候,女櫃員竟然會偷偷自己從櫃台裡拿錢。這誰能想到!
可惜,他們本職工作是做 AI 的,不是做遊戲的,這個 Demo 大部分人體驗不到。不過他們跟國内外不少遊戲公司有技術合作,未來一兩年會有一些初步應用了他們技術的遊戲陸續上線。
可以預見,AI 技術對遊戲行業進步有着很大的積極意義。一方面,開發者能從枯燥的腳本地獄中解放出來,用更多的精力去打磨畫面與玩法;另一方面,這種完全打破以往遊戲固定線性叙事的玩法,能做出我們從未嘗試過的自由體驗。就比如《底特律變人》,雖然看上去好像是我們玩家選擇了分支劇情走了不同的結局,但實際上無論走哪條線,都不過是觀看設計師提前定好的劇本,我們從未真正決定過故事走向。
當下開放世界主要在做“空間”與“時間順序”上的開放,玩家可以決定先去哪裡,先做哪些任務,但最終還是得做完所有事情才能通關,所有人都不過是用不同的順序去體驗同一個流程。《巫師3》《刺客信條》《大表哥2》都是如此。
但如果這些AI技術能在遊戲裡大規模落地,或許空間和時間就能變得不那麼重要。開發者甚至可能不需要再給玩家設定任何具體任務,而隻是做出一個生動開放的幻想世界任玩家去自由探索。沒人知道我會遇到什麼冒險,沒人能定義我會玩出什麼結局,遊戲像現實一樣未知且神秘。或許“開放世界”的定義都将被改寫。
說不定在未來的遊戲,通過這種由 AI 生成的多變的劇情和結局。我都沒辦法給大家做《遊戲不止》的節目了。不過那時候我說不定也沒心思做節目了,這種遊戲都能有了,AI女友豈不也能實現?做節目、做啥節目,跟AI女友沒羞沒臊去不好嗎!
人類對自由的渴望,是靈魂最底層的渴望。但長久以來,我們所做的一切選擇都未逃不過開發者的束縛,始終是帶着鐐铐的舞蹈。
在 2021 年的互聯網中,我們以為憑借着自己所謂的自由意志,閱讀了一篇篇文章、觀看了一條條視頻、或在遊戲中完成了幾個任務。然而實際上,是網站編輯決定了我們能看到哪些東西,遊戲設計師決定了我們将經曆的遊戲體驗。
真正自然的體驗和生活方式絕不應該被限制在屏幕的流轉之間,而應該處于心流狀态的場景帶入和轉換。不管是 AI 躲貓貓還是 rct AI,能看出我們距離《失控玩家》裡表現出來的技術水平顯然還是有很大差距的。但值得慶幸的是,2021 年的地球上,人類已經朝着這個方向做了不少有意義的探索。
也許未來,我們能在 AI 的幫助下,在更好的世界中認識彼此。
感謝收看本期的《不止遊戲》,喜歡的觀衆朋友可以點贊關注收藏轉發,同時這期也感謝 rct AI 對本期節目的支持和幫助,我是喬伊,我們下期再見。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!