隨著 ChatGPT 的出現,AI 輔助人們日常生活工作的重要性逐漸增加,越來越多的服務可以透過 AI 的協助來提升效率。也許有一天像 ChatGPT 這樣的生成式 AI 被放到遊戲中使用會變成很稀鬆平常的事也說不定。
但在這天到來之前,SQUARE ENIX 的遊戲 AI 專家三宅陽一郎,在 2025 的 GDC 上,以『The History of Game AI: From Rule-Based to Deep Learning』為主題,向大家介紹了近 20 年來的遊戲 AI 發展歷程。
早期的遊戲並沒有特定的 AI 概念,但隨著時間演進,遊戲系統也逐漸演變成越來越智慧化。
在 1997 年左右,遊戲的 AI 可以概略分成 3 種類型。分別是 Meta AI、Character AI 和 Spatial AI。這場演說會聚焦在 Meta AI 以及 Character AI,追朔其起源與發展。
Meta-AI
Meta-AI 負責控制整個遊戲,監督著遊戲中的系統及組件,包括怪物的配置、難度調整、模式輪換等等。這邊講者用《Sim City》、《Pac-Man》,以及《Xevious》作為案例,介紹當時的遊戲 AI 負責什麼工作。
《Sim City》
《Sim City》是一款城市建設遊戲,可以把遊戲本身看成是一個 Meta-AI 系統,遊戲中的地圖採分層結構組成,最上層是玩家的可視區塊,直接反應玩家的編輯操作。第 2 ~ 4 層都是用來計算的區塊,從最細微的人口密度、交通水準,延伸到地形條件,以及最大範圍的人口增長率、警察部門影響等等。
這套分層地圖系統讓遊戲模擬出城市所有元素之間複雜的關係,可以理解成 Meta-AI 控制著遊戲本身,是很重要的範例。
《Pac-Man》
岩谷徹的《Pac-Man》也透過早期的 Meta-AI 控制遊戲中怪物的行為。在《Pac-Man》中有 2 種模式,在「攻擊模式」下,所有怪獸會追著玩家跑,但在「休息模式」時,怪獸會待在角落休息。
攻擊與休息會輪流進行。設計師設定這些模式的時間,例如前 7 秒休息,接著是 20 秒的攻擊時間。這還只是第一階段的模式,更進階的模式休息時間會更短。
另外是難度調整,一開始只會出 2 隻怪,當玩家吃掉第 30 顆分數之後,第 3 隻怪就會被放出來,遊戲中存在著 3 種出怪機制。
《Xevious》
1983 年推出的《Xevious》是一款射擊遊戲,遊戲中的敵人會分佈在地面以及空中。在地面的敵人不會有變化,但位於空中的敵人,遊戲會判斷玩家的技術,讓出現的敵人變得更強。而當玩家被擊墜時,敵人的難度又會回歸最簡單的模式。這也是從很早之前就存在著的動態調整案例。
基於 Z80 組合語言的 Job-con 框架
接著講者提到了 NAMCO 在 80 年代基於 Z80 組合語言,由深谷正一開發的 Job-con 技術框架,這個框架實現了物件導向原理,在當時是很先進的理念。包含《Xevious》在內,許多的 NAMCO 街機遊戲都是透過這個技術開發,Job-con 被視為是日本最早期的遊戲引擎之一。
從 1980 年開始到近代的遊戲,利用 Meta-AI 控制遊戲節奏,一直是許多開發團隊用來調整玩家遊戲體驗的手法。
Character-AI
Character-AI 扮演著遊戲中各角色的大腦,其中又可以分成「決策」、「機器學習與演化」,以及「互動性」這 3 個方向。
決策
早期的決策系統很簡陋,例如 1978 年的《太空侵略者》,無論玩家角色如何移動,敵人永遠只會執行預定的動作。
但在 1980 年之後,角色變得更有互動性,例如 1989 年的《波斯王子》,角色開始擁有簡單的互動模式。
若是在 3D 遊戲中(例如:《HALO》),角色會擁有更強烈的自主性。
接著讓我們進一步剖析,什麼是角色的智慧?
看看下面這張圖表,透過感測器輸入,接著透過行動輸出,所謂的智慧,就是中間這塊大腦,決定角色的行為。角色智慧的存在,就是要讓角色可以根據環境變化做出適當的動作。
這樣的結構我們稱為「代理架構」,它通過感測器和執行器的動作,連接環境世界和智慧世界。
下圖是很經典的代理架構圖表,包含識別、決策,以及動作生成,這裡我們的重點放在決策系統上。
決策系統有 8 種類型的算法,像是基於規則、狀態、行為,或是使用神經網路系統等等。
《Pac-Man》
以《Pac-Man》為例,《Pac-Man》中的每一隻怪獸(紅、粉、青、橙)各自有不同的決策內容。
紅色怪會直接追逐玩家,青色怪會跑到紅色怪的對稱點(以玩家為中心),粉紅怪會跑到玩家前 3 格位置,橙色怪基本是隨機移動,若貼近到距離玩家 130 顆像素範圍內則變成像紅色怪那樣追著玩家跑。這個設計讓遊戲產生挑戰性,玩家必須嘗試尋找出逃生路線。
《自我中心派》
1988 年發售的《自我中心派》是改編自漫畫家片山まさゆき老師同名漫畫作品的日本麻將遊戲,遊戲開發者宮路洋一在受訪時提到,這是講談社第一個遊戲化的 IP 作品,甚至當他帶著企劃書去洽談時,對方的接洽人員根本不知道什麼是遊戲,還問說遊戲是什麼?
在幾年前的一次私人聚會,三宅陽一郎看到了《自我中心派》的企劃規格書,其精細程度讓他大感震驚。在當時幾乎沒有遊戲 AI 知識的情形下,遊戲中角色的思考就已經充滿了麻將的真實感。
這些角色會針對起始手牌設定大方針,並且會不斷計算其他牌型的期望值,若是其他牌型的期望值相對提高,便有可能轉換策略追求其他牌型。這種現代化的 AI 思考方式,在當時就已經被設計出來了。
對該專訪有興趣的讀者可以參考三宅陽一郎與宮路洋一的訪談文章連結
《勇者鬥惡龍 IV》
在 1990 年的《勇者鬥惡龍 IV》當中,每個怪物會有 36 個參數,其中 6 個參數是怪物的行動方式,像是直接攻擊、防禦、逃跑等等。
但更重要的是,這些怪物有各自的行動選擇模型。在平均型的情況下每個行動的概率是均等的,斜坡型或是斷崖型執行第一個動作的概率很高,如果是輪轉型則會按照順序輪流執行動作。
遊戲透過六種行動以及選擇模式,營造出每個怪物不同的個性。
《模擬人生》
接著是《模擬人生》,也是一款非常有名的遊戲,每個模擬市民都有自己的 AI 引擎,稱作「Motif Engine」。
每個模擬市民會有 8 個不同的參數,像是飢餓、舒適,以及衛生等等,參數會隨著與其他角色或是物件的互動而改變。
這些變化的計算方式非常複雜,以飢餓值為例,當我們在角色很餓的時候吃飯,此時可以提升的幸福感,會遠超過在飽足狀況下進食所提升的數值。這就是運用到經濟學當中的邊際效益。
機器學習與演化
《Creatures》
1996 年在 Windows 上的遊戲《Creatures》,是一款人工生命模擬遊戲,玩家可以孵化出生物,並透過具有 8,000 個節點的神經網路來讓他們學習物件的名稱以及各種動作。這是很早期的遊戲中使用神經網路的案例。
《加油森川君 2 號》
1997 年 PlayStation 上的《加油森川君 2 號》,裡面的角色是一個人工智慧機器人。玩家在引導它探索世界的同時,可以讓它針對沿途發現的物品、生物,以及機關進行學習。這些指導可以使它變得更聰明,進而增加可探索的範圍。
《Astronoka》
接著是 1998 年的《Astronoka》,這是一款種田遊戲,玩家可以透過品種改良,想辦法種出最優秀的蔬菜。遊戲中會出現一種害蟲,會試圖破壞你的田地,所以玩家必須在通往田地的路上設置陷阱來阻止這些害蟲。
麻煩的是,這些害蟲還會透過遺傳演算法,進行進化。牠們的下一代群體會有更高的能力來克服陷阱。
遊戲中還有一個模擬速度控制系統,因為進化的速度無法預測,要是進化的速度過慢,透過系統可以調節增加模擬的時間。
上面的《加油森川君 2 號》以及《Astronoka》都是森川幸人的作品,原本是電視節目 CG 製作的森川當年因緣際會下以遊戲開發素人的身份替 SONY 開發 PlayStation 上的作品,而且還是 AI 遊戲。雖然當時並沒有受到太多矚目,但在遊戲 AI 的歷史上卻是難得的案例。
有興趣的讀者可以參考森川幸人的訪談文章連結
《Black & White》
Lionhead Studios 開發的《Black & White》,在這款遊戲中玩家扮演類似上帝的角色,要想辦法統治島上所有村莊。玩家會擁有一隻神獸,神獸是玩家的代理人,玩家可以透過獎勵或是懲罰來訓練神獸的行為,讓牠幫助玩家提升村民的信仰。
這隻神獸有一個簡單的神經網路,只有 3 個感知參數,若某項參數不斷提高,便會驅使神獸去做特定行為。每個參數具有自己的權重值,這些權重可以透過玩家對神獸的獎勵或是逞罰來學習改變,實現角色的行為訓練。
Deep Q-Learning
機器學習也應用在遊戲的學習上,2013 年 DeepMind 將 Deep Q-Learning 技術 (DQN) 用在學習 Atari 2600 的 5 款遊戲。隨著訓練週期增加,DQN 的表現越來越優秀,顯示 DQN 能夠逐步學習遊戲的最佳策略。
DQN 的成功也啟發了後續的 AI 系統,如人工智慧圍棋系統 AlphaGo,以及針對 Atari 57 款遊戲可以達到超越人類表現的 Agent57。
互動性
《ELIZA》
互動性是指能與人類用戶對話的互動代理。這個系統的起源是1966年 MIT 的 Joseph Weizenbaum 開發的《ELISA》,《ELISA》是一個很簡單的諮詢系統,模擬一位心理治療師回答使用者提出的問題。
《ELIZA》其實沒辦法理解使用者輸入的所有資訊。它只認得幾個關鍵字,透過句型對照,將那些未知的部分包裝成新的陳述句回應使用者,引導使用者講出更多內容。
這邊還有個小故事是,《ELIZA》的出現,引起了當時還是學生的 Don Daglow 的興趣,他想著若是替《ELIZA》添加一個詞彙庫,讓它在語言分析以外還可以有更多實際回饋會如何?於是他開始編寫《Ecala》,可以說是致敬《ELIZA》的應用軟體。
就在 Daglow 開發 2 週後,他發現自己透過這件事已經學會了足夠的程式知識,或許可以開始嘗試開發遊戲了,於是他的重心逐漸從《Ecala》轉變到製作遊戲上。
這件事可以說是 Don Daglow 開發遊戲的契機,在 1975 年,他開發了被《龍與地下城》啟發的文字冒險遊戲《Dungeon》,在 1991 年,推出了《絕冬城之夜》。
文字冒險類遊戲
1970 年代是文字冒險遊戲的興盛期,除了上面提到的《Dungeon》外,還有《Colossal Cave Adventure》以及後來的《Zork》。這類遊戲主要通過文字描述場景和情境,玩家也以文字輸入指令來與遊戲互動,然後遊戲又會依據指令給出新的描述,形成一種持續的互動循環。
《Puppy Love》
1986 年在 Macintosh 上推出的《Puppy Love》,玩家是一隻小狗的主人,剛開始小狗會在院子裡跑來跑去,並自己表演一些動作,此時玩家可以按下空白鍵並為這個動作命名,之後玩家如果再次輸入名稱,狗狗便會嘗試表演該動作。玩家可以透過給狗狗骨頭當作獎勵,這樣便可以讓小狗完全學會這個動作,這也是早期遊戲 AI 在互動性上的代表作品。
《Wonder Project》
1994 年在超級任天堂上推出的《Wonder Project J》,主角皮諾是一個有著 12 歲少年外表的擬人機器人,身體內安裝著尚未完全啟動的最新裝置「J 迴路」。玩家要透過與皮諾的互動來教導他學習 7 種重要的事物,當接通這 7 條迴路之後,便可以完全開啟 J 迴路,進入故事最後章節。
到了 1996 年,《Wonder Project J》在 N64 上的續作《Wonder Project J2》,主角變成了有著 15 歲少女外表的擬人機器人裘瑟特(Josette)。遊戲同樣要藉由機器人的學習流程,透過各種的互動方式來讓角色學習新事物。
《人面魚》
1999 年在 Dreamcast 上的《人面魚》,玩家可以飼養並透過麥克風與遊戲中的「人面魚」進行語音對話,結合了模擬養成與互動體驗。《人面魚》在當時具有非常創新的對話系統,被認為是很早期的對話型 AI 作品。
在 2017 年 3 月出版的《人工知能》期刊當中,有一篇與《人面魚》製作人齋藤由多加的訪談文章。裡面提到說《人面魚》其實並非真正理解玩家的語音,而是通過「引數」以及「預設腳本」的匹配來模擬對話。引數可以想成是與玩家對話過程中提取出的關鍵詞或是標籤,比方說系統可能會從預設的 100 個感動名言,結合引數來生成回應,這種回應可以讓玩家感覺人面魚真的理解自己。
這種設計類似於早期《ELIZA》的對話系統,但《人面魚》更進一步,讓角色能「記住」玩家的先前對話,並在後續互動中加以應用,增強對話的連貫性。
此外,齋藤也很注重語調和節奏在對話中的重要性,例如 AI 立即回答你「真的?」和停頓後回答「…真的?」給人的感受完全不同。
另一個對話範例如下:
「我要和他分手」
「你真的要和他分手?為什麼?」
「因為他很煩人」
將回應省略後會變成:
「我要和他分手」
「真假?為啥?」
「他很煩」
省略後的對話更自然,並通過推測增強了雙方的情感聯繫。齋藤認為透過語調和節奏可以讓對話更具情感共鳴。
還想知道更多關於《人面魚》的開發故事也可以參考我們過去的文章:
[GDC2017]人見人厭卻又無法忽視!《人面魚》的誕生故事
《くまうた》
最後這款也是森川幸人的作品,2003 年在 PS2 上的《くまうた》,玩家要教導熊唱演歌。演歌的歌詞以及曲調,將會從數個選項當中選出關鍵字,然後再由熊創作出來。玩家若是覺得哪邊不滿意,也可以跟熊溝通修改。當一切準備就緒後,熊將會穿上特別服裝透過遊戲中合成的聲音演唱演歌。
現在大家講到 AI 直覺可能都會想到 ChatGPT 之類的服務,但在過去沒有這些東西,所以每款遊戲都有自己獨特的語言技術。講者認為要理解遊戲 AI 最棒的方法就是學習它的歷史,遊戲 AI 還有許多尚未被發掘出來的潛力。