遊戲程式設計師養成計畫

2021-05-21 18:32:31 字數 2762 閱讀 3513

看了這個帖子後發現的文章

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

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

剛開始,你要做的就是選擇一門圖形api,一般就是directx或者opengl之間選乙個。如果考慮到跨平台,那麼ogl是首選. 如果只在ms的平台,則dx是首選。我對ogl並不是很了解,所以下面大部門資料都是和dx相關的。

入門書籍非常重要,推薦<>(好像去年出了中文版)也就是傳說中的龍書,這可以說是最好的dx入門教材,frank luna從淺入深,討論了dx的方方面面。另外再配上<< advanced 3d game programming with directx 9.0>>,書名雖然是advanced,但實際上沒有多少advanced級別的內容。看完這兩本書,你基本上已經對directx比較熟悉了。如果你希望學習xna,也是一樣的,畢竟xna是以dx為基礎。

不要一開始就看圖形學的書,這個時候你對圖形程式設計還沒有乙個基本的感性認識,因此八成看的雲裡霧裡。不要以網上的教程和論壇提問作為主要學習途徑,找一本好書,系統學習,效率才最高。不要馬上看sdk裡的例子,很多圖形學的基本原理僅僅通過讀**是不會明白的。某些年代太過久遠的書就不要看了,比如《windows遊戲程式設計大師技巧》(總看到有人在找這本書)。有人說基本的思想總是不變的,可惜對於現代gpu來說,很多早期的技術和優化技巧早就過時了。圖形程式設計是發展的非常快的技術,看看gpu的發展速度,1~2年就是一代產品的革新。

好了,入門之後,是你鞏固和拓展視野的階段。現在看計算機圖形學就比較合適了。**推薦<>,這本書算得上是所有圖形程式設計師的必讀書籍和參考手冊了。最近剛出了第三版(更新:已經有電子版了)。可惜國內只有第二版,稍微有點老,如果實在找不到第三版,還是值得一讀。國內其他所有以圖形學命名的書都有乙個共同點:枯燥,過時。只需看看其中二維三維變換和曲線曲面表示的部分即可。如果這個時候發現你當年數學沒有學好,那麼有三本數學書是為遊戲程式設計師量身定製的:<<3d math primer for graphics and game development>>, <>和<>,第一本書有中文版,最後一本則是08年才出的新書。

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

shader方面:《cg_tutorial》和《the complete effect and hlsl guide》都是不錯的入門材料,當然還有sdk文件。<>有大量入門的例子。<>詳細介紹了各種光照模型和技術。<> 1~3冊肯定是必讀的,雖然有1,2有中文版,但某些翻譯並不是很理想,強烈建議直接看英文版。shaderx系列也是很經典的系列,每年出版一本,包含了最新的實時渲染技術,如今已經出了第6冊了。不過網路上只能找到1~3冊。1,2冊大部分shader都是用asm寫的,不過看懂原理,轉換為hlsl也並不難。另外nvidia sdk和ati sdk也是學習shader的重要資源。最後還有剛出的<< programming vertex, geometry, and pixel shaders>>

地形:<>非常全面的討論了關於地形渲染的各種技術,至少應該把第5~9章都瀏覽一遍。之後便可以 到virtual terrain查閱近期的地形渲染技術。

模型匯入和動畫:<>,僅此一本足以。

物理:<>和<>都不錯。<>是碰撞檢測方面最好的書,可惜目前還沒有電子版。

lod:<>

ray tracing:<< physical-based rendering - from theory to implementation>>

ai:<>非常不錯,好像還有中文版,備選<>。當然<>系列也是必讀作品,不過目前網路上只有1~2冊。

網路:%##@%...(本人是網路白痴 +_+........)

綜合:<>系列,不過由於內容涉及的過於廣泛,文章質量參差不齊,選擇性閱讀就可以了。歷年gdc, gamefest t,siggraph等大型會議的*****也是應該關注的。

至於那些「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:)

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

ps:以上書籍,除了特別註明的以外,都是可以通過網路或者書店入手的。

pps:不要找我要電子書,我能找到的,相信你也能找到,你找不到的,我肯定也沒有 :)

遊戲程式設計師養成計畫

與玩遊戲相比,寫遊戲要複雜上千萬倍,除了需要掌握通用的程式設計技巧以外,還要有相當的圖形學,物理,數學基礎,特別是在國內,由於相關資料的缺乏,更是讓初學者無從下手。下面總結了一些入門方法和比較容易入手的資料。首先你要精通一門高階語言,比如c 或者c 其次,要有良好的英文閱讀能力。對遊戲開發者來說英文...

遊戲程式設計師養成計畫

09.3.27更新 與玩遊戲相比,寫遊戲要複雜上千萬倍,除了需要掌握通用的程式設計技巧以外,還要有相當的圖形學,物理,數學基礎,特別是在國內,由於相關資料的缺乏,更是讓初學者無從下手。下面總結了一些入門方法和比較容易入手的資料。首先你要精通一門高階語言,比如c 或者c 其次,要有良好的英文閱讀能力。...

遊戲程式設計師養成計畫

與玩遊戲相比,寫遊戲要複雜上千萬倍,除了需要掌握通用的程式設計技巧以外,還要有相當的圖形學,物理,數學基礎,特別是在國內,由於相關資料的缺乏,更是讓初學者無從下手。下面總結了一些入門方法和比較容易入手的資料。首先你要 精通一門高階語言,pc上遊戲的首選語言就是 c 其次,要有良好的英文閱讀能力。對遊...