漫談電子遊戲中的人工智慧
標題圖來自視覺中國
導讀:
遊戲中要不要加入高階人工智慧?許多家電子遊戲開發商對此猶豫不決,因為他們擔心如此一來,會失去對整體玩家體驗的控制。事實上,在電子遊戲中,人工智慧的目標並非創造一個不可戰勝的實體供玩家與之對抗,而是要讓玩家在長時間內最大限度地參與和享受遊戲。
本文主要概述了電子遊戲中的人工智慧是如何隨著時間的推移而發展的,以及目前在遊戲中的應用。
大多人可能會認為,在最近幾年發行的大多數遊戲中,那些非玩家控制的角色、生物或動物(本文通常稱為機器人)都有高度複雜的人工智慧。然而,遊戲中要不要加入高階人工智慧,許多家電子遊戲開發商猶豫不決,因為他們擔心如此一來,會失去對整體玩家體驗的控制。事實上,在電子遊戲中,人工智慧的目標並非創造一個不可戰勝的實體供玩家與之對抗,而是要讓玩家在長時間內最大限度地參與和享受遊戲。
如果你選擇了一款新遊戲並開始進行遊戲,你的遊戲樂趣,會不會一次又一次地被徹底摧毀呢?又或者,你願意與和你水平相似或更高的人配對嗎?這樣隨著時間的推移,你就能不斷學習和進步。絕大多數玩家可能會選擇後者。但這並不意味著人工智慧在現代遊戲產業沒有立足之地,只是意味著人工智慧在電子遊戲中的用途,與我們最初期望的有所不同。我們不想創造最好的人工智慧,我們想創造的是最令人愉快的人工智慧,能夠讓玩家與之互動或競爭。
電子遊戲中人工智慧的歷史
人工智慧是一個非常寬泛的術語。它不一定需要是一個從玩家行為中學習的模型。《德軍總部3D》(Wolfenstein 3D)早在1992年就釋出了,就連遊戲中的士兵也有一個基本的人工智慧形式。有限狀態機(Finite State Machine,FSM)演算法是一種相對簡單的人工智慧,設計者在其中建立一個機器人可以經歷的所有可能事件的列表。然後,設計者分配機器人對每種情況的具體響應(Lou,2017年)。我們可以想象,在1992年,《德軍總部3D》的開發者考慮了敵軍可能遇到的所有情況。在他們的視野之內,一扇門可能會開啟,Blazkowicz(《德軍總部》系列遊戲中的英雄)可能會走進他們視野內,他們可能會從他背後開槍射擊,他們也有可能看不到Blazkowicz,等等。開發人員會編制這個列表,並針對每個情況,告訴機器人應該去做什麼。這是Lou的文章中一張有用的圖片:
圖1(Lou,2017年)
這顯然是一個簡單的例子。我們可以想象得到,構建的細節越多,它就會變得越複雜。機器人在放棄之前應該搜尋Blazkowicz多長時間?如果他們放棄搜尋,他們應該待在原地呢,還是回到生成點呢?這個列表會很快變得非常冗長,而且非常詳細。在有限狀態機中,建立遊戲的開發人員將為每種情況分配一個特定的動作。
譯註:有限狀態機是表示有限個狀態以及在這些狀態之間的轉移和動作等行為的數學模型,一種用來進行物件行為建模的工具,其作用主要是描述物件在它的生命週期內所經歷的狀態序列,以及如何響應來自外界的各種事件。狀態儲存關於過去的資訊,就是說:它反映從系統開始到現在時刻的輸入變化。轉移指示狀態變更,並且用必須滿足確使轉移發生的條件來描述它。動作是在給定時刻要進行的活動的描述。有多種型別的動作:進入動作(entry action):在進入狀態時進行。退出動作:在退出狀態時進行。輸入動作:依賴於當前狀態和輸入條件進行。轉移動作:在進行特定轉移時進行。在電腦科學中,有限狀態機被廣泛用於建模應用行為、硬體電路系統設計、軟體工程、編譯器、網路協議和計算與語言的研究。
《德軍總部3D》遊戲截圖
有限狀態機演算法並不適用於每款遊戲。試想一下,如果在策略遊戲中使用有限狀態機會發生什麼?如果機器人被預程式設計,每次都以同樣的方式做出響應,那玩家將會很快學會如何智勝計算機。這就產生了重複的遊戲體驗,正如你所預料,這並不會讓玩家感到愉快。為了防止有限狀態機的重複性,人們提出了蒙特卡洛樹搜尋(Monte Carlo Search Tree,MCST)演算法。蒙特卡洛樹搜尋的工作方式是首先視覺化機器人當前所有可用的動作。然後,對於每個可能的動作,它分析玩家可能會做出響應的所有動作,然後它會考慮所有它可能做出的響應動作,等等(Lou,2017年)。你可以想象這棵樹將會以多快的速度變成“參天大樹”。下面是一幅很不錯的圖表,可以直觀地瞭解蒙特卡洛樹搜尋是如何工作的:
圖2(Lou,2017年)
圖2突出顯示了使用蒙特卡洛樹搜尋的計算機在針對人工元件採取動作之前所經歷的過程。它首先要檢視它擁有的所有選項,在上面的示例中,這些選項要麼是防禦,要麼是構建技術,要麼是攻擊。然後,它構建了一棵樹,預測此後每一次潛在動作成功的可能性。上面我們可以看到成功率最高的選項是“攻擊”(因為暗紅色表示更高的獎勵概率),因此計算機選擇攻擊。當玩家進行下一步動作時,計算機將重複樹的構建過程。
譯註:蒙特卡洛樹搜尋樹是一種用於某些決策過程的啟發式搜尋演算法,最引人注目的是在遊戲中的使用。一個主要例子是計算機圍棋程式,它也用於其他棋盤遊戲、即時電子遊戲以及不確定性遊戲。蒙特卡洛樹搜尋並不是一種"模擬人"的演算法。而是通過隨機對遊戲進行推演來逐漸建立一棵不對稱的搜尋樹的過程。可以看成是某種意義上的強化學習,當然這一點學界還有一些爭議。這個演算法可以追溯到20世紀40年代。蒙特卡羅樹搜尋大概可以被分成四步:選擇(Selection)、擴充(Expansion)、模擬(Simulation)、反向傳播(Backpropagation)。
想象一下像《文明》(Civilization)這樣的遊戲,一臺計算機可以做出的選擇該有多少啊。如果要為整個遊戲的每一個可能的選擇和每一個可能的場景構建一個詳細的樹,計算機將會花費極其漫長的時間。它永遠不會採取行動。因此,為了避免這種海量的計算,蒙特卡洛樹搜尋演算法將會隨機選擇一些可能的選項,並僅為所選擇的選項進行構建樹。這樣,計算就會快得很多,而且計算機可以分析出選擇哪一種選項獲得最高獎勵的可能性。
《文明》遊戲截圖
《異形:隔離》中的人工智慧
最近電子遊戲中比較流行的高階人工智慧形式之一是來自Creative Assembly開發的《異形:隔離》(Alien:Isolation)中的異形。人們對人工智慧在幕後是如何工作的,存在一些誤解。然而,這是一個引人注目的展示,展示了人工智慧如何為玩家創造一個引人入勝的、不可預測的環境。
《異形:隔離》中的異形,有兩種控制其運動和行為的人工智慧力量:人工智慧導演和人工智慧異形。人工智慧導演是一個被動控制器,負責創造一個愉快的玩家體驗。為了做到這一點,人工智慧導演一直都知道玩家和異形在哪裡。但是,人工智慧導演並不與遊戲中的異形分享這些情報。人工智慧導演密切關注所謂的“威脅量表”,它本質上只是度量預期玩家壓力水平的一種指標,由多種因素決定,例如異形接近玩家的距離、異形在玩家附近的時間、在玩家面前的時間、在運動跟蹤器裝置上可見的時間等等。這個“威脅量表”告知異形的工作系統,它本質上只是異形的任務追蹤器。如果威脅指標達到某個級別,任務“搜尋新位置區域”的優先順序將會增加,直到異形離開玩家進入一個單獨區域。
《異形:隔離》遊戲截圖
行為決策樹
在深入瞭解人工智慧異形的執行原理之前,重要的是首先要強調影響決策過程的結構。人工智慧異形使用了一棵廣泛的行為決策樹,這棵樹包含超過100個節點和30個選擇器節點。想象一下下面的簡單例子:
圖3(Simpson,2014年)
行為樹的工作方式是從左到右詢問問題。一個成功允許沿著樹前進,而失敗將會返回到序列節點。過程如下:序列→我餓了嗎?(成功)→序列(執行)→我有食物嗎?(成功)→序列(執行)→周圍沒有敵人(成功)→序列(執行)→吃東西(成功)→序列(執行)→父節點(Simpson,2014年)。如果在任何時刻,其中一個節點返回(失敗),那麼整個序列都將會失敗。例如,如果結果是“我有食物嗎?”失敗了,它就不會再檢查周圍是否有敵人,也不會再吃東西。相反,這個序列將會失敗,而這將是該序列的結尾。
序列顯然可以變得更加複雜,並在深度上成為多層次。下面是一個更深層次的例子:
圖4(Simpson,2014年)
記住,當一個序列成功或失敗時,它會將結果返回給它的父節點。在上面的例子中,我們假設我們已經成功接近了一扇門,但並沒有開啟門,因為門是鎖著的,我們沒有鑰匙。那麼序列節點將被標記為失敗。結果,行為樹路徑返回到該序列的父節點。下面是父節點的樣子:
圖5(Simpson,2014年)
所以,我們沒能開啟一扇門,但我們也沒有放棄。我們的父節點還有另外一個序列供我們去嘗試。這次它涉及到通過翻窗進入。人工智慧異形有30個不同的選擇器節點和100個總結點,所以它比這個例子要複雜得多,但我希望這能讓你能夠了解人工智慧異形在後臺究竟是如何工作的。
回到人工智慧異形
正如我們所知,人工智慧異形是控制異形行動的系統。它永遠不會提供有關玩家位置的資訊。它從人工智慧導演哪裡得到的唯一資訊是它應該搜尋的大致區域。除此之外,它必須自己找到玩家。它確實有一些工具可以幫助它找到玩家。第一個是感測器系統,它可以讓異形感知周圍環境中的音訊和視覺線索,諸如腳步聲、槍聲、開門聲,甚至是運動追蹤器的嗶嗶聲等噪音,所有這些都有助於異形追蹤玩家。音訊範圍取決於所建立的噪音型別。除了音訊感測器外,異形還能接受視覺感測器,比如看到Ripley跑過去,或者看到視野中有一扇門被開啟,等等。
異形追蹤玩家的另一個工具是搜尋系統。有一些特定區域,開發人員已經確定是很好的隱藏點,異形是預程式設計好進行搜尋的。但是,它並不會按任何特定順序對它們進行搜尋,甚至會再次檢查已經訪問過的區域。當然,如果異形聽到噪音或看到了視覺提示,它就會搜尋開發人員沒有明確列出的區域。
關於《異形:隔離》最常被討論的話題是:隨著遊戲的進展,異形似乎對玩家有了更多的瞭解。當它學習玩家遊戲風格的某些特徵時,它所做的動作似乎變得更加複雜。令人驚訝的是,開發人員實現這一目標的方式,並不是通過在異形的人工智慧中構建一個複雜的神經網路來實現的。為了展示這款遊戲如何實現這種異形的學習,我們需要回顧一下人工智慧異形的行為決策樹。
圖6(Simpson,2014年)
在遊戲開始的時候,這個行為樹的某些部分對異形遮蔽了。被遮蔽的區域是異形無法訪問的,這意味著異形無法訪問某些行為和行動。例如,在遊戲開始時,響應遠處開門聲音的樹的部分可能不會處於活動狀態。如果玩家在異形的視野中開啟了一扇門,它就可以解鎖行為樹的那一部分,這樣,將來開啟門的聲音會觸發某個響應。隨著玩家在遊戲中的進展,越來越多的異形行為樹被解鎖。這就給人一種錯覺,異形似乎正在學習並適應玩家的遊戲風格。
電子遊戲中的遺傳神經網路
如果不提及神經網路在電子遊戲中的應用,那麼這篇文章就是不完整的。最近有一些非常著名的例子,其中一個就是擊敗了專業Dota 2團隊的人工智慧。然而,討論這一主題的最好方法是從小處著手,對神經網路如何學習電子遊戲的目標和策略有一個基本的瞭解。
圖7(Comi,2018年)
為了達到這個基本的瞭解的目的,我們將使用的遊戲是《貪吃蛇》(Snake)。對那些不熟悉這款遊戲的人來說,貪吃蛇是一款2D遊戲,在這款遊戲中,你可以控制一行方塊(即貪吃蛇)。你有三種動作選擇:向左、向右或直走。如果你碰到牆上或者撞到你的蛇尾巴,你的蛇就會立即死亡並重新開始。有一個點可以去收集(稱為食物),它會讓你的蛇尾巴增加一個方格,所以你收集的點越多,你的蛇就會變得越長。
讓我們想象一下,我們想教貪吃蛇如何獲得儘可能高的點數,貪吃蛇要想在這個世界上生存,它就需要學習一些東西。為了讓貪吃蛇學會,需要提供有關環境的資訊,我們將把提供的這些資訊作為輸入。這些輸入可以是我們掌握的任何資訊。例如,我們的輸入可能是以下6個是非問題:直走是否無礙、向左是否無礙、向右是否無礙、向前是否有食物、向左是否有食物、向右是否有食物(Designing AI,2017年)。根據每個問題的答案,這將為6個輸入節點設定1或0。然而,這些輸入也可以是測量蛇頭到牆壁或蛇尾,或食物之間的距離。為簡單起見,讓我們繼續看6個輸入節點的例子。
接下來我們需要告訴貪吃蛇我們想要它實現什麼目標。為了傳達我們期望的目標,我們實施了獎勵系統。例如,我們可以給貪吃蛇這樣的獎勵:每次向食物移動一步獎勵1分,每次吃到食物並增加長度就獎勵10分。然而,當Binggeser(Designing AI,2017年)為他的貪吃蛇實施這些獎勵時,他意識到貪吃蛇只會在一個非常小的圈子裡移動。這樣,他的貪吃蛇就能在避開牆壁和長尾巴帶來的危險的同時積累點數。很顯然,這並不是我們預期的結果。在初始模型中需要加入某種懲罰,當貪吃蛇離開食物時,點數就會減少。這就鼓勵了貪吃蛇主要向食物的方向移動。
現在我們有了一條能夠從環境中獲取資訊的貪吃蛇,還有一個定義貪吃蛇目標的獎勵系統。我們接下來該怎麼辦?我們的貪吃蛇如何真正學會如何進行遊戲?在這一點上,快速瞭解一下神經網路實際是如何工作的將會有所幫助。
世代神經網路
世代神經網路的結構與標準神經網路的結構相同。它從一定數量的輸入節點開始,然後輸入到一個或多個隱藏層,最終提供一個輸出。下面是一個很好的視覺化示例:
圖8(Comi,2018年)
以我們的貪吃蛇為例,我們有6個輸入節點,這些是我們之前定義的6個是非問題:直走是否無礙、向左是否無礙、向右是否無礙、向前是否有食物、向左是否有食物、向右是否有食物。每個輸入節點通過我們成為權重連線到每個第一個隱藏層節點。在圖8中,我們看到連線到每個節點的所有線(權重)。這些權重是我們的模型將要調整的,因為它知道哪些輸入要加強或削弱,以提供最準確的輸出。在我們這個例子中,“最準確的輸出”被定義為“收集點數最多的貪吃蛇”。請記住,我們的貪吃蛇在靠近食物時會得到點數,在吃到食物時會得到更多的點數,離開食物時點數會減少。
世代神經網路“學習”的方式是首先確定每一代的大小(假設我們希望每代都包含200條貪吃蛇)。接下來,它為第一代的200條貪吃蛇中的每一條建立權重的微小變化,然後執行第一代的200條貪吃蛇中的每條蛇,並選擇最終成功的蛇(即獲得點數最多的那條蛇)。假設我們選出了第一代點數最多的前10條蛇(前5%)。這10條蛇隨後將成為第二代的“父母”。這10條蛇的權重用於定義第二代的起點。第二代200條蛇將再次在這些權重上產生微小的變化,表現最好的蛇將被選為第三代的“父母”,以此類推。
回到貪吃蛇
因此,正如我們上面所看到的,我們可以反覆執行第一代貪吃蛇模型(上面我們執行了200次),通過稍微改變每個權重,可以看到貪吃蛇產生的各種變化。然後,我們選擇最佳表現的蛇,繼續影響第二代神經網路權重。我們對每一代都重複這一過程,直到貪吃蛇的學習率開始趨於平穩(換句話說,直到世代的進步放緩或停止)。
也許在第一代、第二代和第三代中,沒有一條貪吃蛇吃過食物,因此它從來不知道吃掉食物會獎勵10分。然而,也許在第四代,有一條貪吃蛇吃了食物。這條蛇很可能有了它這一代蛇中最高的點數,因此被選中來影響下一代。後代的權重將基於最成功的貪吃蛇祖先而改變。經過10代、100代甚至1000代之後,你可以想象會發生多少次學習。
電子遊戲人工智慧在現實世界中的應用
在電子遊戲行業中使用的同樣型別的強化學習方法,也正成功應用於其他行業。例如,《俠盜飛車》(Grand Theft Auto)遊戲已經被用來為測試自動駕駛汽車演算法提供一個安全和現實的環境,這款遊戲預程式設計了交通規則、道路和汽車物理學(Luzgin,2018年)。與現實世界相比,在虛擬環境中收集資料不僅安全和現實,而且速度還快了1000倍(Luzgin,2018年)。
《俠盜飛車》遊戲截圖
“電子遊戲是訓練人工智慧演算法的一種很好的方式,因為它們的設計目的是讓人類思維逐步向更困難的挑戰邁進。”(Luzgin,2018年)
人工智慧在電子遊戲領域的最新進展之一是由Open AI的研究人員完成的。Open AI基於一種演算法創造了一款遊戲,其唯一目的就是帶著自然的好奇心去探索。獎勵系統側重於獎勵探索而不是更深入進行遊戲。研究人員將這個由好奇心驅動的模型放入《超級馬里奧兄弟》(Super Mario Bros)遊戲中,純粹出於好奇心,它成功通過了11關。顯然,這樣做也有缺點,因為它需要巨大的算力,而且機器很容易“分心”。然而,對於第一次玩這款遊戲的人類玩家來說,也是一樣的。正如Luzgin在他的文章所引用的:“嬰兒似乎採用無目標探索來學習技能,這些技能在日後的生活中將有用。”這種無目標探索的感覺貫穿一生,但最明顯的例子還是通過電子遊戲來探索虛擬環境。
《超級馬里奧兄弟》遊戲截圖
總結
在今天的電子遊戲行業中,人工智慧的使用形式有很多。無論是簡單的有限狀態機模型,還是從環境反饋中學習的高階神經網路,這些虛擬環境為人工智慧的發展提供了無限的可能性(無論是遊戲行業還是其他領域)。
參考連結:
Binggeser,Peter.Designing AI:Solving Snake with Evolution_.2017.https://becominghuman.ai/designing-ai-solving-snake-with-evolution-f3dd6a9da867
Comi,Mauro.How to teach AI to play Games:Deep Reinforcement Learning_.2017.https://towardsdatascience.com/how-to-teach-an-ai-to-play-games-deep-reinforcement-learning-28f9b920440a
Lou,Harbing.AI in Video Games:Toward a More Intelligent Game_.2017.http://sitn.hms.harvard.edu/flash/2017/ai-video-games-toward-intelligent-game/
Luzgin,Roman.Video Games as a Perfect Playground for Artificial Intelligence_.2018.https://towardsdatascience.com/video-games-as-a-perfect-playground-for-artificial-intelligence-3b4ebeea36ce
Simpson,Chris.Behavior Trees for AI:How They Work_.2014.https://www.gamasutra.com/blogs/ChrisSimpson/20140717/221339/Behavior_trees_for_AI_How_they_work.php
Thompson,Tommy.The Perfect Organism:The AI of Alien:Isolation_.2017.https://www.gamasutra.com/blogs/TommyThompson/20171031/308027/The_Perfect_Organism_The_AI_of_Alien_Isolation.php
作者介紹:
Laura E Shummon Maass在醫療保健領域工作已有4年,從事資料分析工作,通過有意義的見解來促進變革。她自述資料是她的激情所在,希望她的文章能夠激勵他人。
作者:Laura E Shummon Maass
編譯:Sambodhi
來源:AI前線(ID:ai-front),
原文連結:Artificial Intelligence in Video Games
https://towardsdatascience.com/artificial-intelligence-in-video-games-3e2566d59c22
相關文章
- 淺談電子遊戲中選擇的設計遊戲
- 食物在電子遊戲中的妙用遊戲
- 電子遊戲與女性主義,對電子遊戲中的性別歧視說NO遊戲
- 為電子遊戲添“彩” ——色彩原理在電子遊戲中的應用與發展遊戲
- 漫談Roguelike——什麼樣的遊戲才是好玩的肉鴿遊戲遊戲
- 粗談從跑團到電子RPG遊戲的發展之路遊戲
- 動作與射擊漫談:格鬥遊戲中的動作設計遊戲
- 淺析電子遊戲中的「留白」藝術遊戲
- 宮本茂也曾給妻子推薦電子遊戲,談談女性玩家挑選遊戲的特別規則遊戲
- 中國當代藝術場域中的電子遊戲遊戲
- 電子遊戲文化是如何形成的?遊戲
- 從電子遊戲到DevOps遊戲dev
- 電子遊戲中改變視角的過場動畫遊戲動畫
- 雜談:遊戲中的“聲音”遊戲
- 阿偉我又死了!——漫談遊戲失敗之美遊戲
- 漫談第一人稱射擊遊戲(FPS)中角色的機制設計遊戲
- 遊戲物品如何定價?談談遊戲中的消費者剩餘遊戲
- 被資料“綁架”的電子遊戲遊戲
- 漫談《死亡擱淺》的商業、開發與遊戲構想(上)遊戲
- 漫談《死亡擱淺》的商業,開發與遊戲構想(下)遊戲
- FPS遊戲原理漫談:玩家延時與伺服器同步遊戲伺服器
- 遊戲學 | 玩電子遊戲是浪費時間?遊戲
- 電子遊戲的互動性研究報告遊戲
- “追逐戲”是如何在電子遊戲裡發揮作用的?遊戲
- 遊戲名人堂:“電子遊戲教父”席德·梅爾遊戲
- 動作與射擊漫談:格鬥遊戲進化簡史遊戲
- 淺談遊戲中的互動敘事遊戲
- 遊戲漫談:淺談為何《博德之門3》和拉瑞安會獲得成功的原因遊戲
- 漫談商業遊戲的社交設計之一:核心玩法內的玩家協作遊戲
- 論電子遊戲的敘事和文化邏輯遊戲
- 誰開發了「史上最爛」的電子遊戲?遊戲
- 電子遊戲需要有什麼樣的操作玩法?遊戲
- ESA:2020年48%的電子遊戲玩家為女性遊戲
- 電子遊戲能提高孩子的智力? - ki.se遊戲
- 由B站抽獎注水談談遊戲中的概率事件遊戲事件
- 從《蜜蜂模擬器》出發淺談電子遊戲如何“定義”非人類生物遊戲
- 《電子競技在中國》第一集上線,始於遊戲,超越遊戲遊戲
- 遊戲開發中的人工智慧遊戲開發人工智慧