Monday, February 2, 2015

Cocos2dx VS Unity3D

Hi, at last I can make this post :)
Within last year, I've been learning to make game, both using 2D and 3D.
I have little to none knowledge about art, so it takes me quite a while to make the assets.

I'm using Cocos2dx to make 2D pixel game and Unity3D to make 3D game. While I said 3D, but actually it's only the model that's 3D, the game's world is 2D, so it's 2.5D?

At beginning, I was confused what game engine I should use, then I decided to take 2 engines so I can make comparison about them later.

At the time, I'm using Cocos2dx 3.0, and Unity3D 4.5.

So here's the comparison of Cocos2dx and Unity3D:
  • Apk size: Cocos2dx 's blank apk size is around 2mb while Unity3D's is around 7-9mb, you can decrease the size a bit if you choose either ARM or x86 build.
  • App Customization: you can make your own splash screen and your own android's configuration in Cocos2dx. While Unity3D gives less features but more user friendly.
  • Standalone size: both are quite small. For Unity, it will be much smaller than the apk size, so I think Unity3D is more suited for standalone's game.
  • GUI: Unity3D is much better, I developed without GUI in cocos, but later I've tried Cocos Studio and didn't quite like it, at the time Cocos Studio was still new, maybe it'll improve later.
  • UI Design: in Unity has new version in 4.5, you can design UI really easy. You can design UI with minimal coding.
  • Game Exporting: Unity is much better, in Cocos2dx you need to use and configure Eclipse to export the apk. Not only for apk, Unity also has all in one export tool, so you only need to click here and there to export the game.
  • Coding Language: I'm using c++ in Cocos and c# in Unity. Both supports other languages such as Javascript. Using c++ is quite a hassle too, you need to make 2 files(.c and .h).
  • Coding GUI: for Cocos, I'm using Visual Studio 2010 and later moved to Visual Studio 2012. for Unity, I'm using the intergrated MonoDevelop. For this, I prefer Unity. MonoDevelop is much better than Visual Studio, and when you come back to Unity, it'll auto compile for you. But there's one weakness of MonoDevelop, the more time you use it, the more lag you'll get so you need to reopen it.
  • 9patch support: it's really easy to use 9patch asset in Unity, it has its own 9patch cut tool. While Cocos has 9patch support, but it's not easy to use it. You need to do some experiment to make the 9patch working.
  • Upgrading: you can upgrade Unity really easy, just reinstall and you're done. In Cocos you can't do that. I've been using cocos since version 2, in every update there'll be some changes that will break your game. Some things that supposed to be working will not work again. And upgrading from version 2 to 3 was taking too much time, all the things got changed in version 3.
  • Support and documentaion: Unity has much better support and documentation, most of the time documentation is all you need but you can post in Unity Answer or Forum for help. In Cocos, you need to find out yourself about one function and the reason why it's not working. Most of my time developing game in Cocos was wasted in doing that.

Here's my conclusion. If want to make a small fast game, Cocos2dx is the way to go. But if you want to make continuous game with more complex mechanism, use Unity3D. Unity3D also has Asset Store to help you make game, some people only make their Asset free for the use in Unity3D.

Iruka Jump(いるかジャンプ)

あけおめええ

Download(ダウンロード):Google Play