2010年11月28日 星期日

人工智慧



人工智慧(Artificial Intelligence; AI)就是機器執行我們認為需要智慧之工作的能力。比方說,在真實生活裡,當一名警察徒步追捕一個人時,他一定會想盡辦法抄近路。所謂的近路需視這名警察對他位在哪裡,要去哪裡,以及對追捕地區當地環境的了解而決定。在線上遊戲裡,主角要做到類似這種行為,可以用編寫遊戲程式的方式達成。這就是一種人工智慧的應用。

人工智慧的概念已經出現很長一段時間,早自十八世紀起,一些著名的哲學家就曾經爭論過機器會不會思考的問題。但人工智慧的概念受到一般社會大眾注意,是始自1980年代大型遊樂場遊戲的流行。直到1997年,IBM超級電腦深藍(Deep Blue)挑戰西洋棋大師卡斯帕洛夫(Garry Kasparov)成功,人工智慧才真正引起一般人的關注。那次著名的六局四勝比賽中,卡斯帕洛夫落敗,人工智慧則寫下首度超越人類智慧的歷史。此後人工智慧即深入比西洋棋更複雜的遊戲中。目前一些即時戰略遊戲所用的人工智慧,令人嘆為觀止。

大概知道什麼是人工智慧以後,我們現在就來看看人工智慧可以用來做些什麼,人工智慧在遊戲裡到底扮演什麼樣的角色。以下就是目前人工智慧在遊戲裡一些主要的用途。

尋找路徑
對所有的遊戲開發工程師,尤其是對人工智慧還陌生的程式設計師而言,這是一項最重大的課題。尋找路徑,顧名思義,就是尋找一個點到另一個點之間的路徑。在暗黑破壞神之類的遊戲裡,玩家只要按到某個點,角色就會走到那個點。當走到那個點的路上將碰到一個物件時,角色會繞過物件繼續前進。在大部份這類先進的遊戲裡,角色所走的整個路徑,其實是從玩家按到那個點的那一刻開始計算(而不是從角色走出第一步時才計算)。

同樣地,尋找路徑的技術用在遊戲中的敵人時,一個怪獸可以被設計成跳過那個物件向角色直奔。

產生關卡
某些遊戲會在運行過程中建立隨機但智慧型的關卡吸引玩家。比方說,當玩某個遊戲兩次時,關卡的建構(如房間和牆),可能第一次和第二次都一樣,但敵人和神秘項目的位置第二次可能會不同。或者,整個關卡都可能完全改觀,如迷宮系統,這類關卡就是用人工智慧自動產生。

設計敵人行為
遊戲裡的敵人使用尋找路徑技術,可以找到角色所在的位置。但當敵人到了角色面前會做出什麼舉動?是拿一把劍刺它?還是臨陣脫逃?還是跟角色聊聊?這是根據控制敵人舉動的人工智慧選項所決定。對全球發行的超大型遊戲來說,這種人工智慧可能算是最複雜的元件之一。

建立神經網路
神經網路是一個會學習的人工智慧,它會根據遊戲進行中現場即時估算的內部數值參數產出機械反應,而在不同場合做出不同行為。這個概念是近年才開被用到遊戲設上。像一些玩家與AI對抗的戰略遊戲裡,雙方都配備有飛機、坦克、軍艦和士兵。假設玩家不斷用飛機攻擊敵軍,人工智慧就會從這個經驗中學習。它就會想:「嘿!這樣下去不是辦法!我要採取行動阻止飛機繼續攻擊。哈!有了!我就派出坦克去轟掉那飛機!」這種人工智慧就非常人性化。它會辨識行為模式,判斷行為模式對自己不利,然後採取行動,破壞這種行為。

AI要有輸有贏
有件事非常重要需要特別注意,就是一個人工智慧要能在遊戲裡發揮最佳功效,應該有不同等級的難易度。比方說,假設一個西洋棋遊戲裡,玩家對抗的是深藍,那玩家顯然是輸定了。可是,遊戲能讓玩家覺得好玩,最好的就是玩家有機會贏,而且最好是讓玩家知道有機會贏,那一旦玩家贏了就會有一種成就感。因此遊戲的難易度必須取得一個平衡。不過,無論如何,人工智慧的設計還是要盡可能做到最佳。因為設計到最佳程度的AI,隨時還是有辦法讓它變笨,或讓遊戲有時用有時不用AI,但要在AI製作完成後讓它變得更聰明就相當困難了。比方說,為一個西洋跳棋遊戲建立了一個絕對不會輸的AI之後,要把遊戲變得簡單些,只需要讓電腦在選擇下一步時,採用隨機取樣方式,不使用人工智慧。這樣做雖然讓人工智慧不是那麼厲害,可是郤能讓遊戲比較好玩。但到底要讓人工智慧笨到什麼程度?那只能由玩家玩一玩試試才能知道。

2 則留言: