遊戲編程相關的好書有哪些推薦?
最近在學習unity3d,想自己做iOS獨立遊戲開發,軟體使用方面沒有什麼問題,但編程方面的學習遇到了困難,之前看了一本《head first C#》入門,感覺挺不錯,基本概念差不多都弄明白了,也可以實現一些簡單的邏輯,做一些簡單的遊戲。但現在想深入學習遊戲編程的東西,從網上下的很多項目的代碼很難看懂,感覺是有很多設計模式的東西不明白,希望做遊戲開發的朋友們能給些建議,推薦些書籍資料以及網站(中英文都可以),以便能少走一些彎路。
感謝邀請
首先,遊戲編程也是編程,一些編程的基礎書籍是必須的,
樓主提到的《Head First》系列都比較簡明易懂,值得一看。這類書籍沒有太多推薦,主要看你想學習的語言。基礎書籍不用看太多,也不用看很深,重要的是看的時候要動手。
一些關鍵問題要弄明白,例如內存管理。當你還不熟悉的時候,開發時最好時刻準備一本基礎書在身邊,開發遇到什麼問題可以隨時翻閱(當然,Google也是居家必備,但不夠系統)。其次,設計模式,很多初學者覺得它很難懂,是因為沒有明白設計模式的目的。
設計模式是解決某類問題的方式,要弄懂它,你需要明白」某類問題「是什麼。如果你開發的時候都沒有遇到這類問題,那麼你也很難真正明白某種設計模式的精髓。所以我覺得可以先大概了解一些常見的設計模式和它們所解決的問題,然後當你遇到某類問題的時候可以想起某個模式,然後再深入研究它。而介紹設計模式的書籍我推薦兩部,一個是《敏捷軟體開發,原則,模式,實踐》 :敏捷軟體開發 (豆瓣),另一個是《Game Programming Patterns》:http://gameprogrammingpatterns.com/。前者是一個很全面的軟體工程的書籍,主要講用敏捷的方法來進行軟體開發,裡面有相當一部分介紹商業軟體常用的設計模式。雖然這本書不是遊戲領域的,但是它講到了很多編程的知識都適用在遊戲領域的編程當中。這本書有C#版。
後者是專註遊戲編程領域裡面的設計模式,它涵蓋了遊戲邏輯,遊戲編輯器,和遊戲引擎的編程。它每一節都是從一個遊戲編程的問題開始展開,然後提出一些解決方案,最後將解決方案規範化,形成設計模式。雖然很多時候它沒有給出很完善的設計模式方案,但是它給出了很多線索,可以讓感興趣的讀者深入研究下去。這本書是開源的,不用錢,不過是英文版,例子是用C++寫的。
最後,就是遊戲編程細分領域的書籍了,例如AI,物理,圖形等等,
這些方面的入門書籍我只看過AI方面的,例如《遊戲人工智慧編程案例精髓》和《遊戲開發中的人工智慧》,它們都是比較粗略地介紹人工智慧在遊戲中的基本運用,但是要寫出真正能用的代碼,還是需要看一些相關的論文,博客等等。最後附送一些對我非常有幫助的遊戲編程博客:
Amit』s Game Programming Information 一個很全面的資源集合http://www.aisharing.com/ 專註AI的博客,不過有一段時間沒更新了------------Update 1------------感謝 @sxd 和 @Finney Tang 的提醒,AI分享站的域名改成 AI分享站 了
@伍一峰提到的設計相關書籍我很贊同,再補充一些自己看過的和遊戲開發密切相關的好書。
《遊戲編程精粹》這是一個系列,目前供八本,都是業界人士寫的文章集。最近半年多都在做項目,所以還只看了第一版。- 部分內容過於老舊,但是還是有很多值得學習的技術。
- 涉及面廣,基礎編程、數學、人工智慧、圖形學、音頻、網路應有盡有。
- 雖然是文章集,但是也有很多專題,可以深入某項技術。如果想要徹底理解A*演算法,一定要看第一版中關於A*演算法的那幾篇連載。
- 這是一本OpenGL學習者必看的書
- 第八版是完全基於Shader的,而前七版都沒有著重介紹Shader,都是老式的API
《Game Engine Architecture》
前面已經有人提到過了,我就不再贅述了。不管你是否從事引擎開發,都應該認真拜讀此書。《Real Time Rendering: 3rd》
千萬不要看第二版的中文版,坑爹!這本書中有一些無聊的物理知識,千萬不要因此而作廢此書。這是一本講解了各種圖形學概念的書籍,不過看此書之前最好熟悉OpenGL或DirectX,不然看著會比較辛苦。《The Art Of Game Design》
這是我看過的唯一一本好的設計書籍。是由很多個點子組成的一本書。設計遊戲之前,不妨瀏覽一下各個點子(在附錄中有完整的lens列表)另外,還有一些不錯的資料。
OpenGL官方wikihttp://www.opengl.org/wiki/Main_Page 這裡有很多瑣碎、但很重要的概念。包括:
- 最佳實踐
- 常見錯誤
- 驅動緩存和GPU緩存的概念(這個非常重要)
- OpenGL中各種對象的明確描述
Box2D用戶手冊,Havok用戶手冊
如果你決定使用以上兩個物理引擎,此兩本足矣。開源項目這也是非常重要的學習途徑。現在知名的、系統的遊戲編程書籍都是關於主機遊戲的,移動遊戲開發近年才火起來,需要的技能很不一樣,使用工具更新換代也快,Unity只是目前火的一個,做獨立開發應該是夠的,但如果想往底層挖的更深的話就要看基礎知識了
阿貓推薦的Game Engine Architecture是很好的大雜燴,介紹了遊戲引擎的各個部分,每部分還給了如果感興趣想繼續研究那方向的書單
網路方面這個Blog上有很不錯的教程:
Game Development Tutorials是個泰坦佛的開發者寫的,從基礎教起
同一個Blog上也有遊戲物理的教程圖像方面有一套權威級的系列GPU Gem,是業界十幾年來邊出新科技邊出的書,對圖像編程有基本知識後可以看
AI方面有AI Game Programming Wisdom,也是邊出新科技邊出的書遊戲編程是一個非常瑣碎細節的工作,需求變化之快,經常讓我想跟策劃幹上幾架。
雖然我還沒有能力做出方向性的建議,但是我覺得做任何事情之前,都應該先對本領域的工作有一個大致性的了解。使得自己可以站在更高一些的視角(品味?)去看待將要學習的東西。
所以我推薦兩本大雜燴:
&
後面一本剛剛在國內由 @Milo Yip 大神翻譯出來。
看的時候不用特別仔細,對實際遊戲編程工作中可能遇到的問題有一個大致的印象就好。遇到問題不會抓瞎,知道去google,github,stackoverflow甚至知乎問哪些問題就行。
Game Coding Complete
遊戲之旅:我的編程感悟,雲風著
個人覺得遊戲開發好像是件非常複雜的事情,需要大量閱讀,不是一兩本書能解決的。
詳見 @Milo Yip 大神的豆列http://www.douban.com/people/miloyip/doulists/順便呼喚大神 @Milo Yip 來分享一下其閱讀量有多大你看了那本就夠了,你看不懂不是因為裡面有設計模式,而是你寫的程序少。程序寫多了,即使從沒看過設計模式的書,也能自己領悟。
多寫代碼就行了,沒什麼捷徑,也沒有所謂好書,寫多了你自己就會知道那些書是你需要的。
只說一點建議。C#這類語言,本身支持面向對象設計思想,其精髓在於抽象,以抽象的方式,降低程序設計的複雜度。你記住抽象這兩個字,寫代碼就行了,寫2年就能得心應手了。C++ 之類的編程語言基礎就不說了,推薦一本《SFML Game Development》,個人覺得將C++,設計模式及遊戲編程融合到極致。
如果是客戶端相關的書籍,可參考Milomilo的相關書目推薦。如果是服務端相關書籍,可適當增加網路編程相關的書籍,如Unix環境高級編程,TCP/IP等書籍最好的書籍就是多看看代碼,看書的時候結合實踐。
推薦閱讀:
※請推薦幾本講評曹操的書?
※傳統優化演算法與智能演算法如何界定其區別?有相關這類的書籍可以推薦嗎?
※求推薦從事臨床試驗行業的、適合新人看的、能增長專業知識的書或者論壇?
※有哪些自學紡織學的書籍值得推薦?
TAG:書籍推薦 |