Edited at

cocos2d-xをかじったのでUnityと比較

More than 5 years have passed since last update.


概要


  • よくある内容

  • 浅堀り

  • 間違えてたら指摘ください

  • 備忘録というか脳内の整理の為の覚え書き

  • 比較に悪意はない、と思う


お値段


cocos2d-x


  • MITライセンス、オープンソース


Unity


  • プロプライエタリ、コードは見れない

  • 条件付きFree版、Pro版のみの機能は使えない、起動時にUnityロゴ表示

  • Pro版10万、iOSコンパイラ10万、Androidコンパイラ10万

  • メジャーアップデートの際は追加費用がかかる(3系->4系の際は必要でした)


スマフォとの連携、アーキテクチャ部分はどうやってるのか?


cocos2d-x


iOS


  • Objective-C上でC++が動くのでそんな感じ


Android


  • JNIにC++を格納、他Javaを少々

  • Native部分の連携とJavaとの連携で補完してる模様


Unity


  • 上のcocos2d-x条件を使ってUnityはMonoVM動かすぽい

Unityの開発中はJITコンパイル

Xcodeで開発してると差分ビルドするけどAOTみたい、基本C++はビルド遅い


オブジェクトの配置


cocos2d-x


  • ノードでツリー上にオブジェクトを配置、タグも使える


Unity


  • ヒエラルキーでツリー上にオブジェクトを配置、タグも使える

  • 視覚的にツリーがみれる。ついでに配置したものが見れる。動作しているオブジェクトを一時停止、コマ送りができる

  • タグは共通の場所で管理

cocos2dはタグの管理が煩雑だと大人数の開発だと大変かも。※ こんなの定義ファイルに書くようにすればすむ話

問題はツリー上に見れないのでデバッグコストはUnityよりかかるかも。

Unityの一時停止機能は便利


リソースの配置


cocos2d-x


  • 基本コード書かないとできない

  • 一定のルールに従ったデータを読み込ませて動作が見れる


Unity


  • ビュジュアルツールでプランナーやデザイナーといったプログラム経験なくても配置できる

  • ツール化してあれば一定のルールの配置することで、そのまま画面で作ったものが動く


まとめてきななにか

UnityはアプリサイズがiOSだと20Mからになる。無駄に大きい。

小さなアプリを作るのであればUnityより、cocos2d-xの選択でよさそう。

集団での開発はノードが見えるだけUnityのがまし。

いろいろメリット、デメリットはあるわけですが。さわり部分の評価まで。

他には、Unityはシーン移動(GCが行われる)にかかるコストが大きいので結局1シーンで作成することになりかねないとかあったり、ビジュアルツールとしてはよいのだけど基礎の部分がどこか微妙で実装が肥大化していってる印象はある