Google Play 游戏目前处于 Beta 版公开测试阶段。

兼容性和优化

Google Play 游戏要求您为游戏添加 PC 兼容性和 PC 优化功能。除了这些变更之外,您还需要更新游戏的图形配置,以确保 PC 兼容性。

请查看用户安装平台并设置开发机器的最低 PC 要求

包含 x86 ABI 架构

游戏中包含的所有库都需要采用与 x86 ABI 兼容的版本,以确保在平台上实现最佳性能和稳定性。Google Play 游戏支持 32 位和 64 位版本,但您只需选择一个版本来满足相应要求即可。

库编译

为确保实现最佳的 x86 处理器兼容性,请不要在编译库时使用 Atom 指令集。例如,在使用 gcc 时,请避免使用 -march=atom,而改为使用 -march=x86-march=x86-64

Unity 中的目标架构

如果您的游戏使用 Unity 游戏引擎,则必须启用 32 位 x86 Android 目标。为此,请在 Unity 中执行以下操作:

  1. 依次转到 Player Settings > Other Settings > Configuration > Scripting Backend(玩家设置 > 其他设置 > 配置 > 脚本后端),然后从下拉菜单中选择 IL2CPP 以启用 IL2CPP Scripting Backend。

  2. 为您的 Unity 版本启用 32 位 x86 Android 目标:

    • Unity 2018 及更早版本:依次转到 Player Settings > Other Settings > Target Architecture(玩家设置 > 其他设置 > 目标架构),然后选中 x86 复选框。

    • Unity 2019 长期支持渠道 (LTS) 版本及更高版本:依次转到 Player Settings > Other Settings > Target Architecture(玩家设置 > 其他设置 > 目标架构),同时启用 x86 (Chrome OS)x86-64 (Chrome OS)

为提供最大限度的游戏引擎支持,我们建议您同时启用 x86 和 x86-64 支持,或者仅启用 x86-64 支持,以免受到 32 位内存空间的限制。

检测 Google Play 游戏

您可以在运行时检测 Google Play 游戏平台,从而允许您在游戏中启用或停用特定于平台的功能。

检查系统功能 com.google.android.play.feature.HPE_EXPERIENCE,以确定您的游戏是否是在 Google Play 游戏平台上运行:

Kotlin

    var isPC = packageManager.hasSystemFeature("com.google.android.play.feature.HPE_EXPERIENCE")
  

Java

    PackageManager pm = getPackageManager();
    boolean isPC = pm.hasSystemFeature("com.google.android.play.feature.HPE_EXPERIENCE")
  

C#

var unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
var currentActivity = unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity");
var packageManager = currentActivity.Call<AndroidJavaObject>("getPackageManager");
var isPC = packageManager.Call<bool>("hasSystemFeature", "com.google.android.play.feature.HPE_EXPERIENCE");
  

处理 Android 生命周期事件

在 Google Play 游戏环境中处理 onPause (c++) 事件非常重要。当玩家激活模拟器叠加层时,您的游戏将会可见,而未能监听 onPause 事件可能会导致糟糕的用户体验。

更新界面以兼容 PC

某些界面元素和手势不适用于 PC,应该进行更新。

必需:

  • 替换需要两个或更多个手指的界面操作(例如,“双指张合以进行缩放”)
  • 用户可见的所有文字都应显示“点击”而非“点按”。
  • 可滚动列表应具有滚动条。
  • 可平移区域应具有滚动条或可通过其他方式快速遍历较大距离。
  • 请勿在屏幕上为文本输入显示可点击的键盘。
  • 所有文本输入都不得超出文本字段边界。

  • 对于可见元素的点击应满足以下条件:

    • 接受在元素可见边界内的任意位置的点击。
    • 不接受点击可见元素之外的区域。
  • 对话框中应包含可见的关闭按钮。请勿检测对话框边界之外的点击。

停用权限对话框

Google Play 游戏不会显示权限对话框,因此您不应试图在请求权限之前显示该对话框。如果您之前设为显示权限对话框,请务必更新您的应用,使其在 PC 上不再显示。

不受支持的 Android 功能和权限

在手机或平板电脑上可用的某些 Android 功能在 PC 上将无法使用,其中包括相机等硬件功能,还有用户的位置定位等其他功能。因此,您的游戏不得依赖于不受支持的 Android 功能或权限。在 PC 上,如果您的游戏请求获取不受支持的权限,请求会自动失败。

为使您的游戏与 PC 兼容,必须进行以下更改:

  • 在应用清单中,针对 Google Play 游戏不支持的所有功能,将 android:required="false" 添加到 <uses-feature> 声明。这仅适用于应用清单中已声明的功能。
  • 停用游戏中依赖于 PC 上不受支持的硬件和软件功能的功能。如果您使用的是与移动游戏相同的 APK,则可以有条件地针对 PC 停用这些功能
  • 停用游戏中对不受支持的 Android 权限的请求,以及依赖于这些权限的功能。如果您使用的是与移动游戏相同的 APK,则可以有条件地针对 PC 进行这些更改,但不得对清单中声明的权限进行任何更改。

