多人游戏让你的游戏无需自建游戏服务器即可联网:大厅中的房间、邀请、语音聊天,房主为整个房间开始游戏。 玩家通过 WebRTC 互相连接;平台只负责找到他们并把他们连起来。
玩家看到什么
- 支持在线游玩的游戏房间:公开房间,或凭邀请码进入的私人房间。
- “创建房间”:名称、2、4 或 8 名玩家,以及游戏自己的房间设置。
- 带房主、“准备”和离线标记的成员,房间聊天,以及移除成员。
- 语音聊天:关闭麦克风、按 V 键说话或常开麦克风、每位成员的静音和音量、谁在说话。
- **房主的“开始”**会把房间里的每台设备都带入游戏。
多人游戏
12 450
320
Mira 的房间3/4 · 公开
加入
仅限好友2/8 · 凭邀请
房间码
我的房间 · 3/4
你(房主) · Mira ✓ · Arrow ✓ · 等待中…
语音
开始
创建房间
31在线游戏的房间:公开,或凭邀请进入的私人房间。
2带“准备”状态的成员、房间聊天和语音聊天。
3房主点击“开始”,整个房间一起进入游戏。
如何运作
- 房间及其会话归大厅所有;游戏从不自己创建或加入房间。
- 游戏在大厅中注册后就能联网游玩;之后它的“开始”旁边会出现“和好友一起”。
- 如果游戏允许,后来的玩家可以加入正在进行的游戏。体素沙盒是参考实现。
步骤 01把系统加入项目
告诉 AI 编程助手:“把游戏做成 4 人多人游戏”。它会安装系统并注册游戏;体素沙盒模板一开始就有。
步骤 02在后台中设置
打开后台,选择你的项目,进入 实时运营 → v2 → 多人联机。
- 开启多人游戏,并设置每个房间的最大玩家数。
- 为处于严格网络环境的玩家准备的中继服务器(TURN)也在这里设置。
页面上的 AI 按钮会打开助手:描述你的需求,它会提出修改,你检查后点击保存。
步骤 03测试并发布
在应用的测试版中检查系统。设置通过单独的操作发送到正式应用,请看发布与链接。
开发者须知
房间通过 client.multiplayer 和 RealtimeSession(@idosgames/core/realtime)工作;游戏通过 ctx.multiplayer 接入。
// 在游戏模块的 setup() 中:游戏通过大厅房间联网游玩
ctx.multiplayer.registerGame({
mode: 'my-game',
topology: 'Host',
chatMode: 'ServerRelay', // 大厅的房间聊天
maxPlayers: 4,
joinInProgress: true,
// 房主点击“开始”后,在每位成员的设备上执行
start: async (room) => startOnline(room.session, { host: room.isHost, leave: room.leave }),
})- 用
room.leave()离开:房间归大厅所有。 - 只有在多人游戏功能可用时才显示“和好友一起玩”:没有它,游戏就保持单人模式。
每个字段都在技能 multiplayer-realtime 中有说明,由 SDK 的 MCP 服务器提供。
常见问题
需要游戏服务器吗?
不需要。玩家通过 WebRTC 互相连接;平台负责房间和连接建立。
有语音聊天吗?
有。房间内有语音聊天,支持按键说话、静音以及调节每位成员的音量。