第二章:协作与实时竞技层(#11–#20)
主题: 从单局走向多玩家同步与实时房间生命周期。
目标: 验证多人协作、实时 Tick 同步、观战与断线恢复机制。
| 编号 |
原型 |
功能重点 |
核心验证目标 |
| 11 |
团队塔防 |
协作防守 |
AOI 同步、队伍资源共享 |
| 12 |
团队占点 |
实时位置与控制判定 |
延迟补偿、房间生命周期 |
| 13 |
小队生存 |
世界状态持久 |
异步任务、离线收益 |
| 14 |
房间逃脱 |
同步解谜 |
Puzzle FSM、多操作冲突 |
| 15 |
微型赛车 |
实时竞速 |
回滚预测、碰撞裁定 |
| 16 |
简版 MOBA |
战斗 + AI 单位 |
Tick 同步、断线恢复 |
| 17 |
战棋对战 |
战术锁步 |
Command Buffer、日志回放 |
| 18 |
城市经营 |
经济与异步 |
定时作业、经济平衡 |
| 19 |
战场吃鸡 |
大型实时对战 |
区域广播、缩圈系统 |
| 20 |
社交大厅 |
平台入口 |
多房间漫游、统一身份系统 |
阶段目标:
- 验证 Tick 同步系统与插值机制
- 实现房间生命周期管理(创建→运行→销毁)
- 构建统一的 AOI 广播与延迟控制框架
- 形成 “社交大厅 → 游戏房间” 多层交互模型
系统结构图
graph TD
A["Matchmaker"] --> B["Room Coordinator"]
B --> C["Tick Sync Engine"]
C --> D["State Broadcaster"]
D --> E["Client"]
C --> F["Replay Writer"]
说明:
- Tick Sync Engine:60Hz 驱动帧同步循环
- Broadcaster:差量广播(Delta Update)
- Replay Writer:事件流记录(压缩后入库)
核心接口定义(示例)
| 模块 |
接口 |
描述 |
| TickEngine |
StartLoop() |
启动帧循环(含 Delta) |
| RoomCoordinator |
JoinRoom() SyncTick() |
玩家同步与状态更新 |
| ReplayWriter |
Write(event) |
写入时间戳 + 操作日志 |
| Observer |
Subscribe(roomID) |
观战接口,延迟 n Tick |
验证流程(以 #15 微型赛车为例)
sequenceDiagram
Client->>RoomCoordinator: Ready
RoomCoordinator->>TickEngine: Register Player
loop 30–60Hz
TickEngine->>Client: State Update (Delta)
Client->>TickEngine: Input (Prediction)
end
TickEngine->>ReplayWriter: Save Tick Actions
指标体系
| 指标 |
含义 |
| Tick Loss Ratio |
Tick 丢失率 |
| Delay Jitter |
延迟抖动统计 |
| Prediction Error |
客户端预测偏差 |
| Room Stability |
同步稳定性指数 |
技术选型建议
| 模块 |
技术 |
理由 |
| Tick Engine |
Go + goroutine pool |
并发 Tick 驱动 |
| Sync |
Protocol Buffers |
减少数据包体积 |
| State Cache |
Redis + Zstd 压缩 |
减少 IO 与延迟 |
| 观战流 |
Kafka Stream / NATS |
延迟控制与回放复用 |
扩展方向
- Snapshot + Delta 机制,支持断线恢复
- 多视角观战 与延迟回放管线
- 帧同步延迟自适应机制(Adaptive Tick)