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