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