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