game/.trae/documents/Nakama 服务端集成规划.md
2026-01-01 02:21:09 +08:00

2.2 KiB
Raw Blame History

Nakama 服务端集成规划 (修订版4人自动匹配)

根据您的补充需求4人自动匹配、无需手动管理房间我调整了规划如下。我们将继续基于“动物扫雷大作战”项目进行开发。

1. 核心流程:自动匹配 (Auto-Matchmaking)

我们将完全屏蔽“房间”概念,采用类似《王者荣耀》或《英雄联盟》的匹配机制:

  1. 点击“开始游戏”: 客户端调用 Nakama Matchmaker API参数设定为 min_count=4, max_count=4
  2. 服务端排队: Nakama 自动将请求的玩家放入匹配池。
  3. 匹配成功: 当凑齐 4 人后,服务端自动创建一个权威比赛 (Authoritative Match)。
  4. 自动入场: 客户端收到匹配成功通知 (Match Found),携带 Token 自动加入比赛,进入游戏画面。

2. 系统架构与实施

第一阶段:基础设施 (不变)

  • 动作: 配置 Docker (Nakama + CockroachDB)。
  • 动作: 前端安装 nakama-js

第二阶段:服务端逻辑 (TypeScript)

  • Match Handler (比赛控制器):
    • 硬性限制: 仅当凑齐 4 人时游戏逻辑才正式开始(或等待超时添加 AI目前先按纯真人规划
    • 回合制逻辑: 维护 4 人行动顺序P1 -> P2 -> P3 -> P4 -> P1...)。
    • 状态同步: 广播 100 个格子的状态、4 名玩家的血量/道具/Buff。

第三阶段:前端改造 (针对 4 人匹配)

  • UI 调整:
    • 主界面增加“开始匹配 (4人)”大按钮。
    • 增加“匹配中...”的等待状态提示。
    • 游戏内固定显示 4 个玩家的头像槽位(如 App.tsx 中已有的布局,需确保能动态映射 P1-P4
  • 逻辑对接:
    • Socket 监听: 监听 onmatchmakermatched 事件 -> 自动执行 joinMatch
    • 游戏开始: 收到服务端 OP_GAME_START 信号后,解锁棋盘交互。

3. 下一步执行计划

  1. 环境搭建: 启动 Nakama 服务端。
  2. 前端集成: 实现“点击匹配 -> 等待 -> 自动进入游戏”的完整链路。
  3. 逻辑迁移: 将现有的 Mock 数据替换为服务端数据。

请确认是否开始执行环境搭建?