2.2 KiB
2.2 KiB
Nakama 服务端集成规划 (修订版:4人自动匹配)
根据您的补充需求(4人自动匹配、无需手动管理房间),我调整了规划如下。我们将继续基于“动物扫雷大作战”项目进行开发。
1. 核心流程:自动匹配 (Auto-Matchmaking)
我们将完全屏蔽“房间”概念,采用类似《王者荣耀》或《英雄联盟》的匹配机制:
- 点击“开始游戏”: 客户端调用 Nakama Matchmaker API,参数设定为
min_count=4, max_count=4。 - 服务端排队: Nakama 自动将请求的玩家放入匹配池。
- 匹配成功: 当凑齐 4 人后,服务端自动创建一个权威比赛 (Authoritative Match)。
- 自动入场: 客户端收到匹配成功通知 (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信号后,解锁棋盘交互。
- Socket 监听: 监听
3. 下一步执行计划
- 环境搭建: 启动 Nakama 服务端。
- 前端集成: 实现“点击匹配 -> 等待 -> 自动进入游戏”的完整链路。
- 逻辑迁移: 将现有的 Mock 数据替换为服务端数据。
请确认是否开始执行环境搭建?