如需详细了解应用清单兼容性,请参阅关于 Chromebook 应用清单兼容性的指南。

在向 Google Play 管理中心提交第一个测试 build 之前,请先移除以下硬件功能:

  • android.hardware.wifi
  • android.hardware.bluetooth
  • android.hardware.camera
  • android.hardware.location
  • android.hardware.microphone

如需详细了解如何移除 android.hardware.wifi 功能,请参阅监控网络连接状态和网络连接计量。 如需查看不受支持的功能的完整列表,请参阅应用清单兼容性指南

以下常用硬件功能与 PC 不兼容,因此您必须在最终提交到 Google Play 管理中心之前移除这些功能:

  • android.hardware.audio.pro
  • android.hardware.bluetooth
  • android.hardware.camera
  • android.hardware.consumerir
  • android.hardware.location
  • android.hardware.microphone
  • android.hardware.nfc
  • android.hardware.sensor.light
  • android.hardware.sensor.accelerometer
  • android.hardware.sensor.barometer
  • android.hardware.sensor.compass
  • android.hardware.sensor.gyroscope
  • android.hardware.sensor.proximity
  • android.hardware.telephony
  • android.hardware.touchscreen
  • android.hardware.usb.accessory
  • android.hardware.usb.host
  • android.hardware.wifi
  • android.software.midi

PC 不支持以下常用权限:

  • android.permission.FOREGROUND_SERVICE
  • android.permission.INSTALL_PACKAGES
  • android.permission.READ_PHONE_STATE
  • android.permission.USE_CREDENTIALS
  • android.permission.CAMERA
  • android.permission.ACCESS_FINE_LOCATION
  • android.permission.ACCESS_COARSE_LOCATION
  • android.permission.WRITE_SETTINGS
  • android.permission.REQUEST_INSTALL_PACKAGES
  • android.permission.SYSTEM_ALERT_WINDOW
  • android.permission.READ_CONTACTS
  • com.google.android.gms.permission.ACTIVITY_RECOGNITION
  • android.permission.READ_EXTERNAL_STORAGE
  • android.permission.WRITE_EXTERNAL_STORAGE
  • android.permission.GET_ACCOUNTS
  • android.permission.RECORD_AUDIO

外部网站和 WebView

浏览器 intent 会在 PC 的原生网络浏览器中加载,而不是在 Google Play 游戏环境中加载。在大多数情况下,这样可为玩家提供理想的体验。

为便于移植,Google Play 游戏支持 WebView。由于 WebView 会在 Google Play 游戏环境中打开,因此会缺乏典型的桌面浏览器用户体验。如果您之前使用 WebView 分享服务条款、隐私权政策或其他类似内容,则应改为调用浏览器 intent

停用不受支持的 Google Play 服务 API

Google Play 游戏拥有自己的 Google Play 服务变体,该变体中仅包含部分 Google Play 服务 API。您需要确认应用没有严重依赖于 PC 上省略或不支持的模块。请注意,其中某些模块可能可以使用,但其功能并非始终都受支持。例如,关闭 Google Play 游戏后,Firebase Cloud Messaging 将无法正常运行。

支持的模块

以下模块目前可以使用,并且将来也受 Google Play 游戏支持:

有限的支持

以下模块只有部分功能可用。我们会尽最大努力在 Google Play 游戏中为这些模块提供支持,但无法保证其完全正常运转。

不支持

Google Play 游戏不支持以下模块,但它们在出现故障时不会在 Google Play 游戏中引发问题:

已损坏

您不应使用以下模块,因为它们可能导致 Google Play 游戏上出现意外行为。

启用分区存储

如果您的游戏读取/写入外部存储,请阅读本部分的内容。必须强制执行分区存储,作为读取和写入存储的另一种方式。这样一来,就不需要提示玩家授予以下敏感权限:

  • android.permission.READ_EXTERNAL_STORAGE
  • android.permission.WRITE_EXTERNAL_STORAGE

如需详细了解分区存储,请参阅:

在 PC 版游戏中停用移动广告

为了针对 PC 优化您的游戏,您必须在 PC 版本中停用移动广告,因为它们与台式机和笔记本电脑 PC 不兼容。这包括由移动广告 SDK 提供的所有广告单元。您无需在移动版游戏中对广告进行任何更改。建议使用功能标志来仅限制对 PC 版游戏的更改。您仍然可以在 Chrome 操作系统上保留移动广告。

移除移动广告时,必须执行以下步骤:

  • 停用所有移动广告单元,包括横幅广告、插页式广告和激励广告。
  • 停用游戏中依赖于激励广告的功能。例如,如果某项功能让用户观看视频广告来赚取游戏代币,您可以停用其按钮或完全将其移除。

分析

旧版 Google Analytics(分析)产品在 Google Play 游戏中无法正常运行。如果是这种情况,您应该迁移到 Google Analytics(分析)4

只有您当前使用的是 Google Analytics 360 时,才会受到影响。如果您在使用 Firebase SDK 跟踪游戏中的分析事件,并且可以看到自己的游戏以媒体资源的形式存在于 Google Analytics(分析)控制台中,您就不必执行进一步的操作。