怎么學(xué)習(xí)游戲開發(fā)
隨著互聯(lián)網(wǎng)技術(shù)不斷進(jìn)步,游戲動漫產(chǎn)業(yè)已經(jīng)被廣大人民接受和推崇,現(xiàn)在已經(jīng)發(fā)展成為最熱門的行業(yè)之一。許多游戲開發(fā)公司也越發(fā)繁榮的狀態(tài),很多喜愛游戲者開始轉(zhuǎn)向游戲開發(fā)學(xué)習(xí)當(dāng)中,學(xué)習(xí)游戲開發(fā),就必須理解清楚游戲開發(fā)需要學(xué)什么基礎(chǔ),這樣才能定好學(xué)習(xí)方向,朝著游戲開發(fā)的目標(biāo)不斷努力前進(jìn)。怎么學(xué)習(xí)游戲開發(fā)呢?下面是學(xué)習(xí)啦小編為你搜集到的相關(guān)內(nèi)容,希望可以幫助到你。
怎么學(xué)習(xí)游戲開發(fā)
01
基礎(chǔ)課程:絡(luò)游戲程序設(shè)計、網(wǎng)絡(luò)游戲算法設(shè)計、網(wǎng)絡(luò)游戲平臺設(shè)計以及商業(yè)實戰(zhàn)項目訓(xùn)練,包含C++、數(shù)據(jù)結(jié)構(gòu)、算法基礎(chǔ)、Windows API使用、MFC原理及其應(yīng)用、2D圖形渲染技術(shù)、界面設(shè)計與應(yīng)用。為網(wǎng)絡(luò)游戲開發(fā)打下堅實的語言基礎(chǔ)、掌握基本的編程技巧、掌握簡單的游戲開發(fā)邏輯、掌握常用的數(shù)據(jù)結(jié)構(gòu)與算法、掌握基本的Windows編程技術(shù),熟悉MFC程序的開發(fā)與應(yīng)用、能夠進(jìn)行游戲開發(fā)。
02
2D網(wǎng)絡(luò)游戲開發(fā)主要學(xué)習(xí)內(nèi)容有網(wǎng)絡(luò)游戲程序設(shè)計、網(wǎng)絡(luò)游戲算法設(shè)計、2D網(wǎng)絡(luò)游戲平臺設(shè)計以及商業(yè)實戰(zhàn)項目訓(xùn)練,包含C++、數(shù)據(jù)結(jié)構(gòu)、算法基礎(chǔ)、Windows API使用、MFC原理及其應(yīng)用、2D圖形渲染技術(shù)、界面設(shè)計與應(yīng)用。為網(wǎng)絡(luò)游戲開發(fā)打下堅實的語言基礎(chǔ)、掌握基本的編程技巧、掌握簡單的游戲開發(fā)邏輯、掌握常用的數(shù)據(jù)結(jié)構(gòu)與算法、掌握基本的Windows編程技術(shù),熟悉MFC程序的開發(fā)與應(yīng)用、能夠進(jìn)行2D游戲開發(fā)。
03
Direct 3D程序開發(fā)基礎(chǔ) 3D游戲開發(fā)技術(shù)實戰(zhàn) 游戲引擎的修改與使用網(wǎng)絡(luò)通訊、數(shù)據(jù)庫及游戲服務(wù)器 行業(yè)規(guī)劃及職業(yè)素質(zhì)2 游戲綜合項目實戰(zhàn)訓(xùn)練 基地頂崗項目實訓(xùn)。
04
基礎(chǔ)知識:扎實的算法知識。主要有:樹或圖的搜索算法、A*算法、碰撞檢測算法、BSP樹、人工智能
05
相關(guān)圖形處理知識。比如:Direct X編程、OpenGL編程、圖形學(xué)的相關(guān)知識(三維圖形的形體、紋理、貼圖、照明,還有三維對象的消隱算法比如油畫算法,Z緩存)和動畫處理知識。如果想深入還要學(xué)會幾種三維引擎比如OGRE。
06
扎實的程序語言功底,主要代表為VC、DELPHI和JAVA。其中VC使用最廣,現(xiàn)在比較大的游戲也由此開發(fā);DELPHI功能也很強(qiáng),很多網(wǎng)游:比如網(wǎng)金、傳奇都用到了DELPHI;JAVA用于開發(fā)手機(jī)游戲。
07
基礎(chǔ)軟件:3dsMAX:大多數(shù)游戲開發(fā)公司美工使用,效率較高,可以獨(dú)立制作游戲中所有美術(shù)相關(guān)資源。
08
Delphi:直接編譯生成可執(zhí)行代碼,編譯速度快。由于Delphi編譯器采用了條件編譯和選擇鏈接技術(shù),使用它生成的執(zhí)行文件更加精煉,運(yùn)行速度更快。在處理速度和存取服務(wù)器方面,Delphi的性能遠(yuǎn)遠(yuǎn)高于其他同類產(chǎn)品。
09
Photoshop:PHOTOSHOP是一個很好的圖像編輯軟件,PHOTOSHOP的應(yīng)用領(lǐng)域很廣泛,在圖像、圖形、文字、視頻、出版各方面都有涉及。對于想學(xué)游戲的朋友來說,其實這根本就不是一個問題,不管年代怎樣變,經(jīng)濟(jì)怎樣開展,游戲行業(yè)是國家緊缺人才,開展空間也是很大的!現(xiàn)在社會競爭壓力大,假如沒有一門手工、技能很難長時間吃得開,想要學(xué)好游戲開發(fā),可以從這個基礎(chǔ)開始抓起吧!
游戲編程,這個概念包含了很多深層次的東西。
1.廣義上,我給的定義是,游戲引擎開發(fā)和游戲邏輯開發(fā)。
游戲邏輯開發(fā)是集中力量只開發(fā)游戲中劇情部分,你只需要做的是什么時候顯示什么,什
么時候放出什么聲音,什么時候通過網(wǎng)絡(luò)傳輸什么數(shù)據(jù),什么時候這個物體或者人物做什
么動作。至于底層怎么顯示,聲音如何處理,網(wǎng)絡(luò)如何傳輸,物體動作怎么實現(xiàn)的,你不
用關(guān)心,關(guān)心這些的是游戲引擎。所以說游戲引擎負(fù)責(zé)技術(shù)方面,而游戲邏輯負(fù)責(zé)游戲文
化內(nèi)涵。
成功的游戲是以好的游戲邏輯為基礎(chǔ)的,而游戲引擎并不是成功游戲主要條件,但好的游
戲配上好的游戲引擎,確實會給人一種震撼,相比同樣的游戲邏輯,好的游戲引擎顯示效
果會給人一種全新視覺和聽覺感受。
至于游戲邏輯我不想過多解釋,但并不是說游戲邏輯簡單,游戲邏輯也可以復(fù)雜的要命,
這取決與游戲復(fù)雜程度和游戲引擎與這個游戲的關(guān)聯(lián)程度。為了解釋這句話,我不得不從
游戲引擎解釋開始。
早期的游戲是沒有游戲引擎這個概念,都是一個游戲一套代碼,隨著游戲越來越多,大家
發(fā)現(xiàn)開發(fā)有些游戲中,有很多可重用的代碼,逐漸把這些重用代碼封狀起來,這就是早期
的引擎。對于引擎沒有明確的概念,只有好壞和適應(yīng)程度之分,所謂的好壞,就是引擎支
持功能和顯示特性等是否strong,而適應(yīng)程度是指一個引擎是否適合開發(fā)這個游戲,開發(fā)這
個游戲是否要自己再編寫一些額外的代碼。
我舉個例子
如果我用開發(fā)混斗羅的引擎(假如它有引擎)來開發(fā)RPG,和開發(fā)RPG游戲的“RPG游戲開
發(fā)大師”相比,我們還要做很多工作,才能完成玩法功能一樣的游戲。
所以說很難有明確的界限劃分這一堆代碼是否是游戲引擎,但游戲引擎的任務(wù)是不用質(zhì)疑
的,它的任務(wù)就是盡量不用負(fù)責(zé)底層處理,而專心到游戲邏輯上來。
2.從狹義上分,我只分解游戲引擎部分,基本包括(1)游戲圖形引擎(2)聲音引擎(3)網(wǎng)絡(luò)
引擎(4)腳本引擎(5)GUI(6)人工智能引擎(7)物理引擎。
(6)(7)兩個不是必須的,而前5個是一個好的游戲引擎要基本具備的,其實每個游戲引擎
中都具備物理引擎,只不過很多游戲?qū)τ谖锢硪蟛皇呛芨?,所以就集成到了圖形引擎中
或者游戲邏輯中。
圖形引擎是引擎中最難的,它基本要處理游戲引擎中70-80%的工作量,它的主要任務(wù)是負(fù)
責(zé)圖形高效顯示,包括速度和精度。后面我會集中并詳細(xì)解釋。至于聲音和網(wǎng)絡(luò)引擎大家
通過字面就可以知道它干什么。本人對聲音處理和網(wǎng)絡(luò)傳輸知道甚少,說出來只能誤人子
弟。
至于腳本我還略有研究,我想解釋下什么是腳本,游戲中為什么用腳本。腳本有時很難給
出一個定義,但大家都知道那些是腳本語言,我給出的解釋是用軟件CPU(虛擬CPU)來運(yùn)行
的編程語言就是腳本語言,軟件CPU和所說硬件CPU是對立的,也就是說腳本運(yùn)行與否先是
關(guān)聯(lián)到這個虛擬CPU,在虛擬CPU上運(yùn)行,然后再又映射到真正CPU,來真正運(yùn)行。這個過程
很抽象,我覺2個例子,第一個就是Java語言,它有一個虛擬機(jī),這個虛擬機(jī)就是軟件CPU
。再舉一個例子,我現(xiàn)在要編寫這樣一個指令、
PRINT S 這個指令表示打印S
S代表一個萬能類型。
為了實現(xiàn)這個指令,你首先要有一個函數(shù)來負(fù)責(zé)處理打印
比如是這樣的函數(shù)
void print(S)
{
cout<<S;
}
這里只是偽代碼,只是表示這個意思。
你首先要找出PRINT這個單詞,讀入到一個buffer1,然后把參數(shù)讀入buffer2
if(buffer1 == PRINT)
print(buffer2);
這里段代碼其實就是一個軟件CPU,它負(fù)責(zé)虛擬運(yùn)行PRINT S 這個指令。
那么游戲中為什么要用腳本呢!最簡單解釋就是靈活性好。拿一個RPG游戲例子來說,游
戲中有大量物品,每個物品有大量的屬性,如果我把這些屬性值直接寫到游戲中,每一個
小小的改變就要編譯整個游戲,花費(fèi)很多時間,靈活性很差。
如果我把這些寫到一個文件中,用腳本語言來編輯,只需要編譯腳本文件就可以了,當(dāng)然
如果你腳本是解釋型的語言,不用編譯直接可以運(yùn)行。
當(dāng)然腳本還有很多好處,主要目的還是方便性和靈活性。
其實GUI(圖形用戶接口)是一個重要部分。3D游戲中,出現(xiàn)的是大量的3D模型,這些模型
是先用文件的形式存放好的,而文件里面包括的是3D數(shù)據(jù)和這些數(shù)據(jù)的組織方式。
至于數(shù)據(jù)怎么組織是你引擎要規(guī)定好的,這樣也方便讀取,最后把3D數(shù)據(jù)加載到內(nèi)存。現(xiàn)
在問題是3D數(shù)據(jù)上,我們怎么能有效的得到這些3D模型的數(shù)據(jù),手工寫進(jìn)文本里?我靠,
那是奴隸社會,SB的做法。我想你不會這么做。人類很聰明,這就是為什么人把其他動物
關(guān)進(jìn)籠子里,而不是其他動物把人關(guān)進(jìn)籠子里的原因。既然我們很聰明,就要想一個辦法
快速的定義3D數(shù)據(jù),然后保存成文件。這樣一個3D編輯器就產(chǎn)生了。3D編輯器就是類似于
3DMAX那種,但引擎中的編輯器是有特殊目的的,使用者要按照引擎指定要求編輯3D數(shù)據(jù),
這樣引擎高效的顯示和處理數(shù)據(jù)比較容易,至于3D數(shù)據(jù)是怎么組織的,是一個設(shè)計上的問
題,由你引擎來決定,設(shè)計好壞,決定你引擎加載數(shù)據(jù)是否容易,關(guān)系到最后渲染。所以
一般好的游戲引擎都有自己GUI,但你也可以用3DMAX這樣的軟件,然后讀3DMAX文件變成自
己可以利用的數(shù)據(jù)形式。
說到這里,不知道上面的概念大家是否理解,我想如果你沒接觸過引擎,可能真的不理解
。其實我很難用簡短的語言把這么復(fù)雜的問題說清楚,如果有一天你把3D學(xué)的融會貫通,
你發(fā)現(xiàn)我說的是對的。我不知道大家是否發(fā)現(xiàn)一個共性的問題,有時你讀一本書,無論你
怎么認(rèn)真把它看完一遍,你都很難掌握里面的知識,當(dāng)你再認(rèn)真看第二遍的時候,你突然
覺得這本書沒有第一次看那么晦澀難懂。有些知識都是前后呼應(yīng)的,它們之間相互聯(lián)系,
要想完整的理解它們?nèi)币徊豢?。游戲編程的知識也是這樣。我前面介紹的如果你看懂了,
那你perfect,如果你沒有看懂,也不要灰心,這里介紹的只是一個大綱,讓你對游戲編程
有一個了解,最基礎(chǔ)層面的了解。
怎么學(xué)習(xí)游戲開發(fā)
上一篇:怎樣記憶英語單詞