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

41 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 数据替换为服务端数据。
请确认是否开始执行环境搭建?