# PlayDrop のインスタントゲームと通常のゲーム

PlayDrop のゲームがインスタントになる条件：縦向きのプレイ、ゲストの利用、起動ファイル 10 MiB 以内、2秒以内の起動。通常のゲームとの違いも説明します。

Source: https://www.playdrop.ai/ja/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回に達し、その4分の1を超える起動に2秒以上かかった場合、そのバージョンはバッジを失います。新しいバージョンで再び対象になれます。

## すばやく起動する

- 後半のレベル、音楽、おまけは `prefetch.optional` に入れ、`ready()` のあとに読み込みます。
- 最初のフレームがカクつかないよう、`ready()` を呼ぶ前にシェーダーをコンパイルし、ウォームアップを済ませます。
- すぐにゲームプレイを見せます。最初の操作の前にタイトル画面、メニュー、サインインの壁を置かないでください。
- 最初の数秒は、テキストなしでも遊び方がわかるようにします。
- 掲載用に縦向きのゲームプレイ動画を録画しましょう。フィードで使われます。

事前読み込みについては[読み込み、一時停止、オーディオ](https://www.playdrop.ai/ja/create/learn/lifecycle)を、縦向きのレイアウトについては[全画面とセーフエリア](https://www.playdrop.ai/ja/create/learn/viewport)をご覧ください。

## 関連ガイド

- [読み込み、一時停止、オーディオ](https://www.playdrop.ai/ja/create/learn/lifecycle): PlayDrop SDK を初期化し、最初の遊べるフレームで準備完了を伝え、きれいに一時停止・再開し、ホストのオーディオポリシーに従い、アプリとオフライン用にファイルを事前読み込みします。
- [全画面とセーフエリア](https://www.playdrop.ai/ja/create/learn/viewport): PlayDrop ゲームを画面いっぱいに表示し、SDK が計測した reservedCorners を使って、HUD を CSS のセーフエリア内に収め、ホストのボタンと重ならないようにします。
- [掲載用アートと動画](https://www.playdrop.ai/ja/create/learn/listing-assets): PlayDrop ゲームに設定できる掲載用の画像と動画、そのパス、形式、向きと、フィードや検索、リンクのプレビューで映えるアートの作り方を説明します。
- [catalogue.json](https://www.playdrop.ai/ja/create/learn/catalogue-json): PlayDrop ゲームが使う catalogue.json のフィールド：識別情報、掲載情報、遊び方、表示環境、サインイン、インスタント、事前読み込み、メディア、翻訳、スコア、サーバー。
