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