怎樣學習遊戲引擎開源代碼提升自己?

大四計算機畢業生,喜歡遊戲編程,研究生要去賓大的圖形學和遊戲。但是覺得自己本科階段的實踐多局限於現有引擎的應用(flash,unity3d),想深入一點學習,下了github上的spring和openRA,但是似乎編譯生成之後就有點沒頭緒了。

想要在暑假提高自己,請問該如何學習這些開源代碼?或者有什麼別的提升思路?

//--------------------------------

//看了李宏偉的答案,嘗試把問題說得具體一點,方便之後的大牛針對性解答:

1.大四畢業生暑假想提升自己的圖形學知識和實踐能力,有哪些優秀的學習資源?

(我的背景是只學了UC Berkeley的ComputerGraphics,對圖形學僅有基本的了解,做了Ray Tracer,Bezier分割,IK幾個簡單的小項目;對OpenGL,DirectX等使用還很生疏)

2.如何提升自己寫的遊戲代碼質量?不局限於圖形,軟體結構等功力都行。

3.如何有效學習遊戲引擎的開源代碼

//-------------------------------

//整理答案

1.李宏偉所說stanford圖形學課程:Computer Graphics at Stanford University

Interactive Computer Graphics : CS 248: Interactive Computer Graphics (應該是可以直接入門的課程,介紹了許多圖形學中的概念,不過作業比起Berkeley的好像更有趣一些)

Geometric Modeling:CS 348a Main Page (比較偏數學理論,講許多曲線,平面的分割等,作業多為手寫題目)


謝邀。

我猜測題主是想學習渲染引擎以提高自己的圖形學知識。

那麼這個問題,可以分成兩部分回答,第一在題主這個階段適不適合學習引擎代碼,第二如何學習引擎代碼

再猜一下,題主有使用引擎的經歷,但是對圖形學一知半解。不然的話,我相信題主不會問這樣的問題了。所以我覺得這個階段拿引擎代碼來作為學習資料是不合適的。引擎是高度封裝的系統,除了圖形本身的內容,更加加入非常多的體系設計和優化技術,如果圖形學基本功不紮實,打開代碼就像掉進一片大海,根本沒有方向感。我個人經歷是,引擎代碼在兩個情況下特別有用,當自己的引擎設計遇到瓶頸的時候,不知道該如何設計相應的模塊演算法的時候,拿來作參考;第二對某個具體的圖形學演算法有興趣,想找點實例代碼作參考。

在現階段,題主可以找一套大學的教程,把裡面的大作業仔細做一遍,我相信會有明顯的提高,例如stanford的圖形學課件。之後,可以選取自己喜歡的內容,作針對性的閱讀和實驗。例如siggraph course來作為某一個特定領域的入門教程就非常好。


最有效的辦法就是看別人寫的代碼,推薦一個源碼共享網站,淘碼島。

微信源碼,手機遊戲源碼,網站源碼,微擎微贊源碼,Cocos2d-x源碼,Unity源碼,HTML5源碼,安卓源碼,Android源碼,蘋果開發,iOS開發


這個個人覺得要多找點遊戲源碼來研究學習,我一般在 遊戲咖啡屋 裡面下載很多源碼來研究。你也可以試一下!


@康矯健


推薦閱讀:

程序員如何加入到開源項目中去?
為什麼現在大部分開源庫都是外國人寫的?
Python 有哪些一千行左右的經典練手項目?
十萬行以下有哪些值得學習的開源項目?
請推薦一些小型的C語言開源項目?

TAG:遊戲開發 | 編程 | 遊戲引擎 | 開源項目 | 計算機科學 |