从你的 AI 应用发布简单 HTML 游戏
用 upload_game 发布一个最大 10 MiB 的独立 HTML 文件:适用范围、迷你 catalogue、可见性、更新,以及何时改用包。
简单方式只需一次 upload_game 调用,即可发布一款标准 HTML 游戏,例如 canvas 街机游戏或 DOM 益智游戏。它不需要 PlayDrop SDK、构建文件夹或额外文件,并会返回一个任何人都能在手机或电脑上打开的链接。
什么时候适合简单方式
- 整款游戏是一个最大 10 MiB(10,485,760 个 UTF-8 字节)的 HTML 文件,脚本、样式、图片和声音都内联在其中。
- 它是一款普通的浏览器游戏:不调用 PlayDrop SDK,因此没有云存档、排行榜、成就、分享、队伍、购买或广告。
- 它不需要单独的文件:没有商店页面图片或视频,也没有游戏服务器。
只要其中任何一条不成立,就请改用包。保留你的用户要求的功能;绝不能为了适配这种方式而删除功能,或把多文件游戏压成单个文件。上传会以 advanced_upload_required 拒绝 SDK 调用、服务器代码和仅限包的 catalogue 字段。
发送游戏
用新的 requestId、完整的 HTML 和一款游戏的迷你 catalogue 调用 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是游戏永久不变的 slug:1–100 个小写字母、数字或连字符。tags必须包含一个游戏类型,例如game-genre/casual;请参阅类型和标签。types声明游玩方式;单文件游戏通常为["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 和完整的迷你 catalogue:每次上传都是完整快照,省略的字段在新版本中将不存在。链接保持不变。最初以包上传的游戏必须继续使用包的方式,以免丢失它的文件和功能。
之后改用包
添加云存档、排行榜、商店页面图片或服务器后,游戏就会变成包。这是同一款游戏的普通更新:保留 name,用 prepare_catalogue_upload 上传,并把 expectedCurrentVersion 设为 list_games 中的当前版本。请阅读打包。