mcpField
P
playdotfun

playdotfun

github.com/playdotfun开发255 次安装31 周前更新
代码仓库

关于 playdotfun

playdotfun 是指导 Agent 将游戏接入 Play.fun 的技能,面向需要注册、集成 SDK 并验证游戏的开发流程。它按阶段安排认证、构建、注册、接入和部署检查。

主要功能

  1. 01分阶段执行接入流程
  2. 02检查并验证认证凭据
  3. 03指导游戏注册及 ID 管理
  4. 04提供 SDK 集成与计分指导
  5. 05部署后检查积分和排行榜

适用场景

  1. 01为新游戏接入 Play.fun
  2. 02为现有游戏添加 Play.fun SDK
  3. 03部署后验证积分提交情况

MCP 相关

该技能通过 MCP 工具验证连接、注册和更新游戏,并查询游戏列表及排行榜。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/playdotfun/skills --skill playdotfun

安装后在 Claude Code 中输入/playdotfun确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

glossary.md
api/
authentication.md
reference.md
evals/
trigger-negative.txt
trigger-positive.txt
evals/flows/
01-browser-clicker.md
02-phaser-hybrid.md
github-pages/
deploy.md
mcp/
quickstart.md
rules/
api-authentication.md
game-upload.md
scripts/
image-to-base64.sh
playfun-auth.js
README.md
sdks/
best-practices.md
browser.md
features.md
hybrid.md
server.md
snippets/
browser-sdk.md
server-sdk.md

详细介绍

何时使用

每当用户需要将游戏与 Play.fun 集成或从 Play.fun 获取数据时,都应使用此技能。你也可以使用此技能引导用户完成 Play.fun 的不同工作流。

如何使用

当用户要求将游戏与 Play.fun 集成时,MUST 按照以下集成工作流进行。不要跳过任何步骤。创建任务列表,跟踪各阶段的进度。

集成工作流

将新游戏或现有游戏与 Play.fun 集成时,请按顺序完成以下阶段。为每个步骤创建任务,并依次完成。

阶段 1:身份验证

在执行任何需要身份验证的操作之前,请确认凭据已设置。

  1. 检查身份验证状态 — 运行 node skills/scripts/playfun-auth.js status,查看凭据是否存在
  2. 如果缺少凭据,则进行设置 — 按照 身份验证设置 指南操作。启动回调服务,并指导用户通过浏览器完成身份验证
  3. 确认凭据有效 — 使用 test_connection MCP 工具确认可以访问。保存返回的用户 ID——稍后要将其作为 API 密钥填入 <meta name="x-ogp-key"> 标签

在确认凭据有效之前,不要进入阶段 2。

阶段 2:构建游戏
  1. 构建或修改游戏 — 创建或更新游戏代码。此时不要添加任何 Play.fun SDK 集成,先确保核心游戏正常运行。在布局中使用安全区域内边距:背景和画布应铺满整个视口(100vw × 100vh),而所有游戏 UI(HUD、按钮、控件)都必须使用 var(--ogp-safe-top-inset, 0px) 和 var(--ogp-safe-bottom-inset, 0px) 设置外边距或内边距。对于画布游戏,通过 JS 读取内边距,并在绘制 UI 时进行偏移。参见安全区域布局
  2. 测试游戏能否独立运行 — 在浏览器中打开游戏,确认不使用 SDK 时游戏功能正常(安全区域变量会回退到 0px)
阶段 3:在 Play.fun 上注册游戏
  1. 选择游戏名称和描述 — 询问用户,或生成一个有趣且能描述游戏的名称
  2. 准备游戏图片 — 查找现有图片或生成占位图片。⚠️ 重要:必须严格遵循图片安全规则,否则会导致崩溃。 简要步骤:(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 工具读取二进制图片文件。
  3. 部署游戏以获取公开 URL — 如果游戏需要托管,请使用 GitHub Pages 部署指南。游戏 URL 必须可公开访问
  4. 注册游戏 — 使用 MCP register_game 工具,并提供以下内容:名称、描述、gameUrl、platform、base64Image 和反作弊限制(根据游戏类型推荐的限制,请参见最佳实践)。保存返回的 id(游戏 UUID)——稍后要将其作为 游戏 ID 填入 sdk.init({ gameId })
  5. 确认注册 — 使用 MCP get_my_games 工具,确认游戏出现在用户的游戏列表中

在注册并获得有效的 gameId 之前,不要进入阶段 4。

阶段 4:集成 Play.fun SDK
  1. 选择 SDK 方案 — 询问用户或根据其需求决定:
    • 浏览器 SDK(参考文档)— 适用于原型、演示和游戏创作活动。无服务端验证
    • 服务端 SDK(参考文档)— 适用于提供代币奖励和防作弊功能的正式游戏
    • 混合方案(参考文档)— 同时使用浏览器 widget 和服务端验证(推荐用于正式环境)
  2. 使用真实凭据添加 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 密钥
  3. 接入计分 — 在游戏过程中集成 sdk.addPoints(),并在游戏结束时集成 sdk.endGame()(适用于浏览器 SDK);对于混合方案,则在服务端调用 savePoints(),并调用 sdk.refreshPointsAndMultiplier()
  4. 测试 SDK 集成 — 打开游戏,确认 Play.fun widget 显示;玩一局,并确认积分已提交
阶段 5:部署与验证
  1. 重新部署集成了 SDK 的版本 — 将更新后的代码推送到托管 URL
  2. 如果 URL 已更改,则更新游戏注册信息 — 如果游戏 URL 已更改,则使用 MCP update_game 工具
  3. 最终验证 — 通过游戏公开 URL 玩游戏,确认积分已保存,并使用 MCP get_game_leaderboard 检查排行榜
  4. 启动 Playcoin(可选) — launch_playcoin MCP 工具需要 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