17
17

More than 5 years have passed since last update.

cocos2d-xの各言語における基本アプリ容量の比較

Last updated at Posted at 2013-12-07

概要

cocos2d-xを利用したアプリは開発言語にC++, Lua, JavaScriptの3種類があり、開発者は好みや用途に応じて言語を選択することができます。
cocos2d-x自体はC++で開発されていることは良く知られていますが、LuaやJavaScriptで開発を行う場合はC++へ変換するためのエンジンが搭載されており、それにより適宜変換が行われます。
そのエンジンが搭載されていることで、ある程度アプリの容量が増えることが予想されますが、実際に確認されたことがある方は少ないのではないでしょうか?そこで実際に確認を行ってみました。

確認方法

まず最初に、cocos2d-x 3.0 alpha1のproject_creatorで各言語別にプロジェクトを作成しました。そしてお馴染みの中央に「HelloWorld.png」が表示されているシーンのみとし、IPAファイルを作成しました。C++とJavaScriptのプロジェクトは何もしなくてもこの画面が表示されますが、Luaは別のサンプルが表示されるため「HelloWorld.png」が表示される画面に修正し比較を行っています。
一番気になるのは、3G回線でもダウンロードできるサイズですので、IPAファイルとして出力したサイズを確認しました。(Organizer > Archives > 各プロジェクト > Estimated App Store Size)
おまけでUnity(フリー版)でも同様な画面を作成しIPAを作成してみました。しかしUnityはまだまだ初心者なので参考程度にとどめて頂ければと思います。
IMG_1076.PNG

IPAファイルサイズ比較

結果は次の通りです。C++で作成したアプリは3.3MBと非常にコンパクトです。一方、LuaはC++の4倍弱、JavaScriptに至ってはC++の5倍弱と、非常に大きなサイズになっています。さらにUnityはcocos2d-x(C++)の約6倍です。
アプリ起動後にリソースをダウンロードするのであればあまり気になりませんが、全てのリソースを最初から持っておくのであれば、約10MBは非常に大きいです。

Language Size
C++ 3.3MB
Lua 11.6MB
JavaScript 15.8MB
Unity 19.2MB

最後に

ここ最近では、高い解像度のイラストやフレームアニメーション、多くの音声ファイルが多くなっているので、リソースサイズは非常に大きなものになっています。画像や音声ファイルのサイズを押さえるためのテクニックもありますが、画像の減色や音声のサンプリング周波数を必要以上に落として対応しているアプリもありました。これでは折角いいものを作ってくれたイラストレータさんや作曲家さんがかわいそうです。ファイルサイズが大きくなることが最初から予想されるのであれば、根本的にベースが軽いフレームワークを選択する方が良いのではないかと思います。

17
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
17