AI アプリからシンプルな HTML ゲームを公開する
upload_game で最大 10 MiB の自己完結した HTML ファイル1つを公開します。対象となるゲーム、ミニカタログ、公開範囲、更新、パッケージに切り替えるタイミングを説明します。
シンプルな方法では、canvas のアーケードゲームや DOM のパズルなど、標準的な HTML ゲーム1つを upload_game の1回の呼び出しで公開します。PlayDrop SDK もビルドフォルダーも追加ファイルも不要で、スマホやパソコンで誰でも開けるリンクが返ってきます。
シンプルな方法が合うとき
- ゲーム全体が最大 10 MiB(10,485,760 UTF-8 バイト)の HTML ファイル1つで、スクリプト、スタイル、画像、サウンドがインラインで含まれている。
- 普通のブラウザゲームである。つまり PlayDrop SDK を呼び出さないため、クラウドセーブ、ランキング、実績、共有、パーティー、購入、広告は使わない。
- 別ファイルが不要である。掲載用の画像や動画、ゲームサーバーがない。
どれか1つでも当てはまらない場合は、代わりにパッケージを使ってください。ユーザーが求めた機能は残しましょう。この方法に合わせるために機能を削ったり、複数ファイルのゲームを1つにまとめたりするのは絶対にやめてください。このアップロードは、SDK の呼び出し、サーバーのコード、パッケージ専用のカタログフィールドを advanced_upload_required で拒否します。
ゲームを送信する
新しい requestId、完全な HTML、ゲーム1つ分のミニカタログを指定して upload_game を呼び出します。
{
"requestId": "moon-jump-first-upload",
"html": "<!doctype html><html><head><meta charset=\"utf-8\"><title>Moon Jump</title></head><body>…</body></html>",
"catalogue": {
"apps": [{
"name": "moon-jump",
"displayName": "Moon Jump",
"description": "Jump between lunar platforms and reach the flag.",
"controls": "Tap or press Space to jump.",
"tags": ["game-genre/casual"],
"types": ["solo"],
"controller": { "support": "off" },
"authMode": "NONE",
"primarySurface": "MOBILE_PORTRAIT"
}]
}
}nameはゲームの変更できないスラッグで、英小文字、数字、ハイフンからなる1〜100文字です。tagsにはgame-genre/casualのようなジャンルを含める必要があります。ジャンルとタグをご覧ください。typesは遊び方を宣言します。1ファイルのゲームは通常["solo"]です。パーティーの人数やオンラインプレイはパッケージで扱います。controller.supportは、offも含めて、実際のコントローラー対応状況を示します。authModeはサインインの扱いを決めます。NONEまたはOPTIONALなら誰でも遊べます。省略すると既定値はREQUIREDです。更新のたびに含めてください。primarySurfaceは、ゲームが想定している画面の向きを示します。シンプルなアップロードは、デスクトップ、横向き、縦向きで掲載されます。
ほかに受け付けるフィールドは subtitle、emoji、color、license、creation、releaseNotes、inspirationPrompt、makingOf、sourceRepository、sourceLocale、offlineSupported、instant です。バージョン番号は PlayDrop が割り当てます。
誰が遊べるかを選ぶ
- 新しいゲームでは、
visibilityを省略するとクリエイターのアカウント設定に従います(限定公開か非公開を選んでいない限り、公開)。更新ではゲームの現在の公開範囲が維持されます。 "private"は、テスト用にクリエイターだけが開けるバージョンを保存します。あとでそのバージョンをpublish_game_versionで公開してください。もう一度アップロードしないでください。"unlisted"は掲載せずに、リンクを知っている人なら誰でも遊べるよう公開します。"public"は見つけてもらえるように公開します。
ユーザーの依頼に従い、ユーザーの意図より広く公開することは絶対に避けてください。誰が遊べるかをご覧ください。
アップロード結果を読む
アップロード結果には gameId、slug、version、status、visibility、url が含まれます。url は、そのバージョン専用のオーナー向けリンクです。公開と限定公開のゲームには、ゲームの恒久的なページである shareUrl も付きます。ユーザーに渡すのはこちらです。非公開バージョンの場合は url を返してください。instant と instantReason はインスタントの対象かどうかを示します。
ゲームを更新する
list_games を呼び出し、ゲームの gameId を渡して name を維持します。完全な HTML と完全なミニカタログをもう一度送ってください。アップロードは毎回完全なスナップショットで、省略したフィールドは新しいバージョンに含まれません。リンクは変わりません。最初にパッケージとしてアップロードしたゲームは、ファイルや機能が失われないよう、引き続きパッケージの方法を使う必要があります。
あとでパッケージに移行する
クラウドセーブ、ランキング、掲載用アート、サーバーを追加すると、ゲームはパッケージになります。これは同じゲームの通常の更新です。name を維持し、prepare_catalogue_upload でアップロードし、expectedCurrentVersion に list_games から取得した現在のバージョンを設定してください。パッケージ化をご覧ください。