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