apportable meeting
DESCRIPTION
apportable technology summary and best practices, Story behind porting Sword & Sorcery to android.TRANSCRIPT
apportable meetingKeisuke Hata
SQUARE ENIXTechnical 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日火曜日