怎樣系統學習遊戲編程?
首先我們要知道幾個問題,下面幾個方面來說明如果學習:
1 你真的喜歡遊戲編程嗎?
2 要了解遊戲編程
3 遊戲編程需要的基礎知識
4 2D遊戲編程和3D遊戲編程
5 遊戲引擎編程
6 遊戲編程相關書籍介紹
你真的喜歡遊戲編程嗎?
遊戲編程可簡單可複雜,簡單的2D 《蛇吃豆》,複雜的現在流行的3D遊戲。咱們不說簡
單的,因為你不想學習遊戲編程就為了做一個簡單的遊戲。確實每個人對他所嚮往的東西都想徹底了解清楚,可是我給你的第一個警告,複雜的3D遊戲,複雜到難以想像。要了解遊戲編程
廣義上,我給的定義是,遊戲引擎開發和遊戲邏輯開發。
遊戲邏輯開發是集中力量只開發遊戲中劇情部分,你只需要做的是什麼時候顯示什麼,什
么時候放出什麼聲音,什麼時候通過網路傳輸什麼數據,什麼時候這個物體或者人物做什么動作。至於底層怎麼顯示,聲音如何處理,網路如何傳輸,物體動作怎麼實現的,你不
用關心,關心這些的是遊戲引擎。所以說遊戲引擎負責技術方面,而遊戲邏輯負責遊戲文化內涵。從狹義上分,我只分解遊戲引擎部分,基本包括(1)遊戲圖形引擎(2)聲音引擎(3)網路
引擎(4)腳本引擎(5)GUI(6)人工智慧引擎(7)物理引擎。(6)(7)兩個不是必須的,而前5個是一個好的遊戲引擎要基本具備的,其實每個遊戲引擎中都具備物理引擎,只不過很多遊戲對於物理要求不是很高,所以就集成到了圖形引擎中或者遊戲邏輯中。D3D提供基本常用底層介面,那些是是D3D為了編程必須提供的,那些是不用提供的,比如
數學庫我們完全可以自己寫。D3D頂點 索引BUFFER顏色緩衝,模版緩衝,深度緩衝 以及對這些緩衝的操作目標渲染對象、D3D 中的3D流水線單通道渲染,多通道渲染。熟練操作上面的所有,這些都足夠了,其他的都是D3D中多餘的,如果你要自己做引擎,很多都要自己實現,當然初學者可以就用它擴展的函數庫,也很方便的。《3D數學基礎:圖形與遊戲開發》清華大學出版社,國外人寫的,有中文的
《3D遊戲與計算機圖形學中的數學方法》清華大學出版社,國外人寫的,有中文版
《Mathematics.for.3D.Game.Programming.and.Computer.Graphics》只有英文電子版
這本書寫的是3D數學顛峰,作者寫的很細緻,可以仔細研究,也可以做工具書。
《計算機圖形學幾何工具演算法詳解》電子工業出版社 國外人寫,有中文版這本書是一本工具 書,查找演算法,很方便,寫的很好,很細緻,
題主問怎樣系統學習遊戲編程想必是對遊戲編程感興趣,正所謂興趣是最好的老師,和題主分享一些系統學習知識。
現在遊戲的種類越來越多樣,想要學習遊戲編程知識,就要先全面了解一下遊戲編程然後找到自己的學習方法來系統全面學習。遊戲編程指利用計算機編程語言,如C編程語言、C++編程語言、彙編等,編製計算機、手機或遊戲機上的遊戲。
給題主推薦一本書《遊戲引擎架構》。《遊戲引擎架構》同時涵蓋遊戲引擎軟體開發的理論及實踐,並對多方面的題目進行探討。本書討論到的概念及技巧實際應用於現實中的遊戲工作室,如藝電及頑皮狗。雖然書中採用的例子通常依據一些專門的技術,但是討論範圍遠超於某個引擎或API。文中的參考及引用也非常有用,可讓讀者繼續深入遊戲開發過程的任何特定方向。
《遊戲引擎架構》為一個大學程度的遊戲編程課程而編寫,但也適合軟體工程師、業餘愛好者、自學遊戲程序員,以及遊戲產業的從業人員。通過閱讀《遊戲引擎架構》,資歷較淺的遊戲工程師可以鞏固他們所學的遊戲技術及引擎架構的知識,專註某一領域的資深程序員也能從本書更為全面的介紹中獲益。
通過分類的系統學習會對題主有很大的幫助:
遊戲開發中的大規模C++軟體架構
遊戲編程所需的數學
供調試、源代碼控制及性能剖析的遊戲開發工具
引擎基礎系統、渲染、碰撞、物理、角色動畫、遊戲世界對象模型等
英文很重要,英文資料多如牛毛。你既然在Linux下,就保持好。Linux是個十分適合程序員的平台。Linux下,有SDL(libsdl),OpenGL可以用於遊戲編程。
去報一個遊戲編程的補習班,會有專門的課程針對遊戲編程。如果你還是學生,那就好好學習這門課,或者是報這門課選修。
如果想要系統的學習的話我想應該去抱一個培訓班,因為這個遊戲變成還是比較複雜的。不精通電腦的人是不容易學會的。
推薦閱讀:
※荒野行動iOS版本有哪些特徵?
※《超神學院手游》有什麼VIP特權?
※荒野行動ios裝備介紹和怎麼扔槍?
※我的世界中有什麼恐怖的細節?
※《我的世界》末地傳送門怎麼用?去地獄怎麼去?