apportable meeting
Keisuke Hata
SQUARE ENIX
Technical Director Mobile Business Division
13年7月2日火曜日
apportableとは?
ObjC, ObjC++などで記述されたiOSアプリケーションをクロスコンパイルし、
Android用のアプリケーションバイナリを生成するエンジンである。
iOSでリリースしたタイトルをAndroidに移植したいが、マルチプラットフォーム対応のフレームワークや
ゲームエンジンを利用していない場合(Unityやcocos2d-x、Corona、Adobe Air)、
通常であれば、iOSのソースコードをベースに開発をし直すことが多い。
しかし、apportableは、iOS専用に記述されたアプリケーションのソースコードをAndroid用に変換するエ
ンジンを持っているため、そのエンジンを用いて、ソースコードの修正は基本的に行わずにAndroidのアプ
リケーションを自動で生成することができる。
iOSで有名なスキタイのムスメやZenBound 2もこのエンジンを利用してリリースしている。
http://www.apportable.com/
13年7月2日火曜日
プランの違い
Free版は、Android 4.0以上のデバイスに対
してアプリを生成できるが、サポートが最も
少なくいわゆるお試し版である印象は強い。
企業としては、Android2.xがまだ主流であ
ることから、Proもしくは、Enterpriseのプ
ランの契約は必須になりそう。
13年7月2日火曜日
apportableアーキテクチャ
Clangコンパイラを用いており、ObjC( ObjC++ )のコードをクロ
スコンパイルして、ARMのネイティブコードをはき出し、apkとし
て書き出している。このネイティブコードがJava UIから呼び出し
される。
ARM native code
ObjC
cross-compile
.apk
13年7月2日火曜日
スキタイのムスメ、ZenBound 2
の開発秘話
Q:スキタイのムスメ、ZenBound 2をiOSからAndroidへ移植する際に
apportableを用いた開発を行った結果、どれくらいの時間を要したか?
apportableによる対応作業は、ゲームの複雑さに応じて、30分∼2週間程度でデモレベルまで持って行け
る。Google Playにロンチさせるなどの製品としてのチューニングや別途対応作業は、さらに時間を要す
るが内容次第(4∼6週間)。
ゲームプラットフォームごとの新しいAPIを利用している場合などは、apportable側でのコンバート対応
を行うために追加工数がかかる。物によるが数ヶ月見積もってもらいたい。
スキタイのムスメは、通常のゲームとは異なり、ゲームプレイ中に縦持ちと横持ちが切り替わる瞬間があ
る。そのため、その対応を行うためにAndroid側では、ホームボタン、バックボタンがデバイスの姿勢に
よって回転する仕組みを利用して、ゲームコード側の画面回転の対応を行った。
●依頼方法:
NDA締結後、プロジェクトのソースコードをapportable側に提供し、調査してもらうことを推奨している。特にパフォーマンスや新API対応作業が含ま
れるかどうかの見積もりなどを行う。その場合、サポート契約を締結する必要があり。
13年7月2日火曜日
独自プラットフォーム対応
iOSやAndroid、Kindleといった、プラットフォームごとに用意される
Game APIやStoreKitなどの課金処理の部分に関しては、すでに
apportable側で対応している。
iOS版さえ作成すれば、各プラットフォームごとに必要なコードをコンパ
イル時に生成してくれる。開発者はプラットフォームごとの対応に追われ
なくて済むようになっている。ただし、Pro版以上。
13年7月2日火曜日
SpriteKitへの対応
SpriteKitのサンプルをapportableが作ってリリースすることは可能であ
るが、できれば実際の利用例があると対応しやすい。
実例がある場合は、apportableにContactしてみると良い。
apportableのスタンスとして先に対応してリリースというよりは、
リクエストの多い内容から作り始めるスタンスであるという。
Q:SpriteKitを用いたコンテンツを今後サポートできるように検討されているかどうか?
13年7月2日火曜日
解像度の対応
UIScreenクラスを拡張して、解像度にあわせたスケーリングオプショ
ンが用意されている。
Androidビルドする際にそのコードが動作するようにプリプロセッサマ
クロで分岐しておけば、iOSではそのコードが実行されずに済む。
詳しくは、以下のURLを参照。
Q:Androidでは多くの解像度が存在しているが、apportableではどのような対応になっているか?
http://docs.apportable.com/sample-apps.html#cocos2dsimplegame
13年7月2日火曜日
デバッグ手法
apportableが用意するgdbを用いてデバッグするのが基本。ログやスタックトレースを
活用してデバッグする。あるいは、Objective-Cのメッセージを追ったり、オブジェクト
の状態を見る。
AndroidのデバイスログもObjC->Javaコールのデバッグにも役立つ。
Androidデバイスにありがちなグラフィックスチップ依存のバグは、トランスレーション
レイヤーで吸収させて修正するようにしている。また、デバッグに関して、apportable
には優秀なエンジニアがいるため、デバッグのサポートも行っている。
Q:apportableにおけるAndroidアプリケーションのデバッグはどのようにすればよいか?
13年7月2日火曜日
既存ミドルウェアを利用するには?
ミドルウェアやゲームエンジンを利用する場合、できればソースコードまで提供さ
れることが望ましい。
それが難しい時(例えばライブラリのみが提供される)は、apportableが用意す
るブリッジの仕組みを利用したりすることで、apportableが対応していないもの
も利用することは可能。
Q:既存のミドルウェアをapportableで利用する際のTipsは?
13年7月2日火曜日
apportableのバイナリサイズ
●ライブラリサイズ
利用するライブラリにもよるが、数MB程度( OpenGL, OpenAL, UIKitレベルなら )。これまで
の案件は、50MB以上のタイトルが多かったためこのサイズが問題になることは少なかった模
様。しかし、デバッグビルドは非常に大きくなりがちなので気をつけること。
●バイナリサイズが50MBを超える場合
androidのAPK Expansion Fileには対応しているため、詳しくは、Contact Usで問い合わせを
してくださいとのこと。
Q:apportableを適用した場合のバイナリサイズはどの程度になるか?日本のソーシャルゲームを代
表とするアプリケーションは、50MB以下でランチャーとして機能させ、アセットデータは、サーバ
ーからダウンロードしてくる仕組みを採用していることが多い。
13年7月2日火曜日
Androidにおけるオーディオレイテンシ
オーディオレイテンシは、ずっと頭を悩ませている内容である。apportableは、
OpenALプロジェクトに参加し、Androidデバイスにおけるオーディオのパフォーマンス
と改善に貢献している。
ソースコードは、OpenAL-softとして、LGPLv3として公開している。
Q:Androidでは、オーディオレイテンシがとかく問題になりやすいが、apportableではこの件に関
して取り組んでいることあるか?
http://www.apportable.com/open_source
13年7月2日火曜日
apportableベストプラクティス
●利用する言語
C, C++, Objective-C,C++などは問題なし。ただし、Rubyなどのスクリプト言語への対応はやや複雑
になりがちで推奨していない。
●利用するライブラリやフレームワーク
OpenGLやUIKitといったゲーム制作に最低限必要なものとベーシックなフレームワークは対応済み。
オープンソース系のライブラリにも各種対応。
Box2D, FMOD, CocosBuilder( ccbi ), cocos2d-x, cocos2d-iphone ...。
UIKitのベーシックなものには対応:UIScrollViewなど...。
cocos2d-xやcocos2d-iphoneで開発することはとても良い。
●サポート外の機能
カメラやマイクロフォンの機能
Q:apportableを利用する上でのベストプラクティスを教えてほしい。
13年7月2日火曜日
apportableのアドバンテージ
cocos2d-xは、マルチプラットフォームに対応したフレームワークであるが、課金処理やGame
API周りは、各プラットフォームごとにコードを用意する必要がある。
apportableは、これらStoreKitやGameKitの対応工数を吸収してくれる。プログラマーは、
iOS版のコードのみを記述するだけであとは、apportableがプラットフォームごとのコードを
生成してくれるため、ゲームのコーディングに集中することができる。
Q:cocos2d-xは、マルチプラットフォームに対応したゲームフレームワークであるが、apportable
を利用するメリットはどこにあるのか?
Kindle AndroidiOS
13年7月2日火曜日
cocos2d-x + apportable
Hero Academy
13年7月2日火曜日
Thank you for reading :)
Enjoy apportable !!
13年7月2日火曜日

apportable meeting