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