
lua遊戲ai開發指南
遊戲人工智能(artificial intelligence,ai)是決策制定和動畫回放的結合體。經典ai或學術ai僅僅關注于找到正确的決策,遊戲ai則負責在遊戲運作期間做出大量的決策。将遊戲ai與動畫分開處理是常見的錯誤。本書通過把動畫和運動系統直接內建到ai系統中來杜絕這一問題。決策制定和決策執行之間微妙的差異會改變ai程式員不得不關注的諸多方面。
遊戲ai的另一個大問題是,不同類型的遊戲對ai有不同的需求和實作政策。為了避免毫無重點的平鋪直述,本書将隻關注一種遊戲類型,即第一和第三人稱動作遊戲。将ai限定在這個前提下,使得我們可以用一種深入的、基于教程的方法來建立一個完整的ai系統。
本書内容
第1章 從建構沙箱開始 這一章會學習項目的組織方式,以及lua腳本與c++代碼的互動方法。在這裡,你會發現ai沙箱是建構在一組開源技術之上的,我們首先會在這一架構中內建lua、ogre3d、opensteer和bullet physics。
第2章 建立并移動智能體 這一章我們先從最底層ai開始建構我們的示例程式,包括與世界的互動、原地轉向以及移動。接下來,将使用opensteer庫來實作智能體的搜尋、躲避以及群體移動。
第3章 角色動畫 這一章将繼續建構ai沙箱,我們會介紹ogre3d中的動畫回放和lua腳本的資源管理。我們會把用于控制卡通片段、動畫狀态機和分層動畫的底層結構整合到沙箱中。
第4章 意識體控制 這一章将整合智能體的動畫處理和原地轉向及移動。我們将實作兩種處理意識和身體互動的方法。第一種方法集中于處理代理的決策和行動之間的延遲,而第二種方法則關注于代理行為的感覺品質。
第5章 導航 這一章首先實作本地移動,然後研究長距離的移動和路徑規劃。我們将在ai沙箱中內建由recast庫提供的導航網格生成功能,以支援由detour庫提供的a*尋路算法。
第6章 決策制定 這一章在ai代理的決策制定中加入智能。本章将介紹使用lua腳本來實作建立子產品化和可重用的決策邏輯的各種資料結構和方法。我們将在沙箱中內建決策樹、有限狀态機以及行為樹。
第7章 知識表達 這一章為單個智能體添加存儲長期和短期資訊的能力。我們給lua暴露了一種集中式的存儲和傳播智能體關于世界資訊的方法。
第8章 感覺 這一章把查詢世界資訊的服務接口暴露給了智能體,還內建了一些可見資訊和基于通信的資訊的擷取方式。
第9章 政策 這一章為沙箱暴露了關于環境的高層空間資訊。本章通過一種基于格栅的世界表達方法,各種知識來源被合并到一起來提供關于環境的準确的政策視野,用于支援決策制定過程。
第3章 角色動畫
第4章 意識體控制
第5章 導航
第6章 決策制定
第7章 知識表達
第8章 感覺
第9章 政策