Unity和Cocos2D在2D遊戲開發上的對比
Unity和Cocos2D在2D遊戲開發上的對比
CasualArena團隊自從2008年開始就在開發Flash網頁遊戲。過去的一年裡,他們學習不同的技術以及和3D的專業開發 ,擁有了在跨平臺的移動遊戲和平板遊戲上的專業開發經驗。這篇文章強調了這兩個平臺的不同環境以及它們之間各自不同的特點。大多數的移動遊戲和平板遊戲開發者都希望他們開發的遊戲可以執行在不同的平臺上,至少能夠在IOS和安卓平臺上執行。當然,用原生程式碼(IOS的Objective-C,安卓的JAVA)總是可以讓兩個或者更多平行開發得以實現,但是不建議這樣做。最有效的做法是使用一個能一次開發就可以釋出到多個平臺的開發環境。那麼問題來:該使用什麼技術呢?
除了別的之外還有各種各樣的框架和技術可以使用:Unity3D,Cocos2D,Marmalade SDK以及Adobe Flash。Adobe Flash實際上只能用在你想把開發的網頁遊戲迅速移植到移動裝置上。如果你開發的遊戲很簡單(如棋盤遊戲),那麼就可以使用Flash開發,然而,如果你的遊戲比較複雜的話(如經營遊戲,有大量圖形或者動畫的遊戲等)那麼就不適合用Flash做開發。Cocos2D是一個全面的框架,開源並且完全免費。
這就是大多人使用這個技術的主要原因,勝過不完全免費的Marmalade和Unity.Unity3D仍然是開發3D遊戲的主要開發平臺。Unity的新版本已經包含了開發2D遊戲的功能,在2D遊戲開發方面也夯實了堅定的地位,Cocos和Unity是開發2D遊戲的首要選擇。根據我們的經驗,我們推薦選擇這兩個中的一個來開發2D遊戲。但是仍然有一個大問題:
在網上你可以找到很多這兩種技術的對比。在我們開發遊戲之前,我們要了解相關資料和資訊並決定使用那種技術。但是人們對這兩種技術的對比大多都比較主觀。擅長Cocos的人會偏向於Cocos。而使用Unity的人則偏向於Unity。真的極少有專業開發人員在兩個平臺上做對比。我們在這兩種平臺上都學習開發過,也有自己的主觀看法:Unity是一個更清晰更好的平臺。實際上更精確的回答應該是:除非你能負擔的起Unity的費用,否則就選擇Cocos。Unity3D比Cocos2D的技術要更為高階,雖然Cocos開源並且免費。考慮到他們的不同。在任何時候談論Cocos2D(或者簡稱Cocos),我們都指的是-x,Cocos平臺的延伸(最初面向iPone的平臺)。
Cocos2d免費,開源和無限的使用期限。而Unity比較貴。它有免費許可證,但是專業開發人員使用的話有功能限制。許可證價格在1500美元到4500美元之間,加上稅會更多,這對新入開發人員來說是個重大負擔。Cocos2D使用 c++程式語言和開明的庫,比Unity程式處理上稍微簡單些。你可以完全檢視Cocos2d的程式碼,根據自己需求來編輯程式碼 。如果你擅長 C++而且不想承擔Unity的高昂使用費,Cocos2D就是最好的選擇。它有很多非常好用的功能,但是和Unity相比沒有什麼優勢。它有很好的物理引擎,並有每個功能特徵都有大量例項,有一個龐大的的開發者社群來支援和改善等。但是這些Unity也有。
當然我們談論的是2d,其他的一切,Coco不支援3d軟體
Cocos2D沒有整合的環境設計。視覺化介面設計要用程式設計實現,用C++載入和定點陣圖片。但是你可以使用免費的外部圖形編輯器CcosStudio,可以幫你在螢幕定位元素和配置某個物件。但是這個編輯器比Unity的功能少太多。Unity的編輯器完全整合在了一起。而Cocos Studio並沒有,而且它的操作基於XML檔案,依靠Cocos的庫生成一系列影象。它存在一些bug,並不能在所有的電腦上工作。Unity圖形編輯器通過拖動元件和修改引數可以很輕鬆的佈局和設計Unity場景,加入物件,指令碼,燈光特效,圖形效果等。因此,它相對於Cocos2D或者Cocos Studio的佈局來說大大減少了開發時間。
程式語言
Cocos2D使用C++語言程式設計,Unity3D可以使用C#和Javascript。C#和Javascript都是比C++更為強大的語言,讓你的程式開發和演算法更簡單。同時,對那些不擅長C++的人來說,學起起來不會感到困難乏味。而且你還要擔心C++的指標和記憶體洩漏問題。這些問題在Unity裡都不會出現,讓你只專注於你的遊戲開發,又節省了巨大的時間。此外,程式碼編輯器,Unity使用MonoDevelop或者VisualStudio,比起Cocos更加穩定,方便和全面。總之,我們可以說C#/Javascript(Unity)比C++更簡單,是可以節省你很多時間的高效語言。
多平臺
兩中技術都是跨平臺,但是Unity更好。Cocos2D支援開發不同的移動平臺包括IOS和安卓。而Unity包含了更多:遊戲機平臺,桌面和瀏覽器。如果你想要你的瀏覽器開發支援Facebook,那麼Cocos2D就不足以勝任。但是你可以用Cocos來做瀏覽器的二次開發,比如用Adobe Flash,通常用來做為手機和網頁遊戲市場的開發。使用Unity就沒有這個必要,能夠很方便的匯出到瀏覽器。Unity支援大多數遊戲市場所使用的平臺:手機和平板(IOS,安卓,Window Phone以及黑莓),瀏覽器(和 即將到來的HTML5)遊戲機平臺(Xbox, PlayerStation和Wii)以及桌面(PC,Mac和Linux)。此外,Unity可以特殊定製給不同裝置,而Cocos2D就一個最簡單的方法(例如,適合開發安卓和IOS平臺遊戲)。
Unity有豐富的文件。有清晰的教學視訊和文字,有的已經翻譯成了西班牙語。支援相對來說快速簡潔。然而Cocos的文件很少,並且質量低劣。只有英文和少量的中文。沒有支援,論壇全是沒人回答的問題,要得到答案很困難。Unity學習起來比Cocos更快:影象編輯器,C#/Javascript和豐富的資訊和支援會讓你有個愉快的學習體驗。相反,Cocos2D相對來說,除非你擅長C和XCode++,十分想學習Cocos2D的庫。
社群和附加產品
Unity3D已經是一個非常強大的開發工具。很多人通過Aseet Store做出貢獻,讓Unity更強大。成百上千的開發人員在商店裡售賣他們的外掛,資源,和改進的東西。這些外掛裡有很多功能強大,必須要花錢買:3D模型,2D貼圖,動畫,應用程式,擴充套件編輯器,指令碼,材質都是你能額外購買或者免費在Unity官方商店裡下載到的。其中有個Ngui的外掛,一款擴充套件的圖形編輯器,為2D遊戲的開發提供了巨大的幫助,減少了開發時間。Ngui Unity就像 Javascript的jQuery.而Cococs缺乏這些根本的附加產品。
結論
Unity昂貴但值得。大量減少開發時間的比例超過了許可證的售價。許多功能在Cocos2D裡是沒有的,編譯也比Cocos2D更快。因此,Unity3D比Cocos2D更好。
原文連結:
https://en.yeeply.com/blog/comparison-between-unity-and-cocos2d-platforms-for-2d-game-developments/
原文作者:Luis Picurelli
CasualArena團隊自從2008年開始就在開發Flash網頁遊戲。過去的一年裡,他們學習不同的技術以及和3D的專業開發 ,擁有了在跨平臺的移動遊戲和平板遊戲上的專業開發經驗。這篇文章強調了這兩個平臺的不同環境以及它們之間各自不同的特點。大多數的移動遊戲和平板遊戲開發者都希望他們開發的遊戲可以執行在不同的平臺上,至少能夠在IOS和安卓平臺上執行。當然,用原生程式碼(IOS的Objective-C,安卓的JAVA)總是可以讓兩個或者更多平行開發得以實現,但是不建議這樣做。最有效的做法是使用一個能一次開發就可以釋出到多個平臺的開發環境。那麼問題來:該使用什麼技術呢?
除了別的之外還有各種各樣的框架和技術可以使用:Unity3D,Cocos2D,Marmalade SDK以及Adobe Flash。Adobe Flash實際上只能用在你想把開發的網頁遊戲迅速移植到移動裝置上。如果你開發的遊戲很簡單(如棋盤遊戲),那麼就可以使用Flash開發,然而,如果你的遊戲比較複雜的話(如經營遊戲,有大量圖形或者動畫的遊戲等)那麼就不適合用Flash做開發。Cocos2D是一個全面的框架,開源並且完全免費。
這就是大多人使用這個技術的主要原因,勝過不完全免費的Marmalade和Unity.Unity3D仍然是開發3D遊戲的主要開發平臺。Unity的新版本已經包含了開發2D遊戲的功能,在2D遊戲開發方面也夯實了堅定的地位,Cocos和Unity是開發2D遊戲的首要選擇。根據我們的經驗,我們推薦選擇這兩個中的一個來開發2D遊戲。但是仍然有一個大問題:
在網上你可以找到很多這兩種技術的對比。在我們開發遊戲之前,我們要了解相關資料和資訊並決定使用那種技術。但是人們對這兩種技術的對比大多都比較主觀。擅長Cocos的人會偏向於Cocos。而使用Unity的人則偏向於Unity。真的極少有專業開發人員在兩個平臺上做對比。我們在這兩種平臺上都學習開發過,也有自己的主觀看法:Unity是一個更清晰更好的平臺。實際上更精確的回答應該是:除非你能負擔的起Unity的費用,否則就選擇Cocos。Unity3D比Cocos2D的技術要更為高階,雖然Cocos開源並且免費。考慮到他們的不同。在任何時候談論Cocos2D(或者簡稱Cocos),我們都指的是-x,Cocos平臺的延伸(最初面向iPone的平臺)。
Cocos2d免費,開源和無限的使用期限。而Unity比較貴。它有免費許可證,但是專業開發人員使用的話有功能限制。許可證價格在1500美元到4500美元之間,加上稅會更多,這對新入開發人員來說是個重大負擔。Cocos2D使用 c++程式語言和開明的庫,比Unity程式處理上稍微簡單些。你可以完全檢視Cocos2d的程式碼,根據自己需求來編輯程式碼 。如果你擅長 C++而且不想承擔Unity的高昂使用費,Cocos2D就是最好的選擇。它有很多非常好用的功能,但是和Unity相比沒有什麼優勢。它有很好的物理引擎,並有每個功能特徵都有大量例項,有一個龐大的的開發者社群來支援和改善等。但是這些Unity也有。
當然我們談論的是2d,其他的一切,Coco不支援3d軟體
Cocos2D沒有整合的環境設計。視覺化介面設計要用程式設計實現,用C++載入和定點陣圖片。但是你可以使用免費的外部圖形編輯器CcosStudio,可以幫你在螢幕定位元素和配置某個物件。但是這個編輯器比Unity的功能少太多。Unity的編輯器完全整合在了一起。而Cocos Studio並沒有,而且它的操作基於XML檔案,依靠Cocos的庫生成一系列影象。它存在一些bug,並不能在所有的電腦上工作。Unity圖形編輯器通過拖動元件和修改引數可以很輕鬆的佈局和設計Unity場景,加入物件,指令碼,燈光特效,圖形效果等。因此,它相對於Cocos2D或者Cocos Studio的佈局來說大大減少了開發時間。
程式語言
Cocos2D使用C++語言程式設計,Unity3D可以使用C#和Javascript。C#和Javascript都是比C++更為強大的語言,讓你的程式開發和演算法更簡單。同時,對那些不擅長C++的人來說,學起起來不會感到困難乏味。而且你還要擔心C++的指標和記憶體洩漏問題。這些問題在Unity裡都不會出現,讓你只專注於你的遊戲開發,又節省了巨大的時間。此外,程式碼編輯器,Unity使用MonoDevelop或者VisualStudio,比起Cocos更加穩定,方便和全面。總之,我們可以說C#/Javascript(Unity)比C++更簡單,是可以節省你很多時間的高效語言。
多平臺
兩中技術都是跨平臺,但是Unity更好。Cocos2D支援開發不同的移動平臺包括IOS和安卓。而Unity包含了更多:遊戲機平臺,桌面和瀏覽器。如果你想要你的瀏覽器開發支援Facebook,那麼Cocos2D就不足以勝任。但是你可以用Cocos來做瀏覽器的二次開發,比如用Adobe Flash,通常用來做為手機和網頁遊戲市場的開發。使用Unity就沒有這個必要,能夠很方便的匯出到瀏覽器。Unity支援大多數遊戲市場所使用的平臺:手機和平板(IOS,安卓,Window Phone以及黑莓),瀏覽器(和 即將到來的HTML5)遊戲機平臺(Xbox, PlayerStation和Wii)以及桌面(PC,Mac和Linux)。此外,Unity可以特殊定製給不同裝置,而Cocos2D就一個最簡單的方法(例如,適合開發安卓和IOS平臺遊戲)。
Unity有豐富的文件。有清晰的教學視訊和文字,有的已經翻譯成了西班牙語。支援相對來說快速簡潔。然而Cocos的文件很少,並且質量低劣。只有英文和少量的中文。沒有支援,論壇全是沒人回答的問題,要得到答案很困難。Unity學習起來比Cocos更快:影象編輯器,C#/Javascript和豐富的資訊和支援會讓你有個愉快的學習體驗。相反,Cocos2D相對來說,除非你擅長C和XCode++,十分想學習Cocos2D的庫。
社群和附加產品
Unity3D已經是一個非常強大的開發工具。很多人通過Aseet Store做出貢獻,讓Unity更強大。成百上千的開發人員在商店裡售賣他們的外掛,資源,和改進的東西。這些外掛裡有很多功能強大,必須要花錢買:3D模型,2D貼圖,動畫,應用程式,擴充套件編輯器,指令碼,材質都是你能額外購買或者免費在Unity官方商店裡下載到的。其中有個Ngui的外掛,一款擴充套件的圖形編輯器,為2D遊戲的開發提供了巨大的幫助,減少了開發時間。Ngui Unity就像 Javascript的jQuery.而Cococs缺乏這些根本的附加產品。
結論
Unity昂貴但值得。大量減少開發時間的比例超過了許可證的售價。許多功能在Cocos2D裡是沒有的,編譯也比Cocos2D更快。因此,Unity3D比Cocos2D更好。
原文連結:
https://en.yeeply.com/blog/comparison-between-unity-and-cocos2d-platforms-for-2d-game-developments/
原文作者:Luis Picurelli
相關文章
- 透過示例在 Unity 和 NodeJS 上的遊戲中建立安全、快速的多人遊戲UnityNodeJS遊戲
- [Unity3D] 2D畫素遊戲(一) Hello Unity!Unity3D遊戲
- 《Unity 2D與3D手機遊戲開發實戰》簡介Unity3D遊戲開發
- 【Unity3D開發小遊戲】《戰棋小遊戲》Unity開發教程Unity3D遊戲
- Unity遊戲示例來了,用Unity開源遊戲資源做遊戲,遊戲開發不再難!Unity遊戲開發
- unity遊戲開發雜項系列:unity在商店裡下載的package儲存位置Unity遊戲開發Package
- 喵的Unity遊戲開發之路 - 推球:遊戲中的物理Unity遊戲開發
- 在區塊鏈上開發遊戲:鏈遊區塊鏈開發遊戲
- 【Unity 3D遊戲開發】在Unity使用NoSQL資料庫方法介紹Unity3D遊戲開發SQL資料庫
- 用Unity做半個2D戰棋小遊戲(三):新增對戰雙方Unity遊戲
- 在 Unity 多人遊戲中實現語音對話Unity遊戲
- 遊戲雜談:大製作遊戲和小製作遊戲,在開發思路方式上的差別遊戲
- unity 開發2D坦克大戰教程 系列二Unity
- unity3d開發的大型網路遊戲Unity3D遊戲
- 《Unity移動遊戲開發》讀後感Unity遊戲開發
- 知物由學|遊戲開發者如何從容應對Unity手遊風險?遊戲開發Unity
- 在Unity實現遊戲命令模式Unity遊戲模式
- 從零點五開始用Unity做半個2D戰棋小遊戲(一)Unity遊戲
- 用Unity做半個2D戰棋小遊戲(五):新增常用的介面Unity遊戲
- 17款Unity開發遊戲可以用到的外掛Unity開發遊戲
- 喵的Unity遊戲開發之路 - 軌道攝像機Unity遊戲開發
- 【Unity 框架】 QFramework v1.0 使用指南 工具篇: 16. LiveCodingKit 寫程式碼不用停止執行的利器 | Unity 遊戲框架 | Unity 遊戲開發 | Unity 獨立遊戲Unity框架Framework遊戲開發
- 遊戲開發工具推薦:Unity Pro 2018 for Mac遊戲開發UnityMac
- unity 區域網遊戲開發知識點Unity遊戲開發
- 【Unity遊戲開發】SpriteAtlas與AssetBundle最佳食用方案Unity遊戲開發
- 對話遊戲開發平臺Unity高管:疫情下的遊戲產業挑戰與機遇並存遊戲開發Unity產業
- 在Unity中實現2D光照系統Unity
- 如何在 ? Space 上託管 Unity 遊戲Unity遊戲
- 在淘寶上維權的遊戲開發者Ver2.0遊戲開發
- 用Unity做半個2D戰棋小遊戲(四):加入玩家控制Unity遊戲
- Unity進階提升-2D遊戲跳躍手感最佳化(跳起下落)Unity遊戲
- Unity中國全面支援OpenHarmony遊戲開發,多款遊戲率先完成適配Unity遊戲開發
- Parceljs和Webpack在React專案上打包速度對比JSWebReact
- iOS開發中使用OC和swift的對比iOSSwift
- Unity遊戲雲上線,攜手騰訊雲打造一站式聯網遊戲開發平臺Unity遊戲開發
- 【Unity遊戲開發】不接SDK也能在遊戲內拉起加QQ群操作?Unity遊戲開發
- 在遊戲設計中引導玩家 剖析2D射擊遊戲設計中的壓縮和漏斗理論遊戲設計
- 在Unity中為即時戰略遊戲實現戰爭迷霧(上)Unity遊戲
- 鏈遊開發:遊戲和NFT的結合遊戲