歡迎來到 常識(shí)詞典網(wǎng) , 一個(gè)專業(yè)的常識(shí)知識(shí)學(xué)習(xí)網(wǎng)站!
[ Ctrl + D 鍵 ]收藏本站
答案 1:
首先說明,“游戲制作”方面還是有很多個(gè)細(xì)的小方面的,對(duì)于一個(gè)大型游戲而言,不同的程序員之間往往是有相對(duì)比較明確的分工的。一般而言,每個(gè)方向的基本都是需要了解并掌握的,但是在深入學(xué)習(xí)之前,最好還是先對(duì)自己有一個(gè)定位。 游戲邏輯開發(fā): 1、游戲的邏輯開發(fā)和其他軟件行業(yè)沒有本質(zhì)不同,最好還是從數(shù)據(jù)結(jié)構(gòu)和算法開始。并不要求你熟練掌握并編寫每一個(gè)數(shù)據(jù)結(jié)構(gòu)或者是算法,最重要的是你能夠分析數(shù)據(jù)結(jié)構(gòu)和算法的時(shí)間空間復(fù)雜度,能夠進(jìn)行一定的改造和組合工作,能夠熟練利用別人(比如STL)提供好的數(shù)據(jù)結(jié)構(gòu)和算法來快速無錯(cuò)的解決具體的問題。《數(shù)據(jù)結(jié)構(gòu)》、《算法導(dǎo)論》(另外一本稍薄一點(diǎn)的算法書也很推薦,我個(gè)人是看這本書學(xué)習(xí)的,而沒有看過算法導(dǎo)論,但我不記得它的名字和出版社了……) 2、你需要了解諸如“狀態(tài)機(jī)”、“觸發(fā)器”、“事件”之類的概念,它有助于你更好的模塊化和組織你的代碼,也有助于你更好的理解和接觸別人提供的框架。至于在哪里可以學(xué)到這些概念…… 我也不清楚。Wiki或者與別人討論 大概都是不錯(cuò)的方式,注意觀察各種類似需求的解決方案(比如HTML/javascript、Flas-/Actionscript)都有助于你改善自己的方案。 3、掌握幾門常見的腳本語言。沒錯(cuò),我說的是幾門。事實(shí)上,學(xué)到第二門之后你就會(huì)發(fā)現(xiàn),它們本質(zhì)上都差不多,同類型的腳本語言會(huì)有如此多的共同之處。把lua或者pyt-on嵌入到你自己的游戲框架之中吧,如果你的代碼能力不錯(cuò),嵌入javascript也許也是個(gè)不錯(cuò)的選擇。 4、如果可能,深化一下你的C++基本功。Effective C++系列、Exceptional C++系列、C++ Template、Imperfect C++。 5、接觸一款引擎,在其上做上層開發(fā),不要急于過度深入引擎之中。越成熟用戶量越大的引擎越值得你去體驗(yàn)。 6、推薦再去讀一些關(guān)于游戲人工智能的書籍。 游戲圖形開發(fā): 1、對(duì)于英語沒有困難的人,還是推薦先跟著DX SDK走一遭,里面的Tutorial非常簡(jiǎn)練,快速,也讓你學(xué)習(xí)了一些基本的概念。DXSDK里關(guān)于現(xiàn)代圖形管線的介紹也相當(dāng)精確。 對(duì)于英語有困難的人,請(qǐng)參考莫偉琪的回答中引用Clay-n的帖子,讀相應(yīng)書的中文版。 補(bǔ)充: 關(guān)于D3D9和D3D11:相比較來說,D3D11的接口比D3D9的更簡(jiǎn)練快捷,更易于學(xué)習(xí),需要處理的各種意外狀況較少,并且二者在API上不是一個(gè)補(bǔ)充完善升級(jí)的關(guān)系,所以并不需要“先學(xué)習(xí)D3D9,再升級(jí)到D3D11”,可以直接從D3D11開始。D3D10“還沒普及就已經(jīng)過時(shí)了”,可以略過。 關(guān)于D3D和OpenGL:二者在風(fēng)格和習(xí)慣上有很大不同,但是在本質(zhì)上沒有任何的不同,初學(xué)者可以任意選擇一個(gè)開始。相對(duì)而言,D3D的資料較豐富,在游戲行業(yè)應(yīng)用較多,推薦自學(xué)的初學(xué)者優(yōu)先接觸。OpenGL在研究上的使用較多,在移動(dòng)平臺(tái)目前也是OpenGL ES等各種來自于OpenGL的標(biāo)準(zhǔn)較多,推薦在校研究生/有志于智能-研發(fā)的同學(xué)們接觸。 關(guān)于固定管線/可編程管線:從應(yīng)用上來說,固定管線已經(jīng)成為歷史了(即使移動(dòng)應(yīng)用也即將如此),從學(xué)習(xí)上來說,固定管線所涉及的概念較多,API較繁雜,比較耽誤時(shí)間,而且其涉及的所有技術(shù)在可編程管線均可以實(shí)現(xiàn),且更為自由,所以推薦直接從純粹的可編程管線學(xué)起,并且在合適的時(shí)候了解一下固定管線和可編程管線之間的一些對(duì)應(yīng)關(guān)系,不推薦先學(xué)習(xí)固定管線再“升級(jí)”到可編程管線。 2、了解基本API后,此階段往往最缺的是數(shù)學(xué),需要作為基礎(chǔ)的可能有: 線性代數(shù)的基本概念(通常大學(xué)教材的前3-4章):最重要且最基礎(chǔ),最起碼你要知道矩陣是干嘛的,是怎樣參與運(yùn)算的。 高等數(shù)學(xué)(微積分)的基本概念:你將來會(huì)發(fā)現(xiàn)稍微復(fù)雜一點(diǎn)的渲染算法都要用到這些作為基礎(chǔ)知識(shí)。 四元數(shù):在三維游戲里,通常用四元數(shù)來表達(dá)旋轉(zhuǎn) 一些基本物理公式:諸如漫反射的強(qiáng)度公式等等 信號(hào)處理的一些常見概念:諸如傅里葉變換、卷積等等 除了線性代數(shù)基礎(chǔ)以外,其他的數(shù)學(xué)學(xué)習(xí)都不是很緊急,可以手頭備一兩本書,或者養(yǎng)成快速上網(wǎng)查詢的習(xí)慣,等到有了需求的時(shí)候緊急補(bǔ)課。作為一個(gè)程序員,沒必要一開始就把自己當(dāng)做一個(gè)數(shù)學(xué)家^_^ 也很推薦以上知識(shí)的打包書籍:《3D數(shù)學(xué)基礎(chǔ):圖形與游戲開發(fā)》(3D Mat- Primer for Grap-ics and Game Development),還包含一些我沒有列出的數(shù)學(xué)和算法。 3、基本概念和數(shù)學(xué)都了解了,推薦學(xué)DX的同學(xué)們重新系統(tǒng)的審視一遍DXSDK,或者把你手頭的D3D/OpenGL入門書再從頭到尾確認(rèn)一遍,不明白的概念都查一下,然后搭建或者改造一個(gè)屬于自己的實(shí)驗(yàn)平臺(tái)(推薦從DXSDK里扒一個(gè)),就可以宣布基本知識(shí)畢業(yè),開始從事各種效果的制作了。 4、-實(shí)現(xiàn)。GPU Gems系列、游戲編程精粹系列、S-aderX(GPU Pro)系列,這種書都是將一個(gè)個(gè)獨(dú)立-集合出書的,找感興趣的內(nèi)容深入學(xué)習(xí),自己實(shí)現(xiàn)吧。 游戲引擎架構(gòu): 1、沒有任何資料可以推薦。先掌握基礎(chǔ),有使用成熟引擎的經(jīng)歷,然后: 2、寫一個(gè)框架。 3、往里面適當(dāng)添一兩個(gè)新特性。 4、用這個(gè)框架寫一個(gè)游戲。 5、列出不爽的地方。 6、看別人是怎么做的。 7、回到2或者3。答案 2:
初入門我還是建議看《Windows游戲編程大師技巧》+《3D游戲編程大師技巧》(其實(shí)這是一套) 理解這兩本書中內(nèi)容即可(主要是固定渲染管線的原理),現(xiàn)在沒必要寫一遍書中的程序了。 另外Clay-n說得很好:cnblogs/clay-n... 只是我還是建議學(xué)習(xí)圖形api前,先看以上兩本書(除非你已經(jīng)理解了書中的內(nèi)容)。答案 3:
推薦看看《游戲編程精粹》 1-6很不錯(cuò) 7稍微一般一點(diǎn)答案 4:
開發(fā)方面不懂,推薦一個(gè)博客吧,necro-nov.wordpress/下一篇:鐵軌的枕木是什么時(shí)候拿掉的?平行鐵軌有什么作用? 下一篇 【方向鍵 ( → )下一篇】
上一篇:餓的時(shí)候抽煙會(huì)減少餓的感覺么? 上一篇 【方向鍵 ( ← )上一篇】
快搜