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