如何學習游戲開發
一、平臺與編程語言選擇
首先(xian),游戲開發的平(ping)臺就有很多類(lei)型:
*個人主機平臺:Windows、Linux、Mac OC;
* 移動平臺:iOS、Android、Windows Phone、BlackBerryOS、Symbian;
* 專業主機平臺:Xbox、PlayStation、Will等。
如果你想從事移動平臺的游戲(xi)開發,Android主流JAVA語(yu)言,iOS主流Object-C語(yu)言(yan),那么你就(jiu)要(yao)去(qu)學習這(zhe)個平臺主流(liu)的語(yu)言(yan),而在個人主機(ji)上主流(liu)的游戲(xi)開發(fa)語(yu)言(yan)現在包(bao)括(kuo)以后很長(chang)時間(jian)也還是(shi)C++。
但是(shi)(shi)并(bing)不(bu)(bu)是(shi)(shi)所不(bu)(bu)同平(ping)臺的游(you)戲開發,就(jiu)毫無共通之處,學了(le)這(zhe)個到了(le)另一(yi)個平(ping)臺就(jiu)無用了(le)。不(bu)(bu)是(shi)(shi)這(zhe)樣(yang)的,編程的世(shi)界里你走得(de)越遠你會發現(xian)很多東西(xi)的本質都是(shi)(shi)相似的,例如(ru)你如(ru)果扎(zha)實地理解了(le)C++的基本語(yu)法(而(er)不是死記硬背),日(ri)后再轉Java語言也不是(shi)很難(nan)的(de)(de)事情,因(yin)為它們(men)本質的(de)(de)面向對象特性(xing)還有各(ge)種編程(cheng)語言特性(xing)都是(shi)相通的(de)(de)。
所以,如果你想(xiang)走(zou)得遠,在學(xue)習的(de)時候不能簡單流于表面,對于一樣知(zhi)識越深(shen)入到底層,你就越能看到其它知(zhi)識與其的(de)異(yi)曲同工之(zhi)(zhi)處,因此你將比(bi)別人更輕(qing)松。但(dan)是,當然(ran)一開始最好(hao)盡(jin)可能是貼合(he)自己的(de)專(zhuan)屬領域和(he)編程(cheng)語(yu)言(yan),這樣能盡(jin)快地(di)在這個領域持有一席之(zhi)(zhi)地(di)。
無(wu)論(lun)你(ni)選擇哪個(ge)平(ping)臺,游戲(xi)開(kai)發這(zhe)(zhe)個(ge)浩大的工程都離不開(kai)游戲(xi)引擎,所以這(zhe)(zhe)里都有二條路線讓你(ni)選擇:
*只使(shi)用游戲(xi)引擎(qing);
*使用(yong)游戲(xi)引擎(qing)并深入學習游戲(xi)引擎(qing)原理(li)。
二、游戲開發不同學習線路
線路一:只使用游戲引擎
對(dui)于第一條路線,游(you)戲引(yin)擎(qing)(qing)的(de)(de)使用并不(bu)困難,因此(ci)適合想(xiang)快(kuai)速上手游(you)戲開發(fa)工(gong)作的(de)(de)人(ren)。我們(men)工(gong)作大多數時候也不(bu)會自己開發(fa)游(you)戲引(yin)擎(qing)(qing),所以這樣對(dui)于一般(ban)的(de)(de)日常(chang)工(gong)作也沒(mei)什么大礙。對(dui)于只使用游(you)戲引(yin)擎(qing)(qing)的(de)(de)人(ren)來(lai)說,入門階段要做(zuo)的(de)(de)就是看該引(yin)擎(qing)(qing)的(de)(de)教(jiao)(jiao)程(書籍、視頻、網(wang)(wang)上博客(ke)、網(wang)(wang)上教(jiao)(jiao)程、官方(fang)幫助文檔等),并且熟練該教(jiao)(jiao)程所使用的(de)(de)編程語言。
所(suo)以(yi)(yi)你要做的第一件事,就(jiu)是(shi)去了解現在流行的游戲(xi)引(yin)擎。因為不(bu)同(tong)平臺下(xia)的性(xing)能不(bu)同(tong),支持的編(bian)程語言(yan)也不(bu)盡相同(tong),所(suo)以(yi)(yi)針對不(bu)同(tong)平臺下(xia)的流行的游戲(xi)引(yin)擎也是(shi)不(bu)同(tong)的(方括號里面是(shi)特別推薦的,基于開源性(xing)、易用性(xing)、性(xing)能與(yu)效(xiao)果等方面的綜合水平推薦):
*windows或游(you)戲主機:【Unreal】、寒霜、CE3
*蘋果(guo)ios:【unity3D】、【cocos2d-ObjC】、【Unreal】、sparrow、sprite kit。
*安卓:【unity3d】、【cocos2d-x】、【Unreal】、AndEngine、libgdx。
*網頁:【Egret】、【cocos2d-html5】、Fancy3D、unity3d。
在選擇游戲引(yin)擎(qing)的(de)時候,盡可能選用流行的(de)游戲引(yin)擎(qing),因(yin)為這個游戲引(yin)擎(qing)流行意味著官方(fang)的(de)功能比較完善和易用,問(wen)答社區也(ye)比較多人解疑。各(ge)個游戲引(yin)擎(qing)也(ye)各(ge)有千秋,Unity3d勝(sheng)在簡單(dan)易用,對性能要(yao)求不高,但(dan)是效果不夠華麗,因而一般用在移動平臺而不會用在電腦或游(you)戲主機(ji)。Unreal勝在(zai)開源免費,而(er)且效(xiao)果也(ye)很(hen)出色,但是對設備(bei)要求比較高,因(yin)而(er)常常用來開發效(xiao)果絢(xuan)麗的大型游戲。cocos2d-x也是開源免費的,在2D領域(yu)深有造(zao)詣,但是缺點是不可視化開發。另(ling)外,如果你想了(le)解游戲引擎原理,那么首要考慮的就是開源(yuan)的游戲引擎。
不同游戲(xi)引擎(qing)使(shi)用的編程語(yu)言或者腳本語(yu)言可能是不一(yi)樣(yang)的,所以(yi)當你想要學習某(mou)個游戲(xi)引擎(qing)的時候,也應該(gai)留意該(gai)游戲(xi)引擎(qing)所使(shi)用的語(yu)言。大(da)部分情況是,Windows用(yong)的(de)的(de)是C++,同(tong)時結合lua或python腳本語言。而(er)ios平(ping)臺下使用Objective-C或(huo)swift,安卓(zhuo)平(ping)臺下使用Java。但這(zhe)不是必然的,例如Unity在各個平臺下都可(ke)以用C#或者(zhe)javascript腳本語言(yan)。
下面是商(shang)業(ye)上流行的游戲(xi)引擎詳細比較:
1) Unreal4(虛(xu)幻4)
*適用平臺(tai):Microsoft Windows、Mac OS X、iOS、Android、虛擬現實(shi)設備(包括但不限于SteamVR/HTC Vive、Morpheus、Oculus Rift及Gear VR)、Linux、SteamOS及 HTML5平臺。
*編程語言:C++或(huo)無需編寫代碼。
*優點:開源免費(fei),畫面效果(guo)出色(se),已有多款商(shang)業大作經驗。同時,它(ta)還(huan)能跨平臺,商(shang)店資源豐富(fu),提供了無需(xu)編寫(xie)代碼(ma)即(ji)可(ke)(ke)制(zhi)作游戲的強大功能(可(ke)(ke)視化(hua)開發)。
*缺點:開發機(ji)器配置要求(qiu)較(jiao)高。
2) Unity3D
*適用平臺:iOS、Android、Windows phone 8、Tizen、Microsoft Windows、Windows Store應用程序(xu)、Mac、Linux/Steam OS、網絡播放器(qi)、WebGL、PlayStation3、 PlayStation4、PlayStation Vita版、Xbox One、Xbox 360、Wii U、Android TV、Samsung SMART TV、Oculus Rift、Gear VR、Microsoft Hololens、Playstation VR。
*編(bian)程語言:C#、javascript、Boo。
*優點:方便易用,中(zhong)文資料豐富(fu),跨(kua)平臺,商店資源(yuan)豐富(fu),可視化開(kai)發。
*缺點:畫面效果一般,不是免費開源(yuan),引擎(qing)效率比較低。
3) Cocos2d系列(包Cocos2d-x、Cocos2d-ObjC、Cocos2d-html5、Cocos2d-xna等)
*適用(yong)平臺:Microsoft Windows、OS X、 Linux、iOS、 Android、 Tizen、 Linux、Mac OS X、HTML5瀏覽器、Windows Phone 7 & 8、Xbox 360。
*編程語(yu)言:Python、Objective-C、C++、 Lua、 JavaScript、 Swift、JavaScript、 C#。
*優點(dian):開源免費,跨平臺,中文資(zi)料豐富,2D技術豐富且成(cheng)熟(shu)。
*缺(que)點:不(bu)可視(shi)化開發,3D方(fang)面技術不(bu)成熟。
4) CryEngine3
*適用平臺:Microsoft Windows、OS X、Linux、PlayStation 3、PlayStation 4、Wii U、Xbox 360、Xbox One、iOS、Android。
*編程語(yu)言(yan):C++、Lua。
*優(you)點:畫面效果世(shi)界(jie)一流,可視(shi)化開發,跨平臺。
*缺(que)點:開發(fa)機(ji)器配置(zhi)要(yao)求較高,不是免費(fei)開源。
5) Frostbite3(寒霜3)
*適用(yong)平臺:Microsoft Windows、PlayStation 3、PlayStation 4、Xbox 360、Xbox One。
*編程語言:C++。
*優(you)點:畫(hua)面效果(guo)出色,可視(shi)化開發,跨平臺。
*缺點:開(kai)發機器配置要求較高(gao),不是免費(fei)開(kai)源。
6) Egret(白(bai)鷺)
*適用平(ping)臺:HTML5、iOS、Android、Windows Phone。
*編程語言:TypeScript、JavaScript。
*優點:免費開(kai)源,配套工(gong)具(ju)多,全中(zhong)文(wen)文(wen)檔(dang),可視化開(kai)發,跨平(ping)臺(tai)。
*缺點:支持平臺(tai)較少,大多數時候用于開發對性能(neng)和效率要求不高的小游戲。
但是(shi)使用(yong)游(you)戲引(yin)擎(qing)(qing)畢(bi)竟(jing)是(shi)停留在(zai)表面看不(bu)到本質(zhi),當游(you)戲開發(fa)的時候出(chu)現(xian)了(le)某些(xie)問(wen)題或者特殊需求,你往(wang)往(wang)很難處(chu)理。而且游(you)戲引(yin)擎(qing)(qing)技術(shu)日新(xin)月異,你所(suo)學的幾乎都是(shi)別(bie)(bie)人留下來的方法,而不(bu)是(shi)其本質(zhi)思想。如果將來別(bie)(bie)的游(you)戲引(yin)擎(qing)(qing)興起,你又(you)要重新(xin)學習另外的游(you)戲引(yin)擎(qing)(qing)怎么使用(yong)。在(zai)很多大公司(si)里面,甚至都有自己公司(si)內部專用(yong)的引(yin)擎(qing)(qing)(如網易公司(si)的風(feng)魂(hun)引(yin)擎(qing)(qing)、金山公司(si)的劍(jian)網3引擎(qing)、蝸(gua)牛(niu)公(gong)司(si)的Flexi引擎等(deng)等(deng))。所以單純(chun)地走這條路線(xian),可(ke)能不會(hui)讓你走得很遠并且可(ke)能會(hui)日(ri)漸乏味。
線路二:使用游戲引擎并深入了解游戲引擎原理
對于第(di)二條路線,深(shen)入學習(xi)游戲(xi)(xi)引(yin)(yin)擎(qing)(qing)原(yuan)(yuan)理(li)短時(shi)間不會讓你的(de)(de)(de)工作有什(shen)么卓越的(de)(de)(de)成效,但是(shi)可以彌補只使(shi)用游戲(xi)(xi)引(yin)(yin)擎(qing)(qing)導致的(de)(de)(de)問題,而且學習(xi)游戲(xi)(xi)引(yin)(yin)擎(qing)(qing)原(yuan)(yuan)理(li),更(geng)多(duo)時(shi)候(hou)不是(shi)一定就為了自己(ji)日后要造個游戲(xi)(xi)引(yin)(yin)擎(qing)(qing),而是(shi)更(geng)深(shen)入理(li)解自己(ji)的(de)(de)(de)游戲(xi)(xi)引(yin)(yin)擎(qing)(qing),更(geng)好(hao)地使(shi)用它(ta)。當然,千里之行始于足下,經常(chang)學習(xi)游戲(xi)(xi)引(yin)(yin)擎(qing)(qing)底層原(yuan)(yuan)理(li)的(de)(de)(de)人到了一定的(de)(de)(de)積(ji)累(lei)的(de)(de)(de)時(shi)候(hou),自己(ji)造個游戲(xi)(xi)引(yin)(yin)擎(qing)(qing)也是(shi)可以的(de)(de)(de)。
對于像學習游戲引(yin)擎原理的人來說,需要制定自(zi)己明確的長期(qi)目標:
1) 首先(xian),一開始(shi)可能對游戲引擎(qing)沒什(shen)么概念,建議先(xian)使用一兩個游戲引擎(qing)(我推薦C++程序(xu)員學習虛幻4游戲(xi)(xi)引(yin)擎(qing),現在是免費開(kai)源(yuan)的,非(fei)常值(zhi)得學習(xi)(xi)。那些(xie)不(bu)開(kai)源(yuan)的游戲(xi)(xi)引(yin)擎(qing)盡量不(bu)要去學習(xi)(xi),因為其(qi)對于學習(xi)(xi)原理來(lai)說沒有(you)多大(da)貢獻)。
2) 因(yin)為游戲開(kai)發就是一(yi)門(men)實時(shi)渲染的藝術(shu),所以離不開(kai)圖形庫的學習(xi)。現在主流的圖形庫是Windows平臺專用的DirectX 11和通用平(ping)臺的Opengl。這兩(liang)個圖形庫(ku),至少需(xu)要(yao)入門其中一個。
3) 然后(hou),你就可以開始看(kan)計算機圖形學的書籍了。如(ru)果你發現你的理(li)論底子不足(zu),這個時(shi)候就需要補一下線性(xing)代數(shu)、基本的微積分、還有3D數學(xue)的知識。
4) 游戲引(yin)(yin)擎中包(bao)含(han)了(le)各(ge)個(ge)部(bu)(bu)分(fen),上面的渲(xuan)染只是(shi)游戲引(yin)(yin)擎的一部(bu)(bu)分(fen)。還有(you)其(qi)它(ta)諸如著色(se)器編寫(xie)、地形(xing)編寫(xie)、物理引(yin)(yin)擎編寫(xie)、模型(xing)和(he)動畫、人工(gong)智能體(ti)設計、網絡編程(cheng)等等,完成渲(xuan)染部(bu)(bu)分(fen)的基本學習后,你可以選擇自(zi)(zi)己(ji)(ji)感(gan)興趣的部(bu)(bu)分(fen)進行專攻,畢竟(jing)我們實際工(gong)作大多數(shu)時候是(shi)團隊(dui)開發(fa),而不是(shi)單打獨(du)斗,每個(ge)人都(dou)應該精通(tong)自(zi)(zi)己(ji)(ji)所擅(shan)長的那部(bu)(bu)分(fen)。
申明:以上內容源于程序系統索引或網民分享提供,僅供您參考使用,不代表本網站的研究觀點,請注意甄別內容來源的真實性和權威性。