【PC遊戲】電子遊戲中的AI技術淺談


3樓貓 發佈時間:2023-05-30 15:55:25 作者:Desperation_ Language

如今的遊戲行業正在日新月異的發展著。隨著遊戲畫面的越來越逼真精細、操作反饋越來越真實、劇情和人物設計越來越細膩,今天的玩家們正在擁有一個越來越逼近現實世界的擬真遊戲世界。近些年,AI技術也在不斷發展,尤其是最近NLP模型ChatGPT的發佈,都讓人們意識到了人工智能技術的巨大潛力。人工智能技術當然在遊戲中也有著應用,並且已經具有了很長一段的歷史。下面將從時間發展的角度,對於幾種人工智能技術進行介紹。

早期的腳本AI

在電子遊戲誕生後不久,遊戲AI就隨之誕生了。人們希望能夠為機器賦予足夠強大的智能,最好能夠在人類的智力遊戲中擊敗人類。例如井字棋,象棋、圍棋等等。然而,這一時間段的遊戲AI還十分原始,甚至不太能夠以AI的標準將其定義。因為他們只是為遊戲中的NPC編寫了一些運行規則,即當玩家進行某些特定的操作時,NPC會做出相應的舉動。

一個非常經典的案例是《吃豆人》。遊戲中,玩家需要躲避4個小鬼的追趕,並吃到儘可能多的豆子。

【PC遊戲】電子遊戲中的AI技術淺談-第0張

吃豆人

這款遊戲在當時獲得了巨大的成功,並且也足夠在遊戲歷史上留名。遊戲中的四個“小鬼”就是通過AI來設計的。然而他們的行動邏輯非常簡單:

  • 紅色:跟隨玩家走過的路徑。
  • 粉色:以玩家行進路線的下一個路口為目標。
  • 藍色:以下一個路口後的路口為目標。
  • 黃色:完全隨機行動。

就是這些非常簡單的邏輯,使得這四個小小NPC彷彿具有了智能,總是能夠截住玩家的運動。然而這種邏輯只有在較為簡單的遊戲中可以使用。如果是像《紅色警戒》這種策略類遊戲,那就顯得有些力所不及了。

狀態機

狀態機,就是表示有限個狀態以及在這些狀態之間的轉移和動作等行為的數學計算模型。一個系統會有很多個狀態,狀態之間會通過檢測輸入的轉移條件而進行轉移,在轉移的過程中會有很多的動作。如果將狀態機應用於敵人AI的實現上,那麼敵人的運行狀態可以簡單分為巡邏、戰鬥、死亡。開始時敵人為巡邏狀態,檢測到玩家後,進入戰鬥狀態,被玩家擊殺後進入死亡狀態,如果玩家被擊殺,就重新回到巡邏狀態。這就構成了一個簡單的狀態機。大部分的遊戲AI都是由這種方式來實現的,只是具體的邏輯要複雜很多,有些也會在其之上修改。

【PC遊戲】電子遊戲中的AI技術淺談-第1張

程序員的狀態機


《只狼》這款遊戲中,玩家可以和精英怪、boss進行真刀真槍的拼殺。這款遊戲中的敵人行為AI,就是基於狀態機進行了修改,被稱作HTN——分層任務網絡。它是把任務分為幾種,之間的約束以網絡形式表示。

  1. 原始任務,是可以執行的操作;
  2. 複合任務,是由一系列動作組成的複雜任務;
  3. 目標任務,是滿足條件的任務。

遊戲中,敵人的行為可以分為主動任務和被動任務。敵人AI默認進行主動任務,會根據與玩家的距離,判斷釋放不同的連招組合。當玩家做出動作後,敵人AI會檢測到主角的動作,切換成被動任務,此時會進行躲閃、防禦等動作。

【PC遊戲】電子遊戲中的AI技術淺談-第2張

如果你是狼,也好。。。

而像《崩壞:星穹鐵道》裡的小兵,就是非常簡單的狀態機了。沒事時來回走走,看看風景;當看到玩家時,頭上冒起紅色感嘆號,然後跑過來追擊。

【PC遊戲】電子遊戲中的AI技術淺談-第3張

行為樹

行為樹AI也是現代遊戲AI的主流方法。它的結構與設計比狀態機更加複雜,但本質上也是通過邏輯判斷,實現智能化的動作執行的。行為樹是一種樹形結構,通過不同類型的節點,來確定將要做哪一種操作。每次執行完成後,還會向父節點傳遞執行效果。由於節點類型有很多,例如順序節點、條件節點、並行節點等等,因此能夠實現較為複雜的敵人AI。比如:讓敵人通過選擇節點判斷距離並攻擊玩家,同時,通過並行節點判斷自身血量是否過低,並且通過序列節點來後退並躲避玩家攻擊。

行為樹也被應用在了很多遊戲中,例如《魔物獵人》中數量眾多的怪物,其運行邏輯就是通過行為樹來實現的。在與玩家戰鬥的同時,如果場景中亂入了另一種怪物,那麼怪物有時就會放棄與玩家的戰鬥,轉頭去與另一隻怪物進行領地爭奪。

【PC遊戲】電子遊戲中的AI技術淺談-第4張

爭奪地盤!

其他應用

隨著AI技術的發展,也有更多的遊戲開發者嘗試將強化學習、深度學習等技術應用在遊戲AI的塑造上來。一個很新的應用是斯坦福大學的研究人員使用chatGPT創建了一個有25個角色的虛擬小鎮,其中每個角色都有自己的喜好、性格、生活方式等,並且可以互相交流信息,自行發展。雖然這個實驗只運行了兩天,但是它對於遊戲行業的影響是轟動性的。這意味著玩家們可以擁有一個更加鮮活的虛擬世界。

【PC遊戲】電子遊戲中的AI技術淺談-第5張

此外,也有許多研究者、開發者嘗試用強化學習的技術訓練AI模型,測試它們在不同遊戲上的表現。例如遊戲《2048》,《貪吃蛇》等等。

【PC遊戲】電子遊戲中的AI技術淺談-第6張

B站視頻


【PC遊戲】電子遊戲中的AI技術淺談-第7張

B站視頻

這些嘗試也為AI的發展指明瞭一個新的道路。如果敵人AI能夠以玩家的操作為數據輸入進行訓練,那麼就有可能讓玩家自行訓練出一個越來越強大的敵人。繼續幻想下去,如果開發一個“AI訓練師”的遊戲,讓玩家能夠訓練出自己的AI,並且能夠在玩家之間傳輸AI數據,使得不同玩家的AI可以相互對戰,感覺會很有意思。但是根據目前AI的智能水平,更可能的情況是訓練出的AI擋住了一切正常的攻擊,卻被一記奇怪的操作手法擊倒了。。。

遊戲AI的技術依然在發展。相信未來我們能夠看到越來越智能的遊戲NPC。


© 2022 3樓貓 下載APP 站點地圖 廣告合作:asmrly666@gmail.com