很多遊戲開發書籍多少都會談到 AI,但是大部分的書必須談很多其他主題,所以分配給 AI 的篇幅就很少,無法深入。雖然也有很多好書專談遊戲AI,但多數都是針對有經驗的 AI 開發人員,而且通常集中在特定而高階的主題。這本《AI for Game Developers》(中譯本:遊戲人工智慧)正是為遊戲開發的AI初學者而寫的。

本書是針對遊戲軟體 AI 的初學者,讀者不需要有任何 AI 背景,然而讀者必須懂C/C++語言,也必須懂得基本向量數學在遊戲中的應用。本書使用到大量的數學,包括線性代數、向量幾何、微積分。
因為技術太多太廣,而且幾乎每種技術都有許多變化。本書只介紹新手必須徹底瞭解的「定性」(傳統)和「非定性」(新式)AI 技術。

只介紹新手必知的AI 技術

第 1 章定義何謂「遊戲 AI」,討論當前 AI 技術的發展,以及 AI 技術的未來。第 2 章討論基本的追逐和閃躲技術,以及進階的攔截技術,也談及這些技術於塊狀環境和連續環境的變化。第 3 章說明許多影音遊戲經常出現固定模式的移動,例如太空船的降落。第 4 章說明A-life 演算法的實例,A-life 演算法除了可以做出效果很好的群聚行為外,也是高階群體運動的基礎。第5章介紹一個有趣的方法「靠位能移動」。

第 6 章介紹基本路徑尋找及航點應用,遊戲開發人員使用很多技術在遊戲環境中尋找路徑。沒有談路徑尋找演算法的主力A*,就不算完整交代路徑尋找這主題,第7章整章都在討論A* 演算法。今日的程式設計師通常只寫描述引擎,而由設計者使用工具建立內容和定義 AI,第 8 章探討一些開發人員,把描述系統應用在遊戲中的技巧,以及他們的益處。第 9 章介紹「有限狀態機」的基礎以及實作方式,這是遊戲軟體 AI 的基本要素。第 10 章介紹模糊邏輯,告訴你模糊邏輯如何能夠優於傳統邏輯技術。

技術上而言,模糊邏輯和有限狀態機都落在規則法這個大傘之下,第 11 章討論規則法以及其他變化法。第 12 章是「或然率」,遊戲開發人員時常使用簡單的或然率,使其遊戲較難以預測,這種簡便的不可預測性,讓遊戲開發人員可以保有對遊戲的實質掌控。第 13 章介紹不確定狀態下的決策:貝葉斯技術,貝葉斯技術是或然率技術。第 14 章的「神經網路」技術讓遊戲有學習和適應的能力。事實上,從決策判斷到預測玩家行為,都可以應用。第 15 章的基因演算法提供演化遊戲軟體 AI 演化的機會。

由於本書大量使用向量運算,所以附錄介紹向量運算,並示範如何實作一個 C++ 類別,處理 2D 或 3D 模擬程式時所需的向量運算。本書各章彼此獨立。因此,你可以按你想要的次序來讀各章,不用擔心會漏掉前幾章題材。(唯一例外:讀13章之前必須先讀第 12 章。)

書中C++範例可直接運用

書中介紹許多主題的相關理論,並以許多程式範例作為輔助。作者開放程式碼讓讀者使用,你可以在你的程式中自由地運用本書的程式碼,而不必徵求作者的授權許可。

如果你是遊戲 AI 的初學者,你會想將本書介紹的一些技巧,運用到簡單的走道遊戲(例如小精靈Pac Man)或棋盤遊戲(例如黑白棋);你也可以考慮利用可擴充的 AI 工具,寫一個「隊友」,藉此印證你的 AI 構想,而不必去耗費心神撰寫無關 AI 的程式。在第一人稱射擊遊戲的開發圈子,這種作法已經逐漸成為一種標準。

繼《Physics for Game Developers》(中譯本:電玩物理學)之後,David Bourg又寫了這本《AI for Game Developers》,這兩本書都是針對「電玩開發者」而寫。對電玩開發者最重要的三個主題分別是「物理、AI、繪圖」,而David Bourg近期的著作就涵蓋了其中兩本。《AI for Game Developers》談了很多遊戲軟體 AI 的主題,內容深度適合新進開發人員。所以,如果你是遊戲開發新手,或者你是資深遊戲開發人員,需要盡快熟悉 AI 基礎技術,諸如有限狀態機、模糊邏輯、神經網路以及其他議題,這本書就適合你。

AI for Game Developers

David M. Bourg, Glenn Seemann /著
O’Reilly出版
售價:39.95美元
推薦:Amazon三顆半星

《作者簡介》蔡學鏞

清華大學資訊工程碩士,現為寰震科技技術經理、美商歐萊禮出版社顧問、臺灣微軟特約專欄作家。曾任華碩集團軟體工程師、元智大學資訊系講師。

蔡學鏞曾擔任數個研討會講師(包括 JavaTwo、TechEd、資策會)。參與設計清華大學 Java VOD 系統,該系統並獲得第一屆 Java Cup 比賽校園組冠軍。參與設計 Java To .NET Migration,成為美國微軟十大成功案例之一。

蔡學鏞著譯有數本 Java 書籍,並在臺灣和中國的雜誌開闢技術專欄,專長的語言為 C#、REBOL、Java、C/C++。
他的電子郵件信箱 xy.cai@msa.hinet.net

熱門新聞

Advertisement