遊戲人工智慧的基礎技術是「定性」。定性即行為或表現是特定的,而且可以預測的,沒有不確定性;比如說塑造一個怪物角色,沿著XY坐標軸前進,往某目標點移動,直到該角色的XY坐標和目標點的坐標重疊。定性AI技術是遊戲AI的基礎;定性AI技術的結果是可預測的,效率高,易於實現、理解、測試和調試。
本教學操作環境:windows7系統、Dell G3電腦。
遊戲人工智慧 的定義相當寬廣且靈活性很大。無論採取何種手段,只要能給人以某種智能程度的“錯覺”,讓遊戲更能令人沉迷於其中,更具有挑戰性,最重要的就是要更好玩,那才能看做是遊戲AI 。
遊戲 AI 通常分成兩種,定性和非定性。
定性
定性即行為或表現是特定的,而且可以預測的,沒有不確定性。具體實例可以是簡單的追逐演算法。比方說塑造一個怪物角色,沿著 XY 座標軸前進,往某目標點移動,直到該角色的 XY 座標和目標點的座標重疊。
非定性
與定性行為相反,非定位行為有某種程度的不確定性,有點不可預測(不確定到什麼程度與人們對所採用的的AI 的方法的理解的難易程度有關)。具體實例是讓非玩家角色學習到適應玩家的作戰戰術。這樣的學習能力可以利用神經網路、貝葉斯技術或遺傳演算法來得到。
定性 AI 技術是遊戲 AI 的基礎。定性 AI 技術的結果是可預測的,效率高,易於實現、理解、測試和調試。雖然定性方法有很多,但是預先考慮各種場景以及明確寫出所有行為的重擔都會落在開發者的肩上。而且定性方法無法幫助NPC 學習並進化,玩家只要認真觀察一下,就可以預測 NPC 的定性行為。我們可以這麼說,使用定性行為,會限制遊戲軟體的「壽命」。
非定性技術可以讓NPC 自己學習,並進化出新的行為,比如說突現行為(沒有明確指示而出現的行為),讓玩家在玩遊戲時難以預測,增加遊戲可玩性。開發者也無需事先預先所有可能的場景,寫下所有明確的行為。
儘管非定性技術可以增加遊戲的可玩性,但是長久以來,開發者對非定性 AI 保持距離(但現在已逐漸改變)。由於無法預測,就很難測試和調試(因為沒有辦法測試玩家所有可能的行動,以確保遊戲軟體不會出 Bug)。而遊戲開發人員面對的是不斷縮短的開發週期,使得開發者難以全部了解最新的 AI 技術。
另一個因素也限制了非定性技術的發展,最近開始,開發者把他們的注意力更多的放在圖畫的品質上(因為玩家都喜歡美的東西)。結果為了做出更好、更快的圖畫技術,就沒有時間開發更好的遊戲 AI 了。
有限狀態機(finite state machine,FSM)是到處可見的遊戲 AI 技術。第九章的時候我們會詳細學習這部分,有限狀態機的基本概念是列舉出電腦控制的角色的一連串動作或狀態,再利用if-then 條件語句檢查各類情況和滿足條件,再根據判斷結果執行動作或更新角色狀態,或在動作和狀態之間做轉換。
開發者時常會在模糊狀態機(fuzzy state machine)中用到模糊邏輯,讓最後執行的動作難以預測,減少必須以if-then 語句大量列舉條件的重擔。在有限狀態機中,你可能有「if 距離值為10且健康值為100,then 攻擊」這樣的規則,但是模糊邏輯與此不同,它允許你用不太精確的條件設計規則。例如「if 靠近而且夠健康,then 強力攻擊」。模糊狀態機將在第十章時詳細介紹。
在各類遊戲中,非玩家角色的基本任務是必須找出有效地路徑。在戰爭模擬遊戲中,非玩家角色的軍隊必須能夠通過各種地形,避開障礙物,抵達敵軍所在地。第一人稱射擊遊戲中的生物,必須能通過地牢或建築物以便和玩家相遇或逃離玩家視線。這種場景是數不清的。毋庸置疑,AI 開發人員會很關注路徑尋找。第六章我們會談一般的路徑尋找技巧,到了第七章才會談重要的 A* 演算法。
上述的一些技術,只是現有遊戲 AI 技術的少數幾種而已,其他還有以規則為主的描述性系統以及某些人工聲明技術,種類繁多。人工生命系統是一種人造系統,可以展現出符合人性的行為。這些行為屬於突現行為,其發展是結合各種低層次演算法運作後的結果。後面我們會討論人工生命的實例以及其他技術。
遊戲 AI 的下一件大事就是「學習」。遊戲上市後,所有非玩家角色的行為,不再事先安排,遊戲玩的越久,遊戲就會更演化和學習,更具適應性。這樣的遊戲會跟著玩家一起成長,玩家也難以預測遊戲行為,因此能擴展遊戲的生命週期。遊戲會學習並演化,造成了遊戲本身無法預測的特性。
「學習」與「角色行為反應」技術,屬於上文提到的非定性 AI 的範圍,所以有相當大的難度。明確的說,這種非定性的「學習」AI 技術,要花更長的時間開發和測試。再者,要了解 AI 究竟會做什麼也更加困難,這也使得調試變得更困難。這些因素是「學習」AI 技術得以廣泛應用的巨大障礙。不過,這一切都在改變之中。
幾個主流遊戲都用了非定性AI 技術,例如“Creatures”、“Black & White”、“Battlecruiser 3000AD”、“Dirt Track Racing”、“Fields of Battle”以及“Heavy Gear” 。這些遊戲的成功,重新點燃了人們對「學習」AI 技術的興趣,諸如決策樹、神經網路、遺傳演算法以及機率方法。
這些成功的遊戲軟體,運用非定性方法時也搭配使用了傳統的定性方法,只要在最適合並且需要的地方才使用非定性方法。神經網路不是仙丹,無法解決遊戲軟體中所有的 AI 問題,然而你可以在混合的 AI 系統中,解決特定的 AI 任務,並藉此獲得令人印象深刻的結果。這樣的話,你可以把 AI 中不可預測且難以開發、調試和測試的部分隔離出來,同時又能讓你的 AI 系統的大部分,都保持傳統的形式。
更多相關知識,請造訪常見問題欄位!
以上是遊戲人工智慧的基礎技術是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!