关于 playdotfun
playdotfun 是指导 Agent 将游戏接入 Play.fun 的技能,面向需要注册、集成 SDK 并验证游戏的开发流程。它按阶段安排认证、构建、注册、接入和部署检查。
主要功能
- 01分阶段执行接入流程
- 02检查并验证认证凭据
- 03指导游戏注册及 ID 管理
- 04提供 SDK 集成与计分指导
- 05部署后检查积分和排行榜
适用场景
- 01为新游戏接入 Play.fun
- 02为现有游戏添加 Play.fun SDK
- 03部署后验证积分提交情况
MCP 相关
该技能通过 MCP 工具验证连接、注册和更新游戏,并查询游戏列表及排行榜。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ playdotfun/ skills --skill playdotfun安装后在 Claude Code 中输入/playdotfun确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
glossary.mdapi/authentication.mdreference.mdevals/trigger-negative.txttrigger-positive.txtevals/flows/01-browser-clicker.md02-phaser-hybrid.mdgithub-pages/deploy.mdmcp/quickstart.mdrules/api-authentication.mdgame-upload.mdscripts/image-to-base64.shplayfun-auth.jsREADME.mdsdks/best-practices.mdbrowser.mdfeatures.mdhybrid.mdserver.mdsnippets/browser-sdk.mdserver-sdk.md详细介绍
何时使用
每当用户需要将游戏与 Play.fun 集成或从 Play.fun 获取数据时,都应使用此技能。你也可以使用此技能引导用户完成 Play.fun 的不同工作流。
如何使用
当用户要求将游戏与 Play.fun 集成时,MUST 按照以下集成工作流进行。不要跳过任何步骤。创建任务列表,跟踪各阶段的进度。
集成工作流
将新游戏或现有游戏与 Play.fun 集成时,请按顺序完成以下阶段。为每个步骤创建任务,并依次完成。
阶段 1:身份验证
在执行任何需要身份验证的操作之前,请确认凭据已设置。
- 检查身份验证状态 — 运行
node skills/scripts/playfun-auth.js status,查看凭据是否存在 - 如果缺少凭据,则进行设置 — 按照 身份验证设置 指南操作。启动回调服务,并指导用户通过浏览器完成身份验证
- 确认凭据有效 — 使用
test_connectionMCP 工具确认可以访问。保存返回的用户 ID——稍后要将其作为 API 密钥填入<meta name="x-ogp-key">标签
在确认凭据有效之前,不要进入阶段 2。
阶段 2:构建游戏
- 构建或修改游戏 — 创建或更新游戏代码。此时不要添加任何 Play.fun SDK 集成,先确保核心游戏正常运行。在布局中使用安全区域内边距:背景和画布应铺满整个视口(
100vw × 100vh),而所有游戏 UI(HUD、按钮、控件)都必须使用var(--ogp-safe-top-inset, 0px)和var(--ogp-safe-bottom-inset, 0px)设置外边距或内边距。对于画布游戏,通过 JS 读取内边距,并在绘制 UI 时进行偏移。参见安全区域布局 - 测试游戏能否独立运行 — 在浏览器中打开游戏,确认不使用 SDK 时游戏功能正常(安全区域变量会回退到 0px)
阶段 3:在 Play.fun 上注册游戏
- 选择游戏名称和描述 — 询问用户,或生成一个有趣且能描述游戏的名称
- 准备游戏图片 — 查找现有图片或生成占位图片。⚠️ 重要:必须严格遵循图片安全规则,否则会导致崩溃。 简要步骤:(1) 在磁盘上获取或创建图片文件,(2) 运行
./skills/scripts/image-to-base64.sh <image> --data-uri --file /tmp/game_image_b64.txt,(3) 使用 Read 工具读取文本文件,(4) 将字符串传递给register_game。绝不要将 base64 输出到 stdout。绝不要使用 Read 工具读取二进制图片文件。 - 部署游戏以获取公开 URL — 如果游戏需要托管,请使用 GitHub Pages 部署指南。游戏 URL 必须可公开访问
- 注册游戏 — 使用 MCP
register_game工具,并提供以下内容:名称、描述、gameUrl、platform、base64Image 和反作弊限制(根据游戏类型推荐的限制,请参见最佳实践)。保存返回的id(游戏 UUID)——稍后要将其作为 游戏 ID 填入sdk.init({ gameId }) - 确认注册 — 使用 MCP
get_my_games工具,确认游戏出现在用户的游戏列表中
在注册并获得有效的 gameId 之前,不要进入阶段 4。
阶段 4:集成 Play.fun SDK
- 选择 SDK 方案 — 询问用户或根据其需求决定:
- 使用真实凭据添加 SDK — 按照所选 SDK 的参考文档操作。对于浏览器 SDK 集成:
- 添加 meta 标签:
<meta name="x-ogp-key" content="your-api-key" />— 值是创作者 API 密钥(控制面板中的用户 UUID),而不是 gameId 或 gameKey - 添加脚本:
<script src="https://sdk.play.fun"></script> - 使用
OpenGameSDK类(不要使用 PlayFunSDK) - 使用防御性模式:
typeof防护、sdkReady标志、sdk && sdkReady检查、try/catch、检查 score > 0(参见浏览器 SDK 代码片段) - 使用游戏 ID初始化:
sdk.init({ gameId: 'your-game-id' })— 这是register_game响应中的id字段,而不是 API 密钥
- 添加 meta 标签:
- 接入计分 — 在游戏过程中集成
sdk.addPoints(),并在游戏结束时集成sdk.endGame()(适用于浏览器 SDK);对于混合方案,则在服务端调用savePoints(),并调用sdk.refreshPointsAndMultiplier() - 测试 SDK 集成 — 打开游戏,确认 Play.fun widget 显示;玩一局,并确认积分已提交
阶段 5:部署与验证
- 重新部署集成了 SDK 的版本 — 将更新后的代码推送到托管 URL
- 如果 URL 已更改,则更新游戏注册信息 — 如果游戏 URL 已更改,则使用 MCP
update_game工具 - 最终验证 — 通过游戏公开 URL 玩游戏,确认积分已保存,并使用 MCP
get_game_leaderboard检查排行榜 - 启动 Playcoin(可选) —
launch_playcoinMCP 工具需要 Privy 钱包身份验证,使用 HMAC 凭据时将会失败。请引导用户通过 Play.fun 控制面板上的游戏页面启动
快速参考
| 资源 | 描述 |
|---|---|
| API 参考 | 完整的 API 端点参考 |
| API 身份验证 | HMAC-SHA256 身份验证指南 |
| SDK 最佳实践 | SDK 选择与防作弊配置 |
| 服务端 SDK 参考 | 服务端 SDK 参考 |
| 浏览器 SDK 参考 | 浏览器 SDK 参考 |
| 混合 SDK 参考 | 浏览器 + 服务端组合方案参考 |
| 功能(连续记录与倍率) | 内置互动功能 |
| MCP 快速入门 | 用于游戏注册和管理的 MCP 工具 |
| 术语表 | Play.fun 术语和概念 |
| 身份验证设置 | 凭据设置指南 |
| GitHub Pages 部署 | 通过 GitHub Pages 免费托管游戏 |
| 游戏上传规则 | 必填字段和图片指南 |
| 服务端 SDK 代码片段 | 可直接复制粘贴的服务端代码示例 |
| 浏览器 SDK 代码片段 | 可直接复制粘贴的浏览器代码示例 |
评论
支持 Markdown