游戏系统

无需自建服务器的多人游戏:房间和语音

iDos Games 现成多人游戏的运作方式:大厅中的公开房间或凭邀请进入的房间、准备确认、房间聊天和语音聊天,房主为所有人开始游戏,玩家通过 WebRTC 连接,以及如何开启。

多人游戏让你的游戏无需自建游戏服务器即可联网:大厅中的房间、邀请、语音聊天,房主为整个房间开始游戏。 玩家通过 WebRTC 互相连接;平台只负责找到他们并把他们连起来。

玩家看到什么

  • 支持在线游玩的游戏房间:公开房间,或凭邀请码进入的私人房间。
  • “创建房间”:名称、2、4 或 8 名玩家,以及游戏自己的房间设置。
  • 带房主、“准备”和离线标记的成员,房间聊天,以及移除成员。
  • 语音聊天:关闭麦克风、按 V 键说话或常开麦克风、每位成员的静音和音量、谁在说话。
  • **房主的“开始”**会把房间里的每台设备都带入游戏。
多人游戏
12 450
320
Mira 的房间3/4 · 公开
加入
仅限好友2/8 · 凭邀请
房间码
我的房间 · 3/4

你(房主) · Mira ✓ · Arrow ✓ · 等待中…

语音
开始
创建房间
在线游戏的房间:公开,或凭邀请进入的私人房间。
带“准备”状态的成员、房间聊天和语音聊天。
房主点击“开始”,整个房间一起进入游戏。
示例. 多人游戏大厅:房间、成员、语音和整个房间一起“开始”。

如何运作

  • 房间及其会话归大厅所有;游戏从不自己创建或加入房间。
  • 游戏在大厅中注册后就能联网游玩;之后它的“开始”旁边会出现“和好友一起”。
  • 如果游戏允许,后来的玩家可以加入正在进行的游戏。体素沙盒是参考实现。

步骤 01把系统加入项目

告诉 AI 编程助手:“把游戏做成 4 人多人游戏”。它会安装系统并注册游戏;体素沙盒模板一开始就有。

步骤 02在后台中设置

打开后台,选择你的项目,进入 实时运营 → v2 → 多人联机。

  • 开启多人游戏,并设置每个房间的最大玩家数。
  • 为处于严格网络环境的玩家准备的中继服务器(TURN)也在这里设置。

页面上的 AI 按钮会打开助手:描述你的需求,它会提出修改,你检查后点击保存。

步骤 03测试并发布

在应用的测试版中检查系统。设置通过单独的操作发送到正式应用,请看发布与链接。

开发者须知

房间通过 client.multiplayer 和 RealtimeSession(@idosgames/core/realtime)工作;游戏通过 ctx.multiplayer 接入。

TypeScript
// 在游戏模块的 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 互相连接;平台负责房间和连接建立。

有语音聊天吗?

有。房间内有语音聊天,支持按键说话、静音以及调节每位成员的音量。

另请参阅

制作你自己的游戏

用一句话描述你的想法,AI 编程助手会把它做出来,并以独立链接上线。