1. 程式人生 > >C++遊戲開發需要閱讀的書籍

C++遊戲開發需要閱讀的書籍

發現大家都在留言中說要推薦一下游戲開發相關的書籍,我這裡就把各個階段(從零基礎開始)的推薦教程列出來吧,平時我寫這個系列的筆記就參考了下面的很多書籍,大家感興趣的話,可以深入去學習(推薦去買實體書,這樣就不用整天盯著電腦螢幕看傷害眼睛,健康是金錢買不來的): 第一階段,首先是C++的精通。推薦《C++ Primer》,之後《Effect C++》 第二階段,熟悉windows下的程式設計。推薦看《Windows程式設計》。 第三階段,Visual C++的學習。推薦的書目有孫鑫老師的《VC++深入詳解》和孫鑫老師的vc視訊教程。以及侯俊傑老師的《MFC深入詳解》,與時俱進的有《Visual C++2010入門經典》。
(第二階段和第三階段可以結合著來學習,有很多知識是相輔相成的,並沒有什麼大的界限。)
第四階段,開始學習專門介紹遊戲開發的教程(有DirectX和OpenGL兩條路可選,這裡我們選擇DirectX,DirectX在國內為主流。具體比較請移步最近剛寫的這篇文章 ),推薦書籍為《DirectX 9.0 3D遊戲開發程式設計基礎》(封面為一個紅龍的),《Windows遊戲程式設計大師技巧》,《Direct3D遊戲開發技術詳解》等等,當然這類教程就比較多了,新出的有很多,DirectX相關的層出不窮,也可以選擇剛發行不久的新書,畢竟上面講的知識比較前沿與更具成熟性。(依然感謝
的指出,為什麼我沒有推薦專門講解3D程式設計數學基礎的教程。我沒有專門指出來,是因為幾乎每一本Direct3D教材裡面都有一章到幾章有關必備數學基礎知識的講解。我覺得單獨來學數學基礎沒必要,費時且費力,我們只要在Direct3D或者OpenGL教材裡掌握相關的數學知識,那就足夠了。)
還有什麼經典的書籍,歡迎大家交流補充~~ (有一位兄弟提到,《遊戲程式設計精粹》系列的書也比較經典,都是從事遊戲開發多年的全球頂尖遊戲工程師的肺腑之言,雖然經常會有個別錯誤- -,目前出了8本了,大家可以去看看) ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 經常有些朋友問我,想學習遊戲開發,應該做些什麼?

首先,遊戲程式設計也是程式設計,一些程式設計的基礎書籍是必須的,
這類書籍沒有太多推薦,主要看你想學習的語言。

基礎書籍不用看太多,也不用看很深,重要的是看的時候要動手。
當你還不熟悉的時候,開發時最好時刻準備一本基礎書在身邊,開發遇到什麼問題可以隨時翻閱:

關於基礎: 0 C#

1C++primer中文版
本書是久負盛名的C++經典教程,其內容是C++大師Stanley B. Lippman豐富的實踐經驗和C++標準委員會原負責人Josée Lajoie對C++標準深入理解的完美結合,已經幫助全球無數程式設計師學會了C++。 對C++基本概念和技術全面而且權威的闡述,對現代C++程式設計風格的強調,使本書成為C++初學者的最佳指南;對於中高階程式設計師,本書也是不可或缺的參考書。
購買連結:

點我跳轉

關於設計模式:

2Python程式設計實戰:運用設計模式、併發和程式庫建立高質量程式

此書由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(繼承體系)方面的專家級指導。

購買連結:點我跳轉

關於編寫多執行緒程式:

3Linux 多執行緒

本書主要講述採用現代C++ 在x86-64 Linux 上編寫多執行緒TCP 網路服務程式的 主流常規技術,重點講解一種適應性較強的多執行緒伺服器的程式設計模型,即one loop per thread。這是在Linux 下以native 語言編寫使用者態高效能網路程式最成熟的模 式,掌握之後可順利地開發各類常見的服務端網路應用程式。本書以muduo 網路庫 為例,講解這種程式設計模型的使用方法及注意事項。

購買連結:點我跳轉

關於windows下客戶端開發:

4MFC深入淺出

購買連結:點我跳轉 

關於windows的核心內容:
Windows核心程式設計

購買連結:點我跳轉 

關於圖形API:

一般就是DirectX或者OpenGL之間選一個。如果考慮到跨平臺,那麼OpenGL是首選. 如果只在windows的平臺,則DirectX是首選。

5OpenGL程式設計指南

購買連結:點我跳轉

6DirectX 10 3D

購買連結:點我跳轉

好了,入門之後,是你鞏固和拓展視野的階段。現在看計算機圖形學就比較合適了。

但是請注意,以上的書籍都是基礎,必須消化,要不然下面的書籍就會異常難懂。

關於計算機圖形學:

7吐血推薦Real-Time Rendering, Third Edition(RTR)。相對於製作CG(動畫電影、電影特效)的離線渲染,實時渲染是遊戲的核心部分,這本書被譽為遊戲引擎開發者的天書。這本書的內容非常多,涉及實時渲染的方方面面,寫作手法亦非常簡明易讀。但由於許多細節內容實在放不進這本超過1000頁的著作,但作者們非常仔細地包含了大量的參考文獻,可以作為這個領域的指南。但第3版已經是2008年出版,期待第4版。

這本書算得上是所有圖形程式設計師的必讀書籍和參考手冊了。最近剛出了第三版(更新:已經有電子版了)。可惜國內只有第二版,稍微有點老,如果實在找不到第三版,還是值得一讀。

關於Shader:

Cg_tutorialThe 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 PhysicsGame 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也是居家必備,但不夠系統)。