發(fā)布時間 : 2020-08-25
文章熱度 : 229
游戲編程語言多種多樣,學好每一種編程語言,對于游戲程序開發(fā)來說都至關(guān)重要。但根據(jù)現(xiàn)階段及未來游戲的發(fā)展方向來說,還是有側(cè)重點的,那哪一種語言是比較重要的呢?
現(xiàn)代各種領(lǐng)域的開發(fā)技術(shù)已經(jīng)成熟,不再能隨意選擇開發(fā)語言和技術(shù)棧,絕大多數(shù)情況下只能使用比較流行的方案、工具、和語言。
以上觀點不僅適用于游戲開發(fā)領(lǐng)域,其實更適用于網(wǎng)頁前端、網(wǎng)站后端、爬蟲、大數(shù)據(jù)、AI等等其它方向。
舉個例子:用python開發(fā)游戲其實是很有趣的,特別是語法上比較便利。但是隨著時代發(fā)展,采用python的游戲引擎越來越少、越來越邊緣化,離主流技術(shù)越來越遠。
現(xiàn)在有些人選擇用python做游戲更多的就只是以學習為目的了,缺少很多常用的工具、技術(shù)支持,需要自己造輪子,離做出真正的游戲會比較遠。
類似的,現(xiàn)在編寫爬蟲絕大多數(shù)情況下都會使用python;學習AI的課程 99%會采用python+TensorFlow;網(wǎng)頁前端基本只能用javascript(以及js的衍生語言比如typescript)。由于現(xiàn)在做技術(shù)非常有必要沿著前人的路繼續(xù)走,所以只能選擇相對成熟的技術(shù)和語言,沒有太多自由選擇的空間。
具體到游戲開發(fā)上,如何選擇呢?
目前王道之選應(yīng)該是Unity引擎,開發(fā)語言為C#。它也是在與Cocos2d、UE4等成熟引擎的競爭中脫穎而出的,在功能、效果、開發(fā)難度上取得了很好的平衡。優(yōu)點不需多言,反正是大多數(shù)人的選擇。
其次是UE4(虛幻4,unreal engine 4),UE4對于高性能設(shè)備(電腦和PS4等)支持更好,用于開發(fā)手游也不錯。上手UE4的主要問題是知識系統(tǒng)相對繁雜。
比如Unity的物理系統(tǒng),碰撞體、剛體組件都比較簡單和統(tǒng)一,腳本聯(lián)動也很好理解,初學者掌握起來很快。相比之下UE4的相關(guān)組件要多很多,且由于窗口比較多,初學者往往會迷失在一些奇怪的地方(當然熟悉了之后就沒問題了)。
UE4的開發(fā)語言是C++,但是游戲邏輯可以不寫一行代碼,直接用“藍圖”解決。使用“藍圖”開發(fā)游戲的利弊就不展開說了,總之UE4為用戶提供了“較低的門檻”與“較高的門檻”這兩種選擇;而Unity是提供了統(tǒng)一一種“適中的門檻”。具體好壞見仁見智了。
游戲開發(fā)還有另一個分支——H5游戲,也就是微信小游戲、網(wǎng)頁游戲等,也可以打成app包。在這個領(lǐng)域中,cocos2d-h5又大有用武之地。但是目前這個領(lǐng)域主要還是服務(wù)于小游戲、簡單類型的游戲的,離“現(xiàn)代游戲開發(fā)技術(shù)”有一點距離。
現(xiàn)代引擎已經(jīng)提供了很友好的開發(fā)方式和編程方式,Unity的C#,UE4的藍圖等等。建議初學者把絕大部分精力花在這些主流的開發(fā)技術(shù)上面。無論用哪種語言和技術(shù),其思想以及解決問題的方法都是相通的,使用主流技術(shù)學習曲線更平滑、提高也更快。
另一方面,C/C++這些更底層、潛力更大的語言未來也要掌握。對于想走技術(shù)路線的人來說,這些底層技術(shù)是遲早要掌握的(初學者可以不急著先學這些)。不僅在UE4里面C++可以直接用到;即便是用Unity,掌握C/C++以及了解底層原理也會大有裨益,比如現(xiàn)在流行的tolua等擴展庫就是把C/C++編寫的庫與C#做了結(jié)合。
總結(jié)來說:首先,一開始要跟上主流技術(shù);其次,游戲開發(fā)的技術(shù)方面非常注重積累,底層技術(shù)這幾十年來也一直在發(fā)展,C++的地位越發(fā)穩(wěn)固而不可替代。
明確目標是一方面,找到好的學習環(huán)境和好的學習資源也非常重要,上海博思游戲?qū)W校為零基礎(chǔ)學員提供精心設(shè)計的游戲程序課程,為學員的游戲開發(fā)學習之旅保駕護航。