作者:开发商倡导者Andrew Giugliano和产品经理Benjamin Frenkel

自2018年3月Google Play Instant首次发布以来,游戏开发人员已经能够创造出令人难以置信的体验,将玩家立即沉浸在游戏中。 通过多种方式发现和访问即时游戏,从Google Play上的“立即尝试”按钮到两个人之间共享的简单链接,可以更轻松地吸引新玩家并展示您的游戏。 在此博客文章中,我们将向您展示如何使用Unity从头构建可投入生产的即时游戏,以及拥有即时游戏的一些好处。
借助Google Play即搜即得,您可以通过以下方式将游戏提升到新的水平:

1.增加发现能力
Google Play即搜即得让玩家更容易发现和测试您的游戏。 只需单击一下,他们就可以从Google Play商店中启动您的游戏,在“安装”按钮旁边会出现“立即尝试”按钮,或者通过点击直接从移动网站链接到您的即时游戏的网络横幅广告。

而且不止于此。 用户还可以通过您在Google搜索,社交媒体,消息传递,电子邮件和许多其他平台上共享的链接来尝试您的即时游戏。


2.驾驶安装
由于玩家无需在尝试之前就“安装”游戏,因此他们可以更轻松地测试游戏。 使用即时游戏,用户无需等待游戏下载,也不必决定游戏体验是否足以证明其设备上的存储空间。 相反,他们可以尝试最好的游戏,然后您可以让他们有机会安装完整版本,而不必离开体验。

3.提高保留率
通过向玩家展示您的游戏趣味,Google Play即搜即得让玩家更加自信您的游戏值得安装。 这可能导致更少的玩家在下载后立即卸载您的应用程序。 下载游戏的用户也更可能喜欢它,这可以帮助您增加下载游戏的玩家数量。
游戏开发人员已经看到即时游戏可以与他们现有的已安装游戏产生不同:
- Hothead Games的游戏《 Mighty Battles》 吸引了19%以上的用户。
- King的游戏Bubble Witch 3 Saga吸引了更多用户。
- Jam City可以通过Panda Pop找到高素质的球员。
- Playtika找到了新玩家,并增加了用户保留率和收入。
这仅仅是开始。 查看其他在Google Play即搜即得中也取得成功的开发人员。
将Google Play Instant与Unity游戏集成起来有多容易?
您可以构建一个即时游戏,并在几个小时内将其发布到内部测试轨道。 在此处,如果使用Unity构建的游戏超出了13.5 MB的限制,则可以在内部测试并展示您的即时游戏。 您还将在Play商店上看到“立即尝试”按钮。 在内部轨道上发布之后,我们已经看到开发人员还专注于以下方面:
- 定义即时游戏的外观。
- 将其即时游戏大小减小到13.5 MB以下(使用Unity构建的即时游戏的限制)。
- 通过测试和质量检查来运行其即时游戏,以确保其优雅地管理尊重用户安全的沙盒要求和权限。 (我们建议您在不同版本的Android OS上进行测试-至少在Nougat和Oreo上进行)
需要多长时间取决于实施细节和游戏的复杂性。
接下来是什么?
通过五个步骤创建自己的即时游戏。

步骤1:设定工作环境
在开始创建即时游戏之前,请仔细阅读清单以确保拥有所需的一切。
- Unity 5.6或更高版本(建议至少发布2017.4版)
- 适用于Unity的Google Play即时插件(资产商店)(源)
- 运行Android 5.0(Lollipop)或更高版本的Android设备(物理或虚拟),并且已打开开发人员模式并启用了USB调试
- 访问您公司的APK源代码以构建调试和发布版本。
- 在Google Play控制台中设置内部测试轨道
- 报名参加Unity Development Beta(强制性生产)

步骤2:建立并测试即时游戏
接下来,您将把现有游戏转换为即时游戏。 不必担心减小大小或建立即时旅程-这只是一个示例,显示该过程的外观。
- 选择PlayInstant→构建设置

2.在构建设置弹出窗口中,将Android Build Type设置为Instant 。
- 除非您已经配置了Digital Asset Link,否则将Instant Apps URL字段保留为空。
- 如果需要,可以在“ 替代场景”字段中指定要使用的替代场景 。
- 如果使用的是资产捆绑包,请在AssetBundle Manifest字段中指定适当的清单文件。
- 完成后单击“ 保存” 。

3.选择PlayInstant→播放器设置。 在播放器设置弹出窗口中:
- 在运行即时应用之前,单击“ 必需的更改”列表中项目旁边的“ 更新”按钮以修复所有设置。
- 我们还建议您在“ 建议的更改”中更新设置,该设置主要侧重于减小尺寸。
- 完成后关闭弹出窗口。

4.现在已经配置了即时应用程序,选择PlayInstant→构建并运行以在您连接的设备上启动它。

步骤3:上传到内部测试轨道
现在,使用您在上一步中创建的即时游戏并将其上传到内部测试轨道,这将允许多达100个选定的内部用户从Play商店测试您的即时游戏。 请记住,您的即时游戏不必低于13.5 MB的限制即可上传到内部测试轨道。
- 选择PlayInstant→构建Play控制台
- 导航至Google Play控制台,确保已选择适当的应用,然后导航至Android Instant Apps标签。
- 选择“ 即时应用程序内部测试” ,然后按照该页面上的说明上载在步骤1中创建的文件。有关更多信息,请阅读有关发布即时应用程序的指南。

