オススメ機能
Twitter
お気に入り
記事履歴
ランキング
お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
[GDC 2011]解像度もサイズも性能も異なるAndroid端末でアプリの互換性を保つ「7つのルール」
特集記事一覧
注目のレビュー
注目のムービー

メディアパートナー

印刷2011/03/02 18:00

ニュース

[GDC 2011]解像度もサイズも性能も異なるAndroid端末でアプリの互換性を保つ「7つのルール」

[GDC 2011]解像度もサイズも性能も異なるAndroid端末でアプリの互換性を保つ「7つのルール」
 GDC 2011でとくに目立った動きとして,ケータイ系とソーシャル系セッションに関する注目度の高さが挙げられるだろう。
 これまでも例年,行われてきたものの,話題の中心はコンシューマゲームだった。それに対し,今年はとくにGoogleの動きが際立っている。初日の「Google Day」に続き,2日めとなる北米時間2011年3月2日も「Android Day」と銘打たれており,終日,Android関連のセッションが行われていたのだ。

 昨年あたりから躍進ぶりが目立つAndroidについては,ゲーム開発者の注目度も高いのか,朝早くから長蛇の列ができ,会場は席に隙間のないくらいびっしりと来場者が詰め込まれていた。
 今回はそのなかから,Android Dayの最初に行われたセッション「Building Aggressively Compatible Android Games」(Android用のゲームで積極的に互換性を確保する方法)の内容を取りあげてみたい。


Android用ゲームで互換性を確保するため

アプリ開発者が守るべき7つのルール


 iPhoneとAndroid端末は似て非なる存在であり,iPhoneは機種数が絞り込まれ,仕様もさほど異ならないのに対し,Androidでは,採用する各社がそれぞれ異なる仕様の端末を数多く出しているのが大きな特徴だ。
Chris Pruett氏(Senior Developer Advocate,Google)
 Androidアプリは基本的にJavaベースなので,プロセッサが異なっても動作するうえ,画面サイズや解像度の違いを吸収するなどといったことも不得手ではない。世界初のAndroidスマートフォンになったT-Mobileの「G-1」から,最新世代となるAndroid 2.3搭載スマートフォンやAndroid 3.0搭載タブレットまでの間には,さまざまな製品があったわけだが,実際のところ,多くのAndroidアプリは,1つのバイナリで多くの端末に対応できるようデザインされている。

 そんなAndroid端末ではあるが,「より積極的に互換性をとっていくためには,7つのルールを守る必要がある」というのが,Pruett氏のセッションにおけるポイントだ。以下,順にまとめてみよう。

1.さまざまな大きさの解像度に対応すべし

[GDC 2011]解像度もサイズも性能も異なるAndroid端末でアプリの互換性を保つ「7つのルール」
 「Android端末に『標準的な画面サイズ』などない」(Pruett氏)。たしかに現時点では480×800ドットが主流だが,これもあっという間に変わってしまう。端末の進化する速度は,恐ろしく速いのだ。

 AndroidのUIには,解像度を自動的に変更する機能が備わっているが,ここで,端末ごとにある解像度の違いを吸収するには,「OpenGL ESのViewPort()関数が勝利のカギ」であると,Pruett氏は主張する。ただし,画面アスペクト比の違いによって表示範囲が変わることがあるので,それは別途注意する必要があるとも氏は付け加えていた。

[GDC 2011]解像度もサイズも性能も異なるAndroid端末でアプリの互換性を保つ「7つのルール」 [GDC 2011]解像度もサイズも性能も異なるAndroid端末でアプリの互換性を保つ「7つのルール」

2.入力装置の多様性にも対応すべし

[GDC 2011]解像度もサイズも性能も異なるAndroid端末でアプリの互換性を保つ「7つのルール」
 Android端末では,バーチャルキーボード,マルチタッチ,トラックボール,本体のチルト(傾け),十字ボタンなど,さまざまな入力方法が用意されている。そこで,「入力方法をカスタマイズできるようにすること」が必要になるというわけだ。
 ここでは,「Control Setup」でキーの構成やバーチャルゲームパッド,トラックボールなどを設定できるようにしておく方法が,多くの局面で有効だと,Pruett氏はいう。

3.テクスチャのフォーマットに気をつけるべし

