如何學(xué)習(xí)游戲開發(fā)
一、平臺與編程語言選擇
首先,游戲開發(fā)的平臺就有很多類型:
*個人主機(jī)平臺:Windows、Linux、Mac OC;
* 移動平臺:iOS、Android、Windows Phone、BlackBerryOS、Symbian;
* 專業(yè)主機(jī)平臺:Xbox、PlayStation、Will等。
如果你想從事移動平臺的游戲開發(fā),Android主流JAVA語言,iOS主流Object-C語言,那么你就要去學(xué)習(xí)這個平臺主流的語言,而在個人主機(jī)上主流的游戲開發(fā)語言現(xiàn)在包括以后很長時間也還是C 。
但是并不是所不同平臺的游戲開發(fā),就毫無共通之處,學(xué)了這個到了另一個平臺就無用了。不是這樣的,編程的世界里你走得越遠(yuǎn)你會發(fā)現(xiàn)很多東西的本質(zhì)都是相似的,例如你如果扎實地理解了C 的基本語法(而不是死記硬背),日后再轉(zhuǎn)Java語言也不是很難的事情,因為它們本質(zhì)的面向?qū)ο筇匦赃€有各種編程語言特性都是相通的。
所以,如果你想走得遠(yuǎn),在學(xué)習(xí)的時候不能簡單流于表面,對于一樣知識越深入到底層,你就越能看到其它知識與其的異曲同工之處,因此你將比別人更輕松。但是,當(dāng)然一開始最好盡可能是貼合自己的專屬領(lǐng)域和編程語言,這樣能盡快地在這個領(lǐng)域持有一席之地。
無論你選擇哪個平臺,游戲開發(fā)這個浩大的工程都離不開游戲引擎,所以這里都有二條路線讓你選擇:
*只使用游戲引擎;
*使用游戲引擎并深入學(xué)習(xí)游戲引擎原理。
二、游戲開發(fā)不同學(xué)習(xí)線路
線路一:只使用游戲引擎
對于第一條路線,游戲引擎的使用并不困難,因此適合想快速上手游戲開發(fā)工作的人。我們工作大多數(shù)時候也不會自己開發(fā)游戲引擎,所以這樣對于一般的日常工作也沒什么大礙。對于只使用游戲引擎的人來說,入門階段要做的就是看該引擎的教程(書籍、視頻、網(wǎng)上博客、網(wǎng)上教程、官方幫助文檔等),并且熟練該教程所使用的編程語言。
所以你要做的第一件事,就是去了解現(xiàn)在流行的游戲引擎。因為不同平臺下的性能不同,支持的編程語言也不盡相同,所以針對不同平臺下的流行的游戲引擎也是不同的(方括號里面是特別推薦的,基于開源性、易用性、性能與效果等方面的綜合水平推薦):
*windows或游戲主機(jī):【Unreal】、寒霜、CE3
*蘋果ios:【unity3D】、【cocos2d-ObjC】、【Unreal】、sparrow、sprite kit。
*安卓:【unity3d】、【cocos2d-x】、【Unreal】、AndEngine、libgdx。
*網(wǎng)頁:【Egret】、【cocos2d-html5】、Fancy3D、unity3d。
在選擇游戲引擎的時候,盡可能選用流行的游戲引擎,因為這個游戲引擎流行意味著官方的功能比較完善和易用,問答社區(qū)也比較多人解疑。各個游戲引擎也各有千秋,Unity3d勝在簡單易用,對性能要求不高,但是效果不夠華麗,因而一般用在移動平臺而不會用在電腦或游戲主機(jī)。Unreal勝在開源免費,而且效果也很出色,但是對設(shè)備要求比較高,因而常常用來開發(fā)效果絢麗的大型游戲。cocos2d-x也是開源免費的,在2D領(lǐng)域深有造詣,但是缺點是不可視化開發(fā)。另外,如果你想了解游戲引擎原理,那么首要考慮的就是開源的游戲引擎。
不同游戲引擎使用的編程語言或者腳本語言可能是不一樣的,所以當(dāng)你想要學(xué)習(xí)某個游戲引擎的時候,也應(yīng)該留意該游戲引擎所使用的語言。大部分情況是,Windows用的的是C ,同時結(jié)合lua或python腳本語言。而ios平臺下使用Objective-C或swift,安卓平臺下使用Java。但這不是必然的,例如Unity在各個平臺下都可以用C#或者javascript腳本語言。
下面是商業(yè)上流行的游戲引擎詳細(xì)比較:
1) Unreal4(虛幻4)
*適用平臺:Microsoft Windows、Mac OS X、iOS、Android、虛擬現(xiàn)實設(shè)備(包括但不限于SteamVR/HTC Vive、Morpheus、Oculus Rift及Gear VR)、Linux、SteamOS及 HTML5平臺。
*編程語言:C 或無需編寫代碼。
*優(yōu)點:開源免費,畫面效果出色,已有多款商業(yè)大作經(jīng)驗。同時,它還能跨平臺,商店資源豐富,提供了無需編寫代碼即可制作游戲的強(qiáng)大功能(可視化開發(fā))。
*缺點:開發(fā)機(jī)器配置要求較高。
2) Unity3D
*適用平臺:iOS、Android、Windows phone 8、Tizen、Microsoft Windows、Windows Store應(yīng)用程序、Mac、Linux/Steam OS、網(wǎng)絡(luò)播放器、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。
*優(yōu)點:方便易用,中文資料豐富,跨平臺,商店資源豐富,可視化開發(fā)。
*缺點:畫面效果一般,不是免費開源,引擎效率比較低。
3) Cocos2d系列(包Cocos2d-x、Cocos2d-ObjC、Cocos2d-html5、Cocos2d-xna等)
*適用平臺: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#。
*優(yōu)點:開源免費,跨平臺,中文資料豐富,2D技術(shù)豐富且成熟。
*缺點:不可視化開發(fā),3D方面技術(shù)不成熟。
4) CryEngine3
*適用平臺:Microsoft Windows、OS X、Linux、PlayStation 3、PlayStation 4、Wii U、Xbox 360、Xbox One、iOS、Android。
*編程語言:C 、Lua。
*優(yōu)點:畫面效果世界一流,可視化開發(fā),跨平臺。
*缺點:開發(fā)機(jī)器配置要求較高,不是免費開源。
5) Frostbite3(寒霜3)
*適用平臺:Microsoft Windows、PlayStation 3、PlayStation 4、Xbox 360、Xbox One。
*編程語言:C 。
*優(yōu)點:畫面效果出色,可視化開發(fā),跨平臺。
*缺點:開發(fā)機(jī)器配置要求較高,不是免費開源。
6) Egret(白鷺)
*適用平臺:HTML5、iOS、Android、Windows Phone。
*編程語言:TypeScript、JavaScript。
*優(yōu)點:免費開源,配套工具多,全中文文檔,可視化開發(fā),跨平臺。
*缺點:支持平臺較少,大多數(shù)時候用于開發(fā)對性能和效率要求不高的小游戲。
但是使用游戲引擎畢竟是停留在表面看不到本質(zhì),當(dāng)游戲開發(fā)的時候出現(xiàn)了某些問題或者特殊需求,你往往很難處理。而且游戲引擎技術(shù)日新月異,你所學(xué)的幾乎都是別人留下來的方法,而不是其本質(zhì)思想。如果將來別的游戲引擎興起,你又要重新學(xué)習(xí)另外的游戲引擎怎么使用。在很多大公司里面,甚至都有自己公司內(nèi)部專用的引擎(如網(wǎng)易公司的風(fēng)魂引擎、金山公司的劍網(wǎng)3引擎、蝸牛公司的Flexi引擎等等)。所以單純地走這條路線,可能不會讓你走得很遠(yuǎn)并且可能會日漸乏味。
線路二:使用游戲引擎并深入了解游戲引擎原理
對于第二條路線,深入學(xué)習(xí)游戲引擎原理短時間不會讓你的工作有什么卓越的成效,但是可以彌補(bǔ)只使用游戲引擎導(dǎo)致的問題,而且學(xué)習(xí)游戲引擎原理,更多時候不是一定就為了自己日后要造個游戲引擎,而是更深入理解自己的游戲引擎,更好地使用它。當(dāng)然,千里之行始于足下,經(jīng)常學(xué)習(xí)游戲引擎底層原理的人到了一定的積累的時候,自己造個游戲引擎也是可以的。
對于像學(xué)習(xí)游戲引擎原理的人來說,需要制定自己明確的長期目標(biāo):
1) 首先,一開始可能對游戲引擎沒什么概念,建議先使用一兩個游戲引擎(我推薦C 程序員學(xué)習(xí)虛幻4游戲引擎,現(xiàn)在是免費開源的,非常值得學(xué)習(xí)。那些不開源的游戲引擎盡量不要去學(xué)習(xí),因為其對于學(xué)習(xí)原理來說沒有多大貢獻(xiàn))。
2) 因為游戲開發(fā)就是一門實時渲染的藝術(shù),所以離不開圖形庫的學(xué)習(xí)?,F(xiàn)在主流的圖形庫是Windows平臺專用的DirectX 11和通用平臺的Opengl。這兩個圖形庫,至少需要入門其中一個。
3) 然后,你就可以開始看計算機(jī)圖形學(xué)的書籍了。如果你發(fā)現(xiàn)你的理論底子不足,這個時候就需要補(bǔ)一下線性代數(shù)、基本的微積分、還有3D數(shù)學(xué)的知識。
4) 游戲引擎中包含了各個部分,上面的渲染只是游戲引擎的一部分。還有其它諸如著色器編寫、地形編寫、物理引擎編寫、模型和動畫、人工智能體設(shè)計、網(wǎng)絡(luò)編程等等,完成渲染部分的基本學(xué)習(xí)后,你可以選擇自己感興趣的部分進(jìn)行專攻,畢竟我們實際工作大多數(shù)時候是團(tuán)隊開發(fā),而不是單打獨斗,每個人都應(yīng)該精通自己所擅長的那部分。
聲明:以上內(nèi)容源于程序系統(tǒng)索引或網(wǎng)民分享提供,僅供您參考使用,不代表本網(wǎng)站的研究觀點,請注意甄別內(nèi)容來源的真實性和權(quán)威性。申請刪除>> 糾錯>>