テレビ画面では、モバイルゲーム開発者にはなじみがないと思われる多くの点に考慮しなければなりません。画面が大きいこと、操作方法、全プレーヤーが同時に見ているといった点です。
表示
テレビ画面向けのゲーム開発で主に気を付けるべき点は、画面表示が共有される傾向にある点と、横向きの画面用にゲームを設計する必要がある点の 2 つです。
画面表示が共有される点を考慮する
リビングルームのテレビでプレイするマルチプレーヤー型ゲームには、全プレーヤーがすべてを見ることができるという設計上の課題が発生します。これは特に、各プレーヤーが隠し情報を持っていることに依存しているゲーム(カードゲームや戦略ゲーム)にあてはまります。
別のプレーヤーの情報を盗み見てしまうという問題には、次の方法で対処できます。
- 画面に目隠しをして情報を隠せるようにします。たとえば、単語ゲームやカードゲームのようなターン制のゲームでは、一度に 1 人のプレーヤーだけが画面を見られることにします。そのプレーヤーのターンが終わったら、誰も秘密情報を見られないように目隠しで画面を覆うことができるようにします。次のプレーヤーのターンになったら、目隠しを外してそのプレーヤーが自分の情報が見られるようにします。
- スマートフォンやタブレットでコンパニオン アプリを動作させます。セカンド スクリーンとして使うことにより、情報を隠すことができます。
横向き表示のサポート
テレビは常に横向きで、回転させることはできず、縦向きにはなりません。テレビゲームは、常に横向きモードの画面で設計してください。
入力デバイス
テレビにはタッチ インターフェースがないため、適切な操作方法で、直観的に心地よく使用できるようにすることが重要となります。コントローラを扱うにあたって、複数コントローラの追跡や、切断を円滑に処理するなど、注意を払うべき課題があります。ゲームを含めたすべてのテレビアプリで、コントローラの扱いが一貫している必要があります。テレビ コントローラの使用に関する詳細については、テレビ コントローラの管理をご覧ください。ゲーム向けのコントローラの使用に特有の情報については、ゲーム向けのコントローラの扱いをご覧ください。
マニフェスト
ゲームでは、Android マニフェストに必ず含めるべきものがあります。
ゲームをホーム画面に表示する
ゲームは、Android TV のホーム画面では通常のアプリとは別の行に表示されます。
ゲームを専用のリストに表示させるには、アプリ マニフェストの <application>
タグ内で、android:isGame
属性を "true"
に設定します。次に例を示します。
<application ... android:isGame="true" ... >
ゲーム コントローラのサポートを宣言する
テレビデバイスのユーザーがゲーム コントローラを利用できない場合、あるいはアクティブでない場合があります。ゲームがゲーム コントローラをサポートしていることをユーザーに正しく知らせるには、アプリ マニフェストに次のエントリを追加する必要があります。
<uses-feature android:name="android.hardware.gamepad" android:required="false"/>
注: android:hardware:gamepad
のサポートを指定した場合、android:required
属性を "true"
に設定しないでください。そのように設定すると、ユーザーがそのアプリをテレビデバイスにインストールできなくなります。
マニフェスト エントリの詳細については、アプリ マニフェストをご覧ください。
Google Play ゲームサービス
ゲームを Google Play ゲームサービスに統合した場合、実績、ログイン、ゲームの保存、マルチプレーヤー プレイに関連して、いくつかの点を考慮する必要があります。
実績
ゲームには、少なくとも 5 つの(獲得可能な)実績がなければなりません。実績を獲得できるのは、サポートされている入力デバイスからゲームプレイを操作しているユーザーだけでなければなりません。実績の詳細とその実装については、Android での実績をご覧ください。
ログイン
ゲームの起動時には、ユーザーのログインを試す必要があります。プレーヤーがログインを連続して数回拒否した場合、ログイン要求を止めなければなりません。ログインの詳細については、Android でのログインの実装をご覧ください。
保存
ゲームの保存については、Google Play 開発者サービスの保存済みゲームをご覧ください。ゲームの保存は、異なるデバイス間でも一意に識別できるように、特定の Google アカウントに結び付けて行う必要があります。プレーヤーが使用しているのがハンドセットかテレビかにかかわらず、保存済みゲーム情報を同じユーザー アカウントから取得できる必要があります。
また、プレーヤーがローカルおよびクラウドに保存されたデータを削除できるオプションを、ゲームの UI に用意する必要もあります。このオプションはゲームの Settings
画面に置くことができます。Play 開発者サービスを使用した保存済みゲームの実装の詳細については、Android の保存済みゲームをご覧ください。
マルチプレーヤー エクスペリエンス
マルチプレーヤー エクスペリエンスを提供するゲームでは、少なくとも 2 人のプレーヤーが参加できる必要があります。Android のマルチプレーヤー型ゲームの詳細については、Android デベロッパー サイトのリアルタイム マルチプレーヤーと、ターン制のマルチプレーヤーのドキュメントをご覧ください。
終了
ユーザーがゲームを正常に終了できる、一貫性のある明確な UI 要素を用意してください。この要素は、D-pad ナビゲーション ボタンで利用できる必要があります。このようにすることで、終了する際にホームボタンにだけ依存しないようにしてください。異なるコントローラ間での一貫性がなくなり、信頼性が損なわれるためです。
ウェブ
Android TV のゲームではウェブ ブラウジングを有効にしないでください。Android TV はウェブブラウザをサポートしません。
注: ソーシャル メディア サービスへのログインには、WebView
クラスを使用できます。
ネットワーク
ゲームでは、最高のパフォーマンスを提供するためにより広い帯域幅を必要とすることが多く、ユーザーの多くは最高のパフォーマンスを得るために WiFi よりもイーサネットを好みます。アプリでは、WiFi 接続とイーサネット接続の両方を確認する必要があります。テレビ専用のアプリの場合、モバイルアプリの場合のように 3G / LTE サービスを確認する必要はありません。