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