C++遊戲開發需要閱讀的書籍
第四階段,開始學習專門介紹遊戲開發的教程(有DirectX和OpenGL兩條路可選,這裡我們選擇DirectX,DirectX在國內為主流。具體比較請移步最近剛寫的這篇文章 ),推薦書籍為《DirectX 9.0 3D遊戲開發程式設計基礎》(封面為一個紅龍的),《Windows遊戲程式設計大師技巧》,《Direct3D遊戲開發技術詳解》等等,當然這類教程就比較多了,新出的有很多,DirectX相關的層出不窮,也可以選擇剛發行不久的新書,畢竟上面講的知識比較前沿與更具成熟性。(依然感謝的指出,為什麼我沒有推薦專門講解3D程式設計數學基礎的教程。我沒有專門指出來,是因為幾乎每一本Direct3D教材裡面都有一章到幾章有關必備數學基礎知識的講解。我覺得單獨來學數學基礎沒必要,費時且費力,我們只要在Direct3D或者OpenGL教材裡掌握相關的數學知識,那就足夠了。)
首先,遊戲程式設計也是程式設計,一些程式設計的基礎書籍是必須的,
這類書籍沒有太多推薦,主要看你想學習的語言。
基礎書籍不用看太多,也不用看很深,重要的是看的時候要動手。
當你還不熟悉的時候,開發時最好時刻準備一本基礎書在身邊,開發遇到什麼問題可以隨時翻閱:
1《C++primer中文版》
本書是久負盛名的C++經典教程,其內容是C++大師Stanley B. Lippman豐富的實踐經驗和C++標準委員會原負責人Josée Lajoie對C++標準深入理解的完美結合,已經幫助全球無數程式設計師學會了C++。 對C++基本概念和技術全面而且權威的闡述,對現代C++程式設計風格的強調,使本書成為C++初學者的最佳指南;對於中高階程式設計師,本書也是不可或缺的參考書。
購買連結:
關於設計模式:
2《Python程式設計實戰:運用設計模式、併發和程式庫建立高質量程式》
此書由Python開發者社群知名技術專家Mark Summerfield親筆撰寫,全球資深Python專家Doug Hellmann作序鼎力推薦,是Python領域最有影響力的著作之一。書中通過大量實用的範例程式碼和三個完整的案例研究,全面而系統地講解了如何運用設計模式來規劃程式碼結構,如何通過併發與Cython等技術提升程式碼執行速度,以及如何利用各種Python程式庫來快速開發具體的應用程式和遊戲。
購買連結:點我跳轉
關於編寫良好C++程式碼風格:
《Effective C++:改善程式與設計的55個具體做法(第3版)》
本書一共組織55個準則,每一條準則描述一個編寫出更好的c++的方式、每一個條款的背後都有具體範例支撐。第三版有一半以上的篇幅是嶄新內容,包括討淪資源管理和模組(templates)運用的兩個新章。為反映出現代設計考慮,對第二版論題做了廣泛的修訂,包括異常(exceptions)、沒汁模式(design patterns)和多執行緒(multithreading)。
高效的classes、functions、templates和inheritance hierarchies(繼承體系)方面的專家級指導。
購買連結:點我跳轉
關於編寫多執行緒程式:
3《Linux 多執行緒》
本書主要講述採用現代C++ 在x86-64 Linux 上編寫多執行緒TCP 網路服務程式的 主流常規技術,重點講解一種適應性較強的多執行緒伺服器的程式設計模型,即one loop per thread。這是在Linux 下以native 語言編寫使用者態高效能網路程式最成熟的模 式,掌握之後可順利地開發各類常見的服務端網路應用程式。本書以muduo 網路庫 為例,講解這種程式設計模型的使用方法及注意事項。購買連結:點我跳轉
關於windows下客戶端開發:
4《MFC深入淺出》
購買連結:點我跳轉
關於windows的核心內容:
《Windows核心程式設計》
購買連結:點我跳轉
關於圖形API:
一般就是DirectX或者OpenGL之間選一個。如果考慮到跨平臺,那麼OpenGL是首選. 如果只在windows的平臺,則DirectX是首選。
5《OpenGL程式設計指南》
購買連結:點我跳轉
6《DirectX 10 3D》
購買連結:點我跳轉
好了,入門之後,是你鞏固和拓展視野的階段。現在看計算機圖形學就比較合適了。
但是請注意,以上的書籍都是基礎,必須消化,要不然下面的書籍就會異常難懂。
關於計算機圖形學:
7吐血推薦《Real-Time Rendering, Third Edition》(RTR)。相對於製作CG(動畫電影、電影特效)的離線渲染,實時渲染是遊戲的核心部分,這本書被譽為遊戲引擎開發者的天書。這本書的內容非常多,涉及實時渲染的方方面面,寫作手法亦非常簡明易讀。但由於許多細節內容實在放不進這本超過1000頁的著作,但作者們非常仔細地包含了大量的參考文獻,可以作為這個領域的指南。但第3版已經是2008年出版,期待第4版。
這本書算得上是所有圖形程式設計師的必讀書籍和參考手冊了。最近剛出了第三版(更新:已經有電子版了)。可惜國內只有第二版,稍微有點老,如果實在找不到第三版,還是值得一讀。
關於Shader:
《Cg_tutorial》和《The Complete Effect and HLSL Guide》都是不錯的入門材料,當然還有SDK文件。關於光照:《Advanced Lighting And Materials With Shaders》詳細介紹了各種光照模型和技術。《GPU Gems》 1~3冊肯定是必讀的,雖然有1,2有中文版,但某些翻譯並不是很理想,強烈建議直接看英文版。
關於地形:
《Real Time 3D Terrain Engines Using C++ And DX9》非常全面的討論了關於地形渲染的各種技術,至少應該把第5~9章都瀏覽一遍。之後便可以 到virtual terrain查閱近期的地形渲染技術。
關於模型匯入和動畫:
《Advanced Animation with DirectX》,僅此一本足以。
關於物理:
《Game Physics》和《Game Physics Engine Development》都不錯。《Real-time Collision Detection》是碰撞檢測方面最好的書,可惜目前還沒有電子版。
關於關卡:
《Level of Detail for 3D Graphics》
關於遊戲引擎架構:
《Game Engine Architecture》
關於AI:
《Programming Game AI by Example》非常不錯,當然《AI Programming Wisdom》系列也是必讀作品,不過目前網路上只有1~2冊。
關於網路:
《C++網路程式設計》
至於那些“All in one”或者n天較你寫出個FPS遊戲的書就不要讀了,這類書的通病是什麼都說了,結果什麼也沒說清楚。
對遊戲開發者來說英文閱讀能力是最重要也是最基本的工具之一,因為你遇到的大部分資源都將是英文的,不要總等著別人為你翻譯。慢慢嘗試著閱讀英文資料,你會發現其實也並沒有那麼難:)(當然,Google也是居家必備,但不夠系統)。