如何零基礎系統學習3D遊戲開發?

縮一下我的情況:

本人大專多媒體專業(學的是操作各種軟體,不涉及數學)畢業,專業裡面涉及到一點編程,就自學了一些AS3語法,畢業後一直做Flash頁游(AS3,Actionscript3.0,Starling,Stage3D)的工作,到現在已經四年了。中間學了一點點僅限於編程、數據結構、面向對象基礎,也都是知道個大概。非計算機科班出身,感覺基礎還是很薄弱。

大背景,現在頁游公司越來越少,感覺錢途不好,想轉Unity3D,但是3D基礎薄弱。

想學習3D遊戲開發(PC端或手機端),但一直找不到入口,很多東西都沒法入手。求各位指導一下,怎麼從零開始系統地循序漸進地學習3D遊戲開發,最終能做個簡單的3D引擎(斗膽的想法,不知道能不能實現)。

(另外,也想了解一下伺服器端的遊戲開發,求指導)

萬分感謝各位知友!!!


簡單說下,

3d遊戲開發方向

想就業,直接unity,這個未來幾年還是主要的就業領域

從樓主的就業方向看,很明顯學dx不合適

國內pc遊戲行業,現在十分穩定,節奏慢,機會少

想系統學習遊戲開發,還是走opengl比較好

將來移動端和跨平台,這個東西只會越來越熱門

按題主的知識情況看,學3d開發至少要3個內容

1.c/c++

學習c++的一個子集(做遊戲用的子集,找個開發的人告訴你那些特性是主要的,那些特性不是主要的)

2.數學

不是國內很多人想像的那樣,3d數學基礎裡面內容不少,但是主要內容不是線性代數(這個觀點是錯誤的),主要的內容是向量幾何。從我目前錄製視頻的內容看,向量幾何50%以上,線性代數30%(甚至更低)。其他部分的內容什麼都有(遊戲中的3d數學是個應用領域),微積分,概率,歐拉角,四元數(這是近世代數的內容,囧)等等。

只要會線性代數,向量幾何,微積分方面的推導,基本上就可以了,其他的東西記個結論。

另外,數學少看國內的著作,國內重計算不重推導,重應用不重理解,幾乎看了白看:)

3.opengl

如果是移動端,不要一上來就看那麼多pc理論著作,先看看別人實現的效果,在不影響性能的基礎上研究。

先培養感覺,通過例子把opengl介面和流水線串起來,這樣也不會耽誤你的實際工作,還會有所幫助。有一定感覺了,再系統學習。

當然這只是一種學習方法……

注意,這三者的優先順序順序是上面的順序,同時學也可以,但是一定不能次序顛倒

學了c++,在你看數學庫中的代碼,才能真正理解

懂了數學內容之後,再看opengl shader才能知道到底寫得是什麼

當然,在這之前,最好有一定的遊戲開發經驗


學unity不需要什麼3d基礎,直接上手即可,需要的時候找資料學習即可,系統學習不是必須的。

引擎開發先看高數和線代,這些沒必要去看數學教科書,推薦3d數學基礎__圖形與遊戲開發。搞引擎特別是動畫圖形,說到底是數學與物理學的戰鬥,數學不可能一蹴而就,只能先學最基礎的,遇到什麼補什麼,思維方式才是最重要的。

然後可看看3d遊戲編程大師,但非必須。

然後找本dx11的書跟著做就行了,推薦龍書dx11版,不推薦看opengl,誰看誰蛋疼。現目前實時渲染那一套思想基本相通的,一般自娛自樂做引擎從pc windows做起才不會蛋疼,否則浪費的時間都是大把大把的。引擎不僅僅限制於渲染,還有其他一大堆東西,參考遊戲引擎架構。樓主只有做遍了這些東西才能有個底,不明白的還可以參考cocos等東西,資源一大把。

另外,渲染可看realtime rendering,pbrt等書

綜合可讀,遊戲引擎架構 3d遊戲(英國人寫那本) 等書

最後要說的是,搞個引擎不難,樓主跟著書走入了門就搞得出來。搞個完整的的引擎才難,個人認為也是浪費時間,不如多熟悉下unity。還有就是…opengl真的很蛋疼,搞了就知道,就醬。


推薦閱讀:

在Unity中製作動畫,如何兼顧動畫和物理效果將人物頭髮處理到最佳效果?
為什麼知乎很多人對我國遊戲行業的前景都非常不看好?
在當前網路環境下(2016年),手游使用長連接(TCP)好還是短連接(HTTP)好?
Unity3D開發中 使用C# 很多文檔都有提到這個「避免使用構造函數 不要在構造函數中初始化任何變數」為什麼?

TAG:遊戲 | 遊戲開發 | 3D | 遊戲引擎 | Unity遊戲引擎 |