注意:确保已正确配置内部应用程序测试人员列表,以便可以访问该应用程序。 您可以在应用程序发行版→即时应用程序内部测试→管理测试人员中修改这些设置。

步骤4:减少大小以达到13.5 MB的限制
现在您已经熟悉了构建即时游戏的技术方面,现在该开始概念化外观并减小尺寸了。 如果您的游戏很大,请不要担心-拥有超过350MB游戏的开发人员仍然能够启动即时游戏。 以下是一些有助于将大小减小到13.5 MB以下的技术:
优化播放器设置
如前所述, PlayInstant→播放器设置提供了一些建议的更改,以减小游戏的大小。 进行以下更新以减小游戏的大小:
- Mono版本应该使用代码剥离
- 图形API应该仅是OpenGLES2
- IL2CPP构建应启用引擎剥离
简化游戏内容
不要试图让整个游戏都适合即时应用程序。 您的即时游戏仅应带给玩家完整的体验,例如教程或一些令人兴奋的关卡。 删除不需要的内容,例如纹理,模型,图像或音频剪辑,这些内容不是游戏的核心。
最后,压缩资产以通过减少以下内容进一步减小规模:
- 纹理的分辨率
- 3D模型中的多边形数量
- 音质
阅读有关即时游戏UX最佳做法的更多信息。
使用资产捆绑包
资产捆绑包使您可以在即时游戏运行时动态加载资产。 如果在运行时才下载资产,则它们不会计入13.5 MB的限制。 这是游戏开发人员减少即时游戏大小的一种常用方法。 您需要的三个主要组件是:
- 根据即时游戏场景创建的资产捆绑包
- 用户友好的加载屏幕,可在后台获取资产捆绑包时通知用户
- Web服务器或内容交付网络(CDN),用于托管资产捆绑包
接下来,我们将向您展示使用Google Play Instant Unity插件随附的快速部署工具,以最快的方式利用资产捆绑包的功能。 这将通过创建资产捆绑包来处理第一个组件,并通过创建将获取资产捆绑包的加载屏幕来处理第二个组件。 对于第三个组件,您可以在支持HTTPS并公开提供文件的任何地方托管资产捆绑包-这可以是您自己的服务器,Google Cloud Storage或其他第三方CDN。
注意:尽管可以使用任意多个资产捆绑包,但是每个资产捆绑包的大小必须小于15 MB。
1.选择PlayInstant→快速部署
2.选择捆绑创建选项卡,然后选择要动态提供的场景。 完成后,选择底部的Build AssetBundle ,然后将生成的文件上载到Web服务器或CDN。

3.选择“ 加载屏幕”选项卡,并配置与资产捆绑包关联的URL,以及要用于加载屏幕的任何背景纹理。 (默认设置是可以的。)完成后,选择“ 创建加载场景 ..”。

现在,您应该有一个加载屏幕,它将加载您的资产捆绑包。 如果要查看此操作的完成方式或对其进行自定义,可以在新的加载屏幕场景中找到Unity自动生成的自定义脚本。

步骤5:将您的用户从即时转换为已安装
最后,您将需要为玩家建立一种从即时游戏转换为完整游戏的方式。 如有需要,您可以在转换过程中使用Google Play Instant Plugin for Unity附带的Cookie API转移播放器数据。
从即时应用升级到已安装的应用
您的即时游戏应为玩家提供一种安装完整游戏的方式,例如不会妨碍体验的提示或按钮。 播放器准备安装完整游戏后,请调用Play Instant Plugin提供的ShowInstallPrompt
方法,将安装过程转交给Google Play:
使用GooglePlayInstant;
…
公共无效install(){
InstallLauncher.ShowInstallPrompt();
}
升级到已安装时保留数据(可选)
在某些情况下,您可能需要携带一些有关玩家转换为已安装应用程序时的即时体验的信息。 例如:
- 玩家购买游戏内物品时,升级或自定义角色
- 如果即时游戏类似于您已安装的应用程序中的教程,则玩家在安装完整版本后可以跳过该教程
- 奖励从即时游戏转换为已安装游戏的玩家
您可以使用Google Play Instant插件随附的Cookie API,该API可以让您分别在安装之前和之后轻松地写入和读取数据字符串:
1.调用CookieApi.SetInstantAppCookie
在即时游戏中存储一串数据。
使用GooglePlayInstant;
…
公共无效的StoreData(字符串数据){
CookieApi.SetInstantAppCookie(data);
}
2.在您已安装的游戏中调用CookieApi.GetInstantAppCookie
以检索数据字符串
使用GooglePlayInstant;
…
var data = CookieApi.GetInstantAppCookie(data);
这些步骤应有助于您导航使用Google Play Instant创建游戏的过程。 如果需要更多帮助,可以在Instant Games上查看更多资源和文档,浏览常见问题,或在此处阅读有关Instant App的更多信息。