mcpField
R
remix-game-best-practices

remix-game-best-practices

github.com/farworld-labs开发61 次安装
代码仓库

关于 remix-game-best-practices

remix-game-best-practices 是为使用 Remix SDK 开发游戏提供实现规范的技能,面向游戏开发者,涵盖移动端布局、SDK 钩子、运行环境限制和验证检查。

主要功能

  1. 01竖屏 720x1080 画布要求
  2. 02Remix SDK 状态与生命周期钩子
  3. 03重玩、音频和触觉反馈指引
  4. 04Phaser 与 Three.js 框架规则
  5. 05仅限浏览器的 JavaScript 约束
  6. 06发布前验证清单

适用场景

  1. 01为 Remix 开发竖屏手机游戏
  2. 02通过 SDK 保存游戏进度
  3. 03实现重玩和静音行为
  4. 04检查游戏是否符合 SDK 约束

安装

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

$npx skills add https://github.com/farworld-labs/remix-skills --skill remix-game-best-practices

安装后在 Claude Code 中输入/remix-game-best-practices确认已加载。

详细介绍

游戏创建最佳实践

移动端优先要求

  • 仅针对竖屏方向构建。
  • 画布必须为 720x1080(宽高比为 2:3)。
  • 不要使用横屏布局或控件。
  • 设计便于拇指操作且界面清晰易读。

必须使用 Remix SDK

在 HTML <head> 中包含 SDK 脚本:

  • <script src="https://cdn.jsdelivr.net/npm/@remix-gg/sdk@latest/dist/index.min.js"></script>

仅使用受支持的 SDK API:

  • window.RemixSDK.singlePlayer.actions.saveGameState({ gameState: {...} })
  • window.RemixSDK.singlePlayer.actions.gameOver({ score: number })
  • window.RemixSDK.onPlayAgain(() => { ... })
  • window.RemixSDK.onToggleMute((data) => { ... })
  • window.RemixSDK.ready()
  • window.RemixSDK.gameState
  • window.RemixSDK.hapticFeedback()

禁止的 API 和模式

  • 不要使用 localStorage。
  • 不要使用 sessionStorage。
  • 不要使用 navigator.vibrate(...)。
  • 不要使用 window.RemixSDK.vibrate(...)。
  • 不要使用不存在的 SDK 方法(如 save、checkpoint 等)。

游戏结束与重启流程

  • 仅通过以下方式结束游戏回合:
window.RemixSDK.singlePlayer.actions.gameOver({ score: finalScore })
  • 不要实现自定义的游戏结束画面。
  • 通过 window.RemixSDK.onPlayAgain(...) 处理重玩。

状态持久化

  • 仅使用 saveGameState 持久化进度。
  • 在 await window.RemixSDK.ready() 之后,从 window.RemixSDK.gameState 读取持久化的值。
  • 保存的状态应精简且可序列化。

触觉反馈与音频

  • 在碰撞、得分、UI 交互和游戏结束时使用 window.RemixSDK.hapticFeedback()。
  • 所有游戏音频都应遵循 onToggleMute 状态。
  • 使用轻量级 Web Audio API 音效,以提升移动端性能。

框架规则

Phaser(2D)
  • 使用全局变量 Phaser(不使用导入)。
  • 使用场景生命周期(preload、create、update)。
  • 使用 Arcade 物理引擎处理碰撞。
  • 不要在 Phaser.Game 配置中设置 parent。
Three.js + Cannon-ES(3D)
  • 使用全局变量 THREE 和 CANNON(不使用导入)。
  • 使用 requestAnimationFrame 循环。
  • 包含环境光和方向光。
  • 每帧都从物理刚体同步网格变换。

代码与运行时限制

  • 仅编写 ES6 JavaScript(不使用 TypeScript)。
  • 不要使用 import 语句。
  • 假设运行环境仅限浏览器(不使用 Node.js API)。
  • 定义 initGame() 并在文件末尾调用。

验证清单

完成游戏前,请确认:

  • 画布为竖屏 2:3(720x1080)。
  • 已包含 SDK 钩子(gameOver、onPlayAgain、onToggleMute)。
  • 未使用任何被禁止的存储或振动 API。
  • 已为有意义的游戏事件集成触觉反馈。
  • 可通过 onPlayAgain 正常完成重启流程。

评论

支持 Markdown