apportable meeting
Keisuke Hata
SQUARE ENIX
Technical Director Mobile Business Division
13年7月2日火曜日
apportableとは?
ObjC, ObjC++などで記述されたiOSアプリケーションをクロスコンパイルし、
Android用のアプリケーションバイナリを生成するエンジンである。
iOSでリリースしたタイトルをAndroidに移植したいが、...
プランの違い
Free版は、Android 4.0以上のデバイスに対
してアプリを生成できるが、サポートが最も
少なくいわゆるお試し版である印象は強い。
企業としては、Android2.xがまだ主流であ
ることから、Proもしくは、Enterp...
apportableアーキテクチャ
Clangコンパイラを用いており、ObjC( ObjC++ )のコードをクロ
スコンパイルして、ARMのネイティブコードをはき出し、apkとし
て書き出している。このネイティブコードがJava UIから呼び出...
スキタイのムスメ、ZenBound 2
の開発秘話
Q:スキタイのムスメ、ZenBound 2をiOSからAndroidへ移植する際に
apportableを用いた開発を行った結果、どれくらいの時間を要したか?
apportableによる対応作...
独自プラットフォーム対応
iOSやAndroid、Kindleといった、プラットフォームごとに用意される
Game APIやStoreKitなどの課金処理の部分に関しては、すでに
apportable側で対応している。
iOS版さえ作成すれば、...
SpriteKitへの対応
SpriteKitのサンプルをapportableが作ってリリースすることは可能であ
るが、できれば実際の利用例があると対応しやすい。
実例がある場合は、apportableにContactしてみると良い。
appo...
解像度の対応
UIScreenクラスを拡張して、解像度にあわせたスケーリングオプショ
ンが用意されている。
Androidビルドする際にそのコードが動作するようにプリプロセッサマ
クロで分岐しておけば、iOSではそのコードが実行されずに済む。
...
デバッグ手法
apportableが用意するgdbを用いてデバッグするのが基本。ログやスタックトレースを
活用してデバッグする。あるいは、Objective-Cのメッセージを追ったり、オブジェクト
の状態を見る。
Androidのデバイスログも...
既存ミドルウェアを利用するには?
ミドルウェアやゲームエンジンを利用する場合、できればソースコードまで提供さ
れることが望ましい。
それが難しい時(例えばライブラリのみが提供される)は、apportableが用意す
るブリッジの仕組みを利用した...
apportableのバイナリサイズ
●ライブラリサイズ
利用するライブラリにもよるが、数MB程度( OpenGL, OpenAL, UIKitレベルなら )。これまで
の案件は、50MB以上のタイトルが多かったためこのサイズが問題になることは...
Androidにおけるオーディオレイテンシ
オーディオレイテンシは、ずっと頭を悩ませている内容である。apportableは、
OpenALプロジェクトに参加し、Androidデバイスにおけるオーディオのパフォーマンス
と改善に貢献している。
...
apportableベストプラクティス
●利用する言語
C, C++, Objective-C,C++などは問題なし。ただし、Rubyなどのスクリプト言語への対応はやや複雑
になりがちで推奨していない。
●利用するライブラリやフレームワーク
O...
apportableのアドバンテージ
cocos2d-xは、マルチプラットフォームに対応したフレームワークであるが、課金処理やGame
API周りは、各プラットフォームごとにコードを用意する必要がある。
apportableは、これらStore...
cocos2d-x + apportable
Hero Academy
13年7月2日火曜日
Thank you for reading :)
Enjoy apportable !!
13年7月2日火曜日
Upcoming SlideShare
Loading in …5
×

apportable meeting

8,208 views

Published on

apportable technology summary and best practices,
Story behind porting Sword & Sorcery to android.

0 Comments
20 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
8,208
On SlideShare
0
From Embeds
0
Number of Embeds
4,661
Actions
Shares
0
Downloads
22
Comments
0
Likes
20
Embeds 0
No embeds

No notes for slide

apportable meeting

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

×