mcpField
R
remix-multiplayer

remix-multiplayer

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

关于 remix-multiplayer

remix-multiplayer 是一份工作流技能,指导在 Remix 平台游戏中集成双人回合制多人玩法。它说明如何使用 RemixSDK 的 multiplayer 命名空间、处理状态更新,并提交包含玩家分数的游戏结束结果。

主要功能

  1. 01双人回合制多人玩法指南
  2. 02使用 RemixSDK multiplayer 命名空间
  3. 03处理并验证游戏状态更新
  4. 04提交包含玩家分数的结果

适用场景

  1. 01为 Remix 游戏添加回合制多人玩法
  2. 02读取会话中的玩家 ID
  3. 03处理收到的玩家状态
  4. 04提交多人游戏结果

安装

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

$npx skills add https://github.com/farworld-labs/remix-skills --skill remix-multiplayer

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

详细介绍

实现多人游戏工作流

概述

本技能将指导你为 Remix 平台上的游戏启用并集成多人游戏功能。目前,平台支持使用 SDK multiplayer 命名空间实现双人回合制多人游戏。

前提条件

  • 必须已在 Remix 平台上创建游戏(需要游戏 ID)。
  • 必须设置 REMIX_API_KEY 环境变量。
  • 游戏必须包含 RemixSDK 脚本标签:
    <script src="https://cdn.jsdelivr.net/npm/@remix-gg/sdk@latest/dist/index.min.js"></script>
    

步骤

1. 检查是否已有游戏 ID

如果任务上下文或之前的工具结果中有 gameId,请使用它。

否则,读取最近的 .remix-cli.json。较早的项目可能仍使用 .remix-mcp.json。如果其中任一文件包含 gameId,请重复使用。

只有当这些来源中都没有 gameId 时,才应按照 upload-game 工作流创建一个。

2. 启用多人游戏

不要依赖 updateGame 或直接通过 REST 切换 isMultiplayer。上游工作流文档目前将平台端启用多人游戏视为 Remix 端的标记,而非公开的 Agent 修改操作。

3. 在游戏代码中集成多人游戏
const sdk = window.RemixSDK
await sdk.ready()

// Access all players in the session
const players = sdk.players // Array of player objects

// Listen for game state updates from other players
sdk.onGameStateUpdated((state) => {
  // Sync game state from other players
})

// Send game state to the other player when a turn ends
sdk.multiplayer.actions.saveGameState({
  gameState: currentState,
  alertUserIds: [opponent.id],
})
重要:使用多人游戏的 gameOver

对于多人游戏,请使用 multiplayer.actions.gameOver——不要使用 singlePlayer.actions.gameOver。传入包含玩家 ID 的分数数组:

sdk.multiplayer.actions.gameOver({
  scores: [
    { playerId: player.id, score: playerScore },
    { playerId: opponent.id, score: opponentScore },
  ]
})
保留标准钩子

多人游戏仍需要以下回调:

sdk.onPlayAgain(() => {
  // Reset game state and restart
})

sdk.onToggleMute(({ isMuted }) => {
  // Mute or unmute all audio
})

提示

  • 使用 sdk.players 获取两位玩家及其 ID;目前多人游戏仅支持双人。
  • 每当另一位玩家发送状态时,onGameStateUpdated 都会触发——应用状态前请先验证,并在收到的更新无效时使用 sdk.multiplayer.actions.refuteGameState(...)。
  • 保存多人游戏状态时使用 alertUserIds,以通知下一位玩家轮到自己了。
  • 请勿在同一款游戏中混用 singlePlayer.actions.gameOver 和 multiplayer.actions.gameOver。二者选其一。

评论

支持 Markdown