gumiWestStudy #1 〜 Cocos2d-xとUnity

5/16日にUnityとCocos2d-xについて、社外から識者をお招きし勉強会「gumiWestStudy #1」を開催しました!
今回はネイティブアプリを作る技術として注目されている「Cocos2d-x」と「Unity」について。
ネイティブアプリを作る場合、通常iOS(Objective-C)とAndroid(Java)で別々に開発する必要があるのですが、Cocos2d-xやUnityというツールを使うと1つ作るだけでiOSAndroid両方でアプリを配信できるという大変便利な技術です。
以下、発表頂いた内容のご紹介です。

「cocos2d-x でのダウンロードコンテンツ(DLC)の実装と運用について」

まずは株式会社TKS2の清水友晶さんが、アプリ配布後にサーバ側の画像やテキストを追加・更新することでアプリ更新せずにコンテンツの更新が行える仕組みについてお話頂きました。

DLCの実現方法として「CCHttpRequestが非同期通信できて便利」「curlは習得がやや難しいがプログレスバーの実装など柔軟な表現が可能」など、アプリ開発経験に裏付けされた現場で役立つ大変興味深い内容でした。
特に以下の点が印象的でした。
DLCで取得後は永続データとして保持すると便利に使える
DLCで取得後に使い捨てる場合はCCImageを使うのも手
・マルチレゾリューションの場合は端末の解像度毎に合わせた画像を別々に用意
・画像+データを配信する場合はzipにまとめる
(他にも非常に興味深いお話を聞けたのですが、公開できない内容を含んでおりました。清水さん開催の勉強会に参加されると、さらに深いお話が聞けるかもしれません。)

「ASSET BUNDLE 含む UNITY3D の基礎知識」

続いて九州大学 花田恒一さんが、画像やデータを後からダウンロードできるAssetBundleの説明とUnityのメモリ管理方法についてお話頂きました。

AssetBundleの扱いとして「LoadFromCacheOrDownload関数を使うのがベスト」「AssetBundleは不要になったらすぐ破棄」など、メモリ管理の仕組みを理解した上で扱うことが重要であるという技術的に高度な内容となりました。
特に以下の点が印象的でした。
・ClassよりStructで省メモリ化
・OnGUIはかなりメモリを消費するので避ける
・AssetBundleは並列ではなく一つずつ読み込んだ方が省メモリ
スペシャルフォルダ(Standard Assetsなど)を跨いでGetComponent()で参照する場合、フォルダ毎のコンパイル順の関係で参照できない事がある
・AssetBundleを扱う上での選択肢は3つ
1. LoadFromCacheOrDownload、省メモリ、ストレージは圧迫
2. CreateFromFile、圧縮非対応、省メモリ、ストレージは圧迫
3. CreateFromMemory、メモリが必要、ストレージは節約

コミュニティ紹介 LT

ライトニングトークとしてHatchUpの八反田智和さんが cocos2d-x.jp をご紹介頂きました。
またUnity Fukuoka と cocos2d Fukuoka のコミュニティから金子さん、小柳さんが以下の5つのコミュニティをご紹介頂きました。
・Cocos2d fukuoka 次回は6/8 http://atnd.org/events/39347
・Unity Fukuoka
・八時間耐久制作委員会(ハチタイ)
IGDA Fukuoka http://igda-fukuoka.org/jp/index.html
・The Global Game Jam 次回は2014/1/25 http://globalgamejam.org

八反田さん発表資料
https://docs.google.com/file/d/0By8I-4mQ8YAXSW04R29JdXNSek0/edit?pli=1

小柳さん発表資料

勉強会を終えて

貴重なお話を頂いた清水友晶さんと花田恒一さん、ありがとうございました!
八反田智和さん、金子さん、小柳さんのコミュニティ紹介も大変興味深く、gumi Westでこのような勉強会を開催できたことを嬉しく思います。
特に今回の勉強会はコミュニティの方々のご協力が非常に大きく感じましたので、この場を借りてお礼申し上げます。

ちなみに、昨年末に gumi 福岡オフィスから gumi West に分社化した初めての勉強会となりました。
これからもIT技術を通じて福岡を盛り上げていきたいと思っております。