PC 版 Google Play Games では、ゲームのグラフィック機能を更新し、大画面向けのサポートを追加する必要があります。このトピックでは、それらの要件と関連する推奨事項について説明します。
このページに記載されている要件と推奨事項の概要は次のとおりです。
- 可能な場合は、テクスチャの圧縮を使用する(推奨)
- 3.1 より新しいバージョンの OpenGL ES を使用しない(必須)
- Vulkan を使用する場合は、バージョン 1.1 以前のみを使用する(必須)
- フレームレートの上限を引き上げるか、上限を解除する(推奨)
- 高解像度のアセットとテクスチャを使用する(必須)
- UI スケーリングを調整する(必須)
- 必要なアスペクト比をサポートする(必須)
- 動的な表示の更新を行う(必須)
テクスチャの圧縮
PC 版 Google Play Games では圧縮されたテクスチャを可能な限りパススルーするため、DXTC
または BPTC
を使用して PC のハードウェアを活用してください。互換性のために OpenGL の機能をエミュレートする必要がある場合、こうしたテクスチャを圧縮解除する必要が生じることもあります。そのため、常にゲームのプロフィールを作成してください。
ETC1
や ETC2
などの形式は、ネイティブ グラフィック スタックに送信される前に OpenGL 変換レイヤで圧縮解除されます。これらは引き続き機能しますが、メモリやランタイムの効率面では、モバイル ハードウェアと同じメリットは得られません。
Graphics API
PC 版 Google Play Games で最適なパフォーマンスを実現するためには、Vulkan API の使用をおすすめします。
使用できない場合は、以下の OpenGL ES バージョンを使用してください。
OpenGL ES バージョン
PC 版 Google Play Games は OpenGL ES 3.1 をサポートしています。
PC 版 Google Play Games との互換性を維持するため、AndroidManifest.xml
ファイルで OpenGL ES 3.1 より新しいバージョンを指定していないことを確認してください。
Vulkan のバージョン
PC 版 Google Play Games は Vulkan 1.1 をサポートしています。PC 版 Google Play Games との互換性を維持するため、Vulkan 1.1 以降のバージョンをゲームの要件としないでください。
最大フレームレートの上限を上げる
一部のプレーヤーは、モバイル デバイスよりも PC ではるかに高いフレームレートを使用してゲームを実行できます。優れたプレーヤー エクスペリエンスを実現するために、上限を 60 fps 以上に設定するか、フレームレートの上限を完全に解除することをおすすめします。
大画面向けの最適化
PC 版 Google Play Games では、次のような大画面向けの最適化が必要です。
高解像度のアセットとテクスチャ
PC 版 Google Play Games は 4K までの解像度に対応しており、過去 12 か月間にリリースされたハイエンドの Android 搭載デバイスと同じパフォーマンス レベルを期待できます。テクスチャとアセットが小さいスマートフォン画面用にデザインされている場合、PC の大型 4K モニターで表示すると、プレーヤーはゲームに違和感を感じます。可能であれば、初回起動時に高解像度アセットを使用できるようにします。
Opaque Binary Blob OBB ファイル(APK 拡張ファイルともいいます)を使用してアセットを配信している場合、高解像度のアセットを追加すると、合計サイズが OBB の上限(2 GB のメインリソースと 2 GB のパッチ)を超える可能性があります。この場合は、Play Asset Delivery を使用してアセットを配信することを検討してください。
Play Asset Delivery を使用すると、ゲームのサイズを大きくすることなく、デバイスでサポートされている最適なテクスチャ圧縮形式に一致するテクスチャを自動的に配信できます。デバイスをそのパフォーマンス レベルに応じてターゲットに設定し、それに合わせて解像度の高さを調整してテクスチャを自動的に配信することもできます。
Play Asset Delivery は、Unity 5.6 以降(Play Asset Delivery Unity プラグイン経由)と Unreal Engine 4.25 でサポートされています。他のエンジンでは、Java とネイティブ SDK を提供しています。
UI スケーリング
大画面では、すべての要素が適切なサイズになるように、ゲームの UI の調整が必要になることがあります。HUD は画面の 20% を超えないようにすることをおすすめします。
アスペクト比
PC 版 Google Play Games では、16:9 のアスペクト比をサポートする必要があります。理想的なプレーヤー エクスペリエンスを実現するには、21:9、16:10、3:2 もサポートする必要があります。
縦向きモード
縦向きモードのゲームでサポートする必要があるアスペクト比は 9:16 のみです。ゲームが横向きをサポートしていない場合、PC 版 Google Play Games は全画面モードで黒いバーをレンダリングします。
動的ディスプレイ
PC 版 Google Play Games では、ゲームの起動後に論理解像度、表示密度、アスペクト比が変更されることはありません。しかし、プレーヤーはゲームで全画面モードとウィンドウ モードを切り替えられます。ウィンドウ モードでは、プレーヤーは固定のアスペクト比を維持しながら、斜めにウィンドウをサイズ変更できます。つまり、ゲームで一般的なデスクトップ ウィンドウ処理のパラダイムに合わせてサイズ変更イベントを処理する必要はありませんが、表示密度をゲーム内要素の視認性の指標とすることはできません。
解像度の選択
PC 版 Google Play Games では、プレーヤーのプライマリ ディスプレイとアプリ マニフェストでアドバタイズされたサポートとの間で、最も近いアスペクト比がゲームに採用されます。デフォルトの解像度は、プレーヤーに最適なエクスペリエンスを提供するように内部ヒューリスティックに基づいて選択されます。
プレーヤーは、自分のマシンでゲームのデフォルトの解像度をオーバーライドできます。アスペクト比の計算は変更されませんが、レンダリングするピクセル数はゲームの起動ごとに異なる場合があります。キャッシュしてレンダリングするアセットを決定する場合など、ゲームの起動ごとに報告される解像度に依存している場合は、この点に注意することが重要です。PC 版 Google Play Games デベロッパー エミュレータは、ユーザーが解像度を変更すると再起動するため、実行時にこの変更に対処する必要はありません。
ベスト プラクティス
プレーヤーに最適なエクスペリエンスを提供するには、次のことを行います。
- ゲームが縦向きモードで最適に動作し、プレーヤーがマルチタスク中にプレイする可能性が高い場合は、
android:screenOrientation="portrait"
を設定します。これにより、確実にゲームを縦向きのウィンドウにすることができます。 android:minAspectRatio
とandroid:maxAspectRatio
を使用して、サポートする最小アスペクト比と最大アスペクト比を指定し、ゲームのアスペクト比を検証済みの範囲に制限します。この範囲内でゲームを徹底的にテストします。特に、極端な横長、正方形、縦長のアスペクト比を使用する場合に注意してください。- PC 版 Google Play Games では DPI がレポートされますが、ゲームが有効な間は変更はありません。したがって、ゲーム内要素の物理サイズを把握することは不可能です。物理サイズ単位に合わせるのではなく、画面サイズの比率に基づいてゲーム要素を配置することをおすすめします。
- ノートパソコン画面とウィンドウ モードで、ゲーム要素の視認性をテストします。
- プレーヤーがゲーム内の UI スケールを設定して、個人の好みや環境のニーズに合わせてゲーム要素やテキストのサイズを調整できるようにします。これにより、テキストを拡大するためだけにゲームの解像度と表示品質を落とす必要がなくなります。
動的ディスプレイのテスト
PC 版 Google Play Games デベロッパー エミュレータには、解像度とアスペクト比のあらゆる組み合わせを検証するための広範な GUI ベースのコントロールはありません。特定の解像度でゲームの実行をシミュレーションするには、adb シェルで wm size
コマンドを使用します。たとえば、ゲームを 4K でテストするには、次のコマンドを使用します。
adb shell wm size 3840x2160
次のコマンドを使用して、ディスプレイのスケールをリセットできます。
adb shell wm size reset