手游客戶端開發-游戲引擎介紹

>>>  技術話題—商業文明的嶄新時代  >>> 簡體     傳統

基于傳統軟件的思維,第一個想到的問題是手游客戶端用什么語言開發?就像傳統軟件時要選用C/C++開發,還是用java,還是C#等。第二個問題是,要不要給Android開發一套程序,給IOS再開發一套?就像給windows開發一個程序,給MAC OS再開發一套程序一樣。也許開發一個普通的手機應用還要考慮平臺和語言的問題,但對于手游,這些大可以不用關心,需要關心的是選什么游戲引擎


那么什么是游戲引擎呢?


一個學術點的定義是,游戲引擎是指一些已編寫好的可編輯電腦游戲系統或者一些交互式實時圖像應用程序的核心組件。這些系統和組件為游戲設計者提供各種編寫游戲所需的工具,其目的在于讓游戲設計者能容易和快速地做出游戲程式而不用由零開始。


通俗一點來說,每個游戲都有很多共同的部分模塊,比如圖像渲染,音效編輯,物理行為,碰撞檢測,腳本控制,電腦動畫,人工智能,場景管理,網絡通信等等,把這些公共的模塊,常用的行為,能復用的程序封裝成一個框架性的軟件,就是游戲引擎,它就是一系列的工具和生產鏈。


引擎相當于游戲的框架,框架打好后,關卡設計師、建模師、動畫師只要往里填充內容就可以了。一個游戲作品可以分為游戲引擎和游戲資源兩大部分。游戲資源包括圖象,聲音,動畫等部分,列一個公式就是:游戲=引擎(程序代碼)+資源(圖象,聲音,動畫等)。游戲引擎則是按游戲設計的要求順序的調用這些資源。


大部分引擎都支持跨平臺,如手游中常用的cocos2d系列和unity3D系列,都同時支持Android和IOS平臺,這就解決了平臺問題。


那么語言問題呢?還是以cocos2d-x和unity3D為例,Cocos2d-x支持C++,JavaScrip和lua,unity3D支持C#,Javascript和Boo(自帶的語言,很少用),所以游戲引擎選好了,再看看開發人員熟悉哪個語言,就挑一個用吧。


所以手機客戶端開發,先要進行開發技術選型,一般來說就是對游戲引擎進行選型。是否選取某個游戲引擎,一般從以下幾個方面進行考慮:2D/3D、跨平臺性、性能、可擴展性、開發工具、資源豐富程度和技術趨勢等。


下面介紹下手游領域常用的游戲引擎及其特點:


Cocos2d--休閑游戲的完美之選


正如其名稱所顯示的,它是一個2D游戲引擎,cocos2的系列引擎是世界上最受歡迎的開源選項。它有很多分支來支持多種語言,如Objective-C, C++,C#,Java,JavaScript,Ruby以及Python等等,但C++版本的維護最積極,也有最廣泛的支持平臺。

優點:

  • 它支持非常廣泛的平臺,特別是移動平臺。

  • 免費和開源(MIT許可)

  • 提供廣泛的擴展,工具和開源代碼。

  • 很多社區創建了實例和學習資源。

  • 大型的社區支持。

  • 含硬件加速的圖形和出色的性能。

  • 音頻支持(大多數版本)

缺點:

  • 沒有大公司提供支持和錯誤修復。

  • 有些API不太規范。Cocos2d最初是用Python寫的,很早就改用Objective-C來編寫,后來又移植到C++,所以其中的API有不同語言的痕跡,并不規范。

  • 它不鼓勵良好的結構。

     


Unity3D--大眾之王


Unity功能很強大,它原來是專門為3D游戲設計的,但后來3D游戲中也需要2D畫面,為避免依賴外部工具,又增加了2D的支持。它具有廣泛的跨平臺支持,也是當前使用最為廣泛的手游3D引擎。

優點:

  • Unity具有非常多的資源和插架,提供了很多免費和價格合理的內容。

  • Unity的可視化編輯工具很優秀,更可以通過插件擴展。

  • 它支持廣泛的資源格式,并按目標平臺自動轉換為最佳的格式

  • 它支持非常廣泛的平臺,包括移動、桌面、網頁和家用游戲機。

  • 很溶劑就部署到多個平臺。

  • 不需復雜的配置,就能渲染出高品質的效果。

  • 免費版本包括了大部分功能。

缺點:

  • 不容易進行團隊協作。Unity有一個資源服務器產品以幫助團隊協作,但非常昂貴。如果不使用它,團隊成員之間共享代碼和資源有時就很痛苦。

  • 性能不是很好。Unity所使用的編譯器不能很好地對ARM進行優化。

總體來說,Unity是一個不錯選擇,尤其是對于那些不要求達到硬件性能極致的個人開發者。


UNREAL -- AAA級引擎走進大眾市場


Unreal有著悠久的歷史,它是頂級PC和主機平臺3D游戲引擎之一,從第三代引擎開始支持移動平臺。它的定價方式比較獨特。每月19美元另加5%的收入份額。

Unreal引擎是用C++編寫的,并且C++是它官方唯一支持的開發語言,Xamarin公司開發了一個C# 語言的支持,但是需要購買Xamarin的授權。

優點:

  • AAA級的游戲品質

  • 擁有游戲開發中各方面最先進的工具

  • 提供完整源代碼訪問,可以擴展,定制和修復引擎的錯誤

  • 這個定價模式非常適合高風險的游戲開發

缺點:

  • 開發語言僅支持C++,這是對初學者不太友好的語言

  • 工具和引擎的學習曲線比unity的更陡峭

  • 引擎對舊設備的支持有限

  • 該定價模式對一個成功的項目來說非常昂貴

對運行于高端移動設備的高品質3D游戲來說,Unreal是一個很好的選擇,但它并不是適合每個人。


客戶端引擎總結


每個游戲都有自己的引擎,而受到公眾認可的引擎卻不多,這里僅僅介紹幾個流行的手游游戲引擎,還有很多其他的手游引擎。很多大公司,會開發自己的游戲引擎,當然開發引擎本身,和開發游戲一樣,也是一個賺錢的好項目。

另外,隨著HTML5的興起和發展,很多HTML5的游戲引擎也應運而生,多用于手機網頁游戲,而不是手游APP的開發,這里不再做深入介紹,感興趣的同學可以自行搜索。



dotNET跨平臺 2015-08-23 08:49:05

[新一篇] 一組科學家發明的偽永動機,不明覺厲

[舊一篇] 如何判斷自己是否適合自由職業?
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表