PVRTCでもATITCでもDXTでもなく,ETC1を使うべきとPruett氏
[GDC 2011]解像度もサイズも性能も異なるAndroid端末でアプリの互換性を保つ「7つのルール」
 テクスチャ圧縮には,PowerVR系やAdreno(旧ATI Imageon)系,NVIDIA系など,ベンダー固有のフォーマットが多く存在する。「ただ,OpenGL ES 2.0をサポートしているGPUコアなら,必ず(Sony Ericsson系の圧縮フォーマットである)『ETC1』に対応しているので,とにかくETC1がオススメ」(Pruett氏)だそうだ。
 「ETC2はさらによいフォーマットだが,現時点ではサポートされていないので,いまはETC1を使うべきだ」(同氏)とのことである。

4.画面の向きに気をつけるべし

 縦横の違いや逆向きなどへの対応については,「とにかくローテーションフラグを確認すべき」とPruett氏。これに関しては。NVIDIAの作った関数がとても便利なものとして紹介されていた。

[GDC 2011]解像度もサイズも性能も異なるAndroid端末でアプリの互換性を保つ「7つのルール」 [GDC 2011]解像度もサイズも性能も異なるAndroid端末でアプリの互換性を保つ「7つのルール」

5.さまざまな機種でテストすべし

[GDC 2011]解像度もサイズも性能も異なるAndroid端末でアプリの互換性を保つ「7つのルール」
 とにかく端末の種類が多いので,OpenGLの拡張部分を使ったアプリだと,端末ごとに実装が異なって挙動が変わったり,電話番号を参照したつもりだったのに,電話でない端末ではNullが返ってきたりなど,「想定外のことが起こりえる」(Pruett氏)と紹介された。
 とはいえ,全部の端末をテストするのは無理なのも確か。Googleでは,G-1などといった最初の世代のほか,「Nexus One」や「Droid」「XOOM」など,最近登場した特徴的な機種を中心にテストを行っているという。

6.最新版のSDKを使い,最も古い機種用にコンパイルすべし

 最新のSDK(Software Development Kit,ソフトウェア開発キット)でも,古いバージョンをターゲットにすることはできるので,コンパイル時に指定する最小の要求スペックは,それこそAndroid 1.5など,できるだけ古いものにしておくのがポイントだと,Pruett氏は指摘する。
 Javaのリフレクション(※実行時にサポートしている機能などを調べるもの)で処理を分けるなどの対応がよいらしい。

[GDC 2011]解像度もサイズも性能も異なるAndroid端末でアプリの互換性を保つ「7つのルール」 [GDC 2011]解像度もサイズも性能も異なるAndroid端末でアプリの互換性を保つ「7つのルール」

7.素材は高解像度で用意しておくべし

[GDC 2011]解像度もサイズも性能も異なるAndroid端末でアプリの互換性を保つ「7つのルール」
 高解像度の素材があれば,低解像度のものは簡単に作れる。しかも,今後,端末がどんどん進化していっても対応しやすい。


 7つと言いつつも,Pruett氏はこのほか,「ファイルサイズは小さく」「SDカードにアプリを置くことを想定しよう」「メモリ効率に気をつけよう」「新機能を使う前に市場の大きさを考慮しよう」といった注意もしていた。互換性に気を配ることで,作ったゲームの市場ががらりと変わったりもするので,ビジネスとしてゲームを作るうえでは非常に重要なセッションだったといえるだろう。

追加の注意(左)とまとめ(右)
[GDC 2011]解像度もサイズも性能も異なるAndroid端末でアプリの互換性を保つ「7つのルール」 [GDC 2011]解像度もサイズも性能も異なるAndroid端末でアプリの互換性を保つ「7つのルール」

 ちなみにこのセッションだが,終わった後,来場者へのプレゼントとして,「Nexus S」かXOOM,どちらかが配られるという太っ腹ぶりでも注目を集めた。Googleさん儲かってるんだなあ。

配られたXOOM
[GDC 2011]解像度もサイズも性能も異なるAndroid端末でアプリの互換性を保つ「7つのルール」
  • 関連タイトル:

    ミドルウェア/開発ツール

  • この記事のURL:
4Gamer.net最新情報
プラットフォーム別新着記事
総合新着記事
企画記事
トピックス
スペシャルコンテンツ
注目記事ランキング
集計:11月21日〜11月22日
タイトル評価ランキング
81
KENGOHAZARD2 (PC)
76
鬼ノ哭ク邦 (PC)
75
DEATH STRANDING (PS4)
74
56
Epic Seven (iPhone)
2019年05月〜2019年11月