遊戲程序員養成計劃

原文:http://blog.csdn.net/yacper/article/details/4727373程序員

與玩遊戲相比,寫遊戲要複雜上千萬倍,除了須要掌握通用的編程技巧之外,還要有至關的圖形學,物理,數學基礎,特別是在國內,因爲相關資料的缺少,更是讓初學者無從下手。下面總結了一些入門方法和比較容易入手的資料。
編程

         首先你要精通一門高級語言,好比C++或者C#,其次,要有良好的英文閱讀能力。對遊戲開發者來講英文閱讀能力是最重要也是最基本的工具之一,由於你遇到 的大部分資源都將是英文的,不要總等着別人爲你翻譯。慢慢嘗試着閱讀英文資料,你會發現其實也並無那麼難:)
windows

         剛開始,你要作的就是選擇一門圖形API,通常就是DirectX或者OpenGL之間選一個。若是考慮到跨平臺,那麼OGL是首選. 若是隻在ms的平臺,則DX是首選。我對OGL並非很瞭解,因此下面大部門資料都是和DX相關的。 網絡

         固然,做爲準備工做之一,你首先要到DirectX Develop Center下載最新版的DirectX SDK。
dom

         入門書籍很是重要,推薦<<Introduction to 3D Game Programming with DirectX 9.0>>(好像去年出了中文版)也就是傳說中的龍書,這能夠說是最好的DX入門教材,Frank Luna從淺入深,討論了DX的方方面面。另外再配上<< Advanced 3D Game Programming With DirectX 9.0>>,書名雖然是advanced,但實際上沒有多少advanced級別的內容。看完這兩本書,你基本上已經對DirectX比較熟 悉了。若是你但願學習XNA,也是同樣的,畢竟XNA是以DX爲基礎。
ide

         不要一開始就看圖形學的書,這個時候你對圖形編程尚未一個基本的感性認識,所以八成看的雲裏霧裏。不要以網上的教程和論壇提問做爲主要學習途徑,找一本 好書,系統學習,效率才最高。不要立刻看SDK裏的例子,不少圖形學的基本原理僅僅經過讀代碼是不會明白的。某些年代太太久遠的書就不要看了,好比 《windows遊戲編程大師技巧》(總看到有人在找這本書)。有人說基本的思想老是不變的,惋惜對於現代GPU來講,不少早期的技術和優化技巧早就過期 了。圖形編程是發展的很是快的技術,看看GPU的發展速度,1~2年就是一代產品的革新。
工具

          好了,入門以後,是你鞏固和拓展視野的階段。如今看計算機圖形學就比較合適了。吐血推薦<<Real-Time- Rendering>>,這本書算得上是全部圖形程序員的必讀書籍和參考手冊了。最近剛出了第三版(更新:已經有電子版了)。惋惜國內只有第 二版,稍微有點老,若是實在找不到第三版,仍是值得一讀。國內其餘全部以圖形學命名的書都有一個共同點:枯燥,過期。只需看看其中二維三維變換和曲線曲面 表示的部分便可。若是這個時候發現你當年數學沒有學好,那麼有三本數學書是爲遊戲程序員量身定製的:<<3D Math Primer for Graphics and Game Development>>, <<Mathematics for 3D Game Programming and Computer Graphics>>和<<Essential Mathematics Guide 2nd Edition>>,第一本書有中文版,最後一本則是08年纔出的新書。
學習

         其實入門以後,就沒有固定的學習路線了,最好根據你感興趣的方向來學習。
優化

Shader方面:《Cg_tutorial》和《The Complete Effect and HLSL Guide》都是不錯的入門材料,固然還有SDK文檔。<<Shaders for Game Programmers and Artists>>有大量入門的例子。<<Advanced Lighting And Materials With Shaders>>詳細介紹了各類光照模型和技術。<<GPU Gems>> 1~3冊確定是必讀的,雖然有1,2有中文版,但某些翻譯並非很理想,強烈建議直接看英文版。ShaderX系列也是很經典的系列,每一年出版一本,包含 了最新的實時渲染技術,現在已經出了第6冊了。不過網絡上只能找到1~3冊。1,2冊大部分shader都是用asm寫的,不過看懂原理,轉換爲HLSL 也並不難。另外Nvidia SDK和ATI SDK也是學習shader的重要資源。最後還有剛出的<< Programming Vertex, Geometry, and Pixel Shaders>>

動畫

地形:<<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>>是碰撞檢測方面最好的書,惋惜目前尚未電子版。

LOD:<<Level of Detail for 3D Graphics>>

Ray tracing:<< Physical-Based Rendering - From Theory to Implementation>>

引擎設計:說實話,這方面尚未特別好的書,大概越是核心的內容, 越少有人願意寫吧。<<3D Game Engine Architecture Engineering Real-Time Applications with Wild Magic>>只有第三章值得一讀。<<3D Game Engine Programming>>能夠選部分感興趣的章節看看,不過總的來講,講的比較淺。更新:<<3D Game Engine Design, Second Edition>>出了影印版本,強烈推薦。最近發現<<Pro OGRE 3D Programming>>也很不錯,200多頁短小精幹,可是可讓讀者快速瞭解一個既有引擎的設計和構架。

AI:<<Programming Game AI by Example>>很是不錯,好像還有中文版,備選<<Artificial Intelligence for Games>>。固然<<AI Programming Wisdom>>系列也是必讀做品,不過目前網絡上只有1~2冊。

網絡:%##@% ...(本人是網絡白癡 +_+........)

綜合:<<Game Programming Gems>>系列,不過因爲內容涉及的過於普遍,文章質量良莠不齊,選擇性閱讀就能夠了。歷年GDC, Gamefest t,Siggraph等大型會議的paper也是應該關注的。

         至於那些「All in one」或者n天較你寫出個FPS遊戲的書就不要讀了,這類書的通病是什麼都說了,結果什麼也沒說清楚。

         除了書之外,再推薦一些不錯的網絡資源:

www.GameDev.net 除了大量教程之外,論壇裏多年累計下來的內容保羅萬象。好好利用論壇搜索,你會發無論你多厲害,那裏總有一些比你強大的人在好久之前就遇到了和你一樣的問題,而且給出瞭解決方案。
Nvidia和ATI的開發者中心
creators.xna.com XNA官方網站
www.gamasutra.com 與GameDev相似
www.beyond3d.com 這裏的除了討論軟件之外,還能看到對硬件構架的分析
www.ziggyware.com 最好的XNA教程網站
www.gameres.com 國內惟一比較專業的遊戲編程網站,惋惜和GameDev相比就顯得太寒磣了-_-#

         固然,不要忘了收集各大論壇裏牛人們的blog:)

         最後,僅僅靠看書是不夠的,多寫多練纔是王道。

相關文章
相關標籤/搜索