1. 程式人生 > >手遊引擎Unity和Cocos各有什麼優劣?

手遊引擎Unity和Cocos各有什麼優劣?

轉載:https://www.zhihu.com/question/23499299/answer/24899792

作者:知乎使用者
連結:https://www.zhihu.com/question/23499299/answer/24899792
來源:知乎
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。
 

以下我以“大型3D、大型2D、中小型2D和微型2D”來劃分,儘可能減少”糾結“感。

因為引擎的選擇一向做不到“以偏概全”,他們各有所長,應選擇自己適合的。

尤其是差異化這麼明顯的兩個引擎。

一、3D遊戲(包含2.5D

只能:Unity3D
作品:職業棒球、星際陸戰隊等
分佈:歐美國家用Unity3D的較多。商業化引擎中,3D遊戲佔比最高
原因:

 

就像 @朱雲所說。Cocos2d-x目前還不支援3D相比而言,U3D就是你唯一的選擇了。


二、大型2D遊戲(可以指安裝包上百兆的)
推薦:Unity3D
作品:搗蛋豬、冰雪奇緣、天天飛車、絕代雙驕等
分佈:歐美國家用Unity3D的較多,國內用Cocos2D-X的多
原因:
 

1、遊戲這東西,就是要跟直覺打交道的
 

我的想法有點極端,我感覺在遊戲世界裡,程式碼似乎更像是“妥協”的產物。

如果能做到“所見即所玩”,那真的是一個非常愜意的事。到時候,或許一個8歲小孩就能獨立自主的開發一款遊戲。

 

而這一點,Unity3D的王者地位,當之無愧!
 

2Unity3D提供了超讚的設計工具,讓你感覺像是在用3DMaxFlash來做遊戲

3、適合大型團隊,美工、動畫更容易上手

U3D可以讓美工、動畫、碼農在同一個平臺上各司其職。這點從目前來看,Cocos2D-X望塵莫及。



三、中小型2D遊戲(百兆以內的)
推薦:Cocos2D-X
作品:捕魚達人、我叫MT、2048等
分佈:東亞遊戲多出自Cocos2D-X,尤其中國。但大多為小型遊戲
原因:
 

1Unity3DCocos2D-XAPK包要大了近十倍
 

僅以Android手機為例,同樣的一個2DHelloWorld,兩者的安裝包大小:
Unity3D:約為9.27M


Cocos2D-x:約為1.67M

解開包後發現,裡面除了兩個一共佔據近12M的SO庫(libmono.so和libunity.so),還有一票的DLL檔案。其中System.dll、Assembly-CSharp.dll和mscorlib.dll這三個核心檔案就佔了5M。雖然它們壓縮比約為50%,但僅這些檔案就佔了這麼多。心疼啊。

 

而這,在寸土寸金的中小型遊戲面前是多麼可怕的數字。
 

2Cocos2D-XUnity3D快很多
 

即使不用測試工具,也可以輕易的發現這一點。

 

主要因為Unity3D用了Mono架構,它移植自微軟的.Net。每次啟動都會載入Mono框架和Unity3D引擎,再載入.Net Assembly(一堆DLL檔案),這可比Cocos2D-x這種純C++(包括Lua和JS)實現要慢很多。
 

3、獨立開發者更喜歡遊戲
 

獨立開發者大多是“技術達人”(不然怎麼開發遊戲)。U3D會讓他們有“無所適從”感,從而影響了對U3D的靈活運用。對這些人而言,這是赤裸裸的時間成本。在遊戲開發中,這點尤為重要。還是Cocos2D-X讓他們更感到親切”,更有成就感

 

也許你會問:“你怎麼知道?”

因為我就是搞技術的。


4、中國遊戲多出自Cocos2D-X
 

Cocos2D-X是正宗國產貨,又是優秀的開源專案,國外使用者群也不少。

也正是因為這個原因,C2D天生就對中國使用者很“偏愛”。比如社群,我在上面問了兩個問題,基本上當天問當天答,而且非常熱心。從這一點我就對C2D產生了不錯的好感。


5、Unity3D要收費
 

對大型2D遊戲團隊來說或許還不算什麼。

 

初步算一下,Pro要1500$,手遊怎麼至少也得相容iOS和Android吧,各自1500$,再加個Team套裝,加一塊兒,5000$,兩萬多銀子。

 

Cocos2D-X免費、開源。遇到問題可以研究原始碼或向社群求救。



四、微型遊戲(指爭取安裝包在1M以內的)
推薦:AndEngine、Cocos2D-iPhone
作品:Flappy Bird、小球快跑、五子棋等
分佈:不需要跨平臺的超小遊戲用的多。
原因:


如果只想在一個平臺上開發遊戲,無疑上述兩種是最好的選擇
 

其中AndEngine開發出來的遊戲最小才400多KB,大名鼎鼎的Flappy Bird就是用它做出來的。

另外,iPhone的Cocos2D劃到這裡似乎不太合適,但仔細想想,現在有更成熟的Cocos2d-x方案,Cocos2D劃到微型遊戲一列,相信是早晚的事(個人看法,輕拍)。


五、總結

 

1、Unity3D:如果你需要開發大型遊戲,或需要開發3D遊戲的,請選這個。

 

2、Cocos2D-x:如果你開發的是中小型遊戲,對安裝包大小比較在意的,請選這個。

 

3、Andengine、Cocos2D-iPhone:如果你只為開發單平臺遊戲,又非常在意速度和安裝包大小,請選這個。


最後。俗話說:沒有最好的,只有最適合自己的。我想這句話同樣適用於開發遊戲。

共勉!