為什麼很多動作遊戲都是 Unity3D 開發?相比 Cocos2d-x 更容易嗎?

考慮做跨平台的 2D 遊戲,引擎選擇是 Unity3D 還是 cocos2d-x 呢?


Unity和Cocos2d-x,嚴格來講並不是同樣的產品類型。Unity是一套「解決方案」,而Cocos2d-x僅僅是一個庫。兩者相比較,後者僅相當於前者的一個模塊。Unity提供集成的場景編輯器,物理引擎,材質編輯、動畫編輯等等,再加上本身的類插件功能,能讓第三方通過包來幫助生產周邊工具。但從Cocos2d-x來講,如果有公司要用,必須找到相關的編輯器,集成第三方的物理引擎(如Box2D)才能與Unity在解決方案這個級別上相提並論。就如有名的3D渲染引擎Ogre和解決方案Unreal、CryEngine一樣,本身並不具備可比性。

很多公司採用Cocos2d-x來做項目的抉擇是,對於2D項目來說,Unity的確是把「牛刀」了,駕馭起來不是很順暢。Cocos2d-x加上一些第三方的工具,就能對付項目,而且駕馭起來相對簡單,就會選擇Cocos2d-x而不是Unity。


我目前的角色也不太方便說什麼。所以我只描述事實。

在2013年底的時候,很多大佬預言2014年是3D的天下, cocos死定了;這個狀況呢,我在2012年底就經歷過了。實際情況是,現在已經7月份了,7月份之前最賺錢的幾個遊戲,刀塔傳奇、放開那三國、雷霆戰機、全民飛機大戰,全部是基於cocos2d-x的2D遊戲。

我覺得造成這種結果的原因:

1. 端游全部3D化,導致大家誤判,而實際上2D遊戲玩家和CP都被趕到頁游上面了。但本質上,端游和頁游仍然是共享一個平台:桌面電腦。

2. 手機上尚未誕生頁游形態。也就是說ipa和apk需要承載PC時代的端游+手游+新進入的初級玩家。

3. 手機遊戲玩家比頁遊玩家更休閑,甚至大量非核心向遊戲玩家比如你我老婆、父母、孩子都加入手機遊戲玩家陣營。

一般情況下我不在知乎回答問題,今天例外。除了我說的廢話之外,本周發布的cocos2d-x v3.2已經支持3D模型載入和3D骨骼動畫。我認為2D和2.5D遊戲還將持續1年到2年的時間。


很多人說u3d是項目失敗的原因。苦笑。砍不了柴不一定是刀的問題,也可能是不會使,就算是刀的問題,那也是你沒磨好。刀是無辜的。 所以趕緊終止這種滑稽的言論吧。


Unity相對於Cocos2d-x在我看來有以下優劣:

+ Code in C#

+ 多功能且方便的Editor

+ 易用的Physics

+ 方便在不同解析度下測試

- 不是開源

- Editor的操作有時不如code清晰明白 (因人而異)

Unity有很多2D框架,

例如免費的Orthello,Futile,和收費的2d toolkit,ex2d等等。

如果喜歡Cocos2d-x的開發方式和代碼風格,但是又希望利用Unity平台的便利,

那可以試一試Futile框架。

Futile是一個開源的code-centric的2D框架,

代碼風格和Cocos2d-x和Flash類似,

是最近的興起的Unity下的2D框架。

最後,

項目成敗,最終取決於人,而不是工具。

-----------------------------Update:2013年11月13號-----------------------------

Unity4.3 現在支持2D了 :)


可以參考雨血蜃樓和雨血影之刃,unity3d做的


對於程序員來說,unity3d更加所見即所得。不過開發和cocos2d應該是一個數量級的。

對於美工來說,2d遊戲要畫大量的逐幀動畫畫到手抽筋,3d的工作量小多了。


除了樓上所說的,個人認為:

1、C#的開發成本和維護成本比C++低很多

2、Unity3d editor使用方便,可見即可得

3、內存管理也方便,不需要太多關注內存問題

4、即使買正版軟體,也便宜啊,1500-3000美刀


2D遊戲用cocos2d-x,3D遊戲用unity3D,這幾乎已經成為了現在的標準答案。

只是unity3D第一隻是免費開啟了少數功能,第二必須將效率列入考慮,所以如果不是特別大的團隊,不建議用unity3D來做項目。

至於上面有人提到flash,我們現在就正在使用flash製作iOS遊戲,說實話,做出這個選擇僅僅是因為這是一個頁游的移植,每時每刻我們都在想如果這個遊戲是用cocos2d來做該是多麼美好……


unity3d開放肯定比cocos2dx來的簡單,看你嘛,u3d要考慮到版權問題,cocos2dx畢竟免費


請留意 Unity 4.3.4 到目前 2014 年 4月為止, 仍然只支援單一核心作處理器, 稍為多一點運算就會跳幀. 電腦遊戲還好, 手提電話遊戲就完全不行, 因為手提電話單一核心速度低, 明明有 4 個核心都只能啟用一個, 而且就算想用 Thread 都不行, 99% 都強制要留在 Main Thread, 而實際上無論多少條 Thread 都只是用在一個核心, 如果您想開發手提電話遊戲, 別用 Unity.

但 Unity 的確是一個非常方便的開發環境, 這點是肯定的. 令人又愛又恨


如果跨平台2D遊戲的話當然是flash air啦,u3d最先版本雖然也支持2D的功能,但是感覺還是不夠完善。u3d的特點是只要有錢買各種工具可以極大的節省開發的時間以及需要的人手。正如上面周華提到的,u3d作為一款解決方案層級的引擎,在渲染以及畫面方面有很大的優勢,所以很多打算做精品遊戲的公司會考慮u3d。


如果你的遊戲是純2D遊戲那麼使用cocos2d-x會是一個很好的選擇,因為cocos2d有很多成熟的2D工具可以幫助你快速開發,比如cocos builder 和cocos studio. unity是3D引擎,雖然有眾多第三方的2D工具,但大多需要收費,而且僅僅使用其中一個並不能很好的幫助你快速完成工作。


小團隊使用cocos2d開發,大項目的還是使用U3D


unity 現在 開源了,不知道 unity是不是 能 更簡單 一些了


推薦閱讀:

暗黑血統2為什麼沒有成功?
Unreal 和 Unity 3D 各有什麼特點?如何選擇?
知乎遊戲界有哪些值得關注的用戶?
《饑荒》這款遊戲是怎麼做的?
在三維遊戲關卡製作中,關卡設計師與場景美術應該如何合作?

TAG:遊戲 | 遊戲開發 | 手機遊戲 | Unity遊戲引擎 |