Game Physics Engine Development
看這本書一定要對照着作者github上的源碼https://github.com/idmillington/cyclone-physics/來看。
由於作者本人已經太長時間不更新代碼,也不再回應issue,但是幸而給出了windows環境下demo的可執行文件,所以建議讀者只看看代碼學習下思路即可,不要再在嘗試把代碼跑起來這方面浪費時間。
回到這本書本身。遊戲物理引擎是遊戲引擎中非常困難的一塊,但是關於遊戲物理引擎的學習資料又比較少,初學者面對PhysX或者bullet龐大的代碼庫難免感覺無從下手。
這本書好處就在於比較全面的介紹了遊戲物理引擎中最最基礎的部分:粒子和剛體的物理動力學模擬,碰撞的檢測和處理。當然這本書並沒有涵蓋比較進階的部分:比如流體、布料,以及是複雜的形狀的碰撞檢測。想直接瞭解這一塊的讀者不免失望,但對於初學者來說,有了本書的基礎,學習進階的內容也會更有底氣。
作者直言自己給出的實現也僅僅是多種實現方式中的一種,書中多處都有對同一個問題都有哪些常見的解決方式,這些方式都有哪些優缺點都進行了討論,這些討論是本書的精華之一。
作者也指出,遊戲物理引擎不是爲了建模仿真真實的世界,而是儘可能高效地讓遊戲中物體的運動顯得真實可信,其中有許多實現方式、參數的選取都是大量的實踐經驗的總結。認識到這一點對遊戲物理引擎的開發也是非常重要的。
這本書給出的代碼,體現了數據和邏輯分離的思想。這種思想在遊戲編程中是較常用的,絕不侷限於遊戲物理引擎這一塊。