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