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