# PlayDrop 上的即玩游戏和普通游戏

PlayDrop 游戏成为即玩游戏的条件：竖屏游玩、允许访客、启动文件最多 10 MiB 并在两秒内启动，以及它与普通游戏的区别。

Source: https://www.playdrop.ai/zh-hans/create/learn/instant-games

即玩游戏是 PlayDrop 手机应用即玩信息流中的竖屏短游戏：玩家一滑动，下一款游戏就已经在运行了。其他所有游戏都是普通游戏，从游戏页面、搜索或链接打开。两者的发布方式相同；即玩是某个版本的属性。

## 即玩还是普通

| | 即玩 | 普通 |
|---|---|---|
| 在哪里玩 | 即玩信息流，以及普通游戏能玩的所有地方 | 首页、搜索、游戏页面、链接 |
| 屏幕方向 | 以竖屏为主 | 任何已声明的显示形态 |
| 登录 | 访客可以玩 | 任意 `authMode` |
| 启动 | 2 秒内可玩 | 没有限制，但越快越好 |
| 启动文件 | 最多 10 MiB | 没有启动限制 |
| 徽章 | 闪电徽章 | 无 |

达不到即玩标准的游戏仍会作为普通游戏发布。

## 要求

```json
{
  "primarySurface": "MOBILE_PORTRAIT",
  "surfaceTargets": { "desktop": true, "mobileLandscape": false, "mobilePortrait": true },
  "authMode": "OPTIONAL",
  "instant": true,
  "prefetch": { "required": ["game.js", "atlas.png"], "optional": ["music.mp3", "levels/world-2.json"] }
}
```

- `primarySurface` 为 `MOBILE_PORTRAIT`，并且游戏支持竖屏手机。
- `authMode` 为 `OPTIONAL` 或 `NONE`，让访客可以玩。
- 启动文件最多 10 MiB：入口页面加上 `prefetch.required`；如果没有列出任何文件，则为所有上传的文件。
- `instant: true` 用于申请即玩资格。

上传时会检查大小，回执中的 `instant` 和 `instantReason` 会报告结果。发布后，PlayDrop 会在应用中统计真实的启动情况：一个版本从已下载文件启动满 20 次后，如果超过四分之一的启动耗时 2 秒或更久，它就会失去徽章。新版本可以重新获得资格。

## 快速启动

- 把后面的关卡、音乐和额外内容放进 `prefetch.optional`，并在 `ready()` 之后加载。
- 在调用 `ready()` 之前编译着色器并完成预热，避免最初几帧卡顿。
- 立即显示游戏画面：在第一次操作之前，不要有标题画面、菜单或登录墙。
- 让最初几秒不靠文字也能看懂。
- 为商店页面录制一段竖屏游戏视频；信息流会使用它。

关于预加载，请参阅[加载、暂停和音频](https://www.playdrop.ai/zh-hans/create/learn/lifecycle)；关于竖屏布局，请参阅[全屏和安全区域](https://www.playdrop.ai/zh-hans/create/learn/viewport)。

## 相关指南

- [加载、暂停和音频](https://www.playdrop.ai/zh-hans/create/learn/lifecycle): 初始化 PlayDrop SDK，在第一个可玩帧时发出就绪信号，干净地暂停和恢复，遵循宿主的音频策略，并为原生应用和离线游玩预加载文件。
- [全屏和安全区域](https://www.playdrop.ai/zh-hans/create/learn/viewport): 让 PlayDrop 游戏铺满屏幕，借助 SDK 测得的 reservedCorners，让 HUD 留在 CSS 安全区域内并避开宿主的控件。
- [商店页面图片和视频](https://www.playdrop.ai/zh-hans/create/learn/listing-assets): PlayDrop 游戏可以有哪些商店页面图片和视频，它们的路径、格式和方向，以及如何制作在信息流、搜索和链接预览中都好看的图片。
- [catalogue.json](https://www.playdrop.ai/zh-hans/create/learn/catalogue-json): PlayDrop 游戏使用的 catalogue.json 字段：标识、商店页面、游玩方式、显示形态、登录、即玩、预加载、媒体、翻译、分数和服务器。
