Nakama 客户端与 Session 管理
网络模块 · 从主项目抽离展示
ThirdBattleLine 网络对战框架
基于 Nakama 的卡牌对战网络层:独立程序集封装认证、Socket、Matchmaker、Relay、DTO 与序列化,并以对局编排器逐步接入双玩家回放和确定性同步。
- 项目类型
- 工具与引擎
- 开发时间
- 2026 — 至今
- 我的职责
- 客户端网络架构 / 协议与联调
- 当前状态
- M3 推进中
01 / BACKGROUND
项目背景与目标
该模块从 ThirdBattleLine 的稳定单机/AI 主链之外隔离接入。先用双客户端 Ping/Pong 验证连接和 Relay,再逐步接入 EndTurn、PlayCard 与后续状态校验,避免网络改造破坏既有玩法。
- →完成双玩家最小可验证 PvP 链路
- →建立客户端与服务端共享的协议事实源
- →支持命令去重和远端动作回放
- →为确定性随机、状态哈希与断线恢复预留边界
02 / RESPONSIBILITY
我负责的部分
Matchmaker、Relay 和 OpCode 分流
PlayerCommandDto / GameEventDto 协议设计
NetworkGameOrchestrator 与远端玩家装配
双 Editor 联调与 Smoke Test
03 / SYSTEMS
核心玩法与技术架构
隔离网络程序集
ThirdBattleLine.Networking 显式依赖 Runtime 与 NakamaRuntime,联网能力仅由调试入口或编排器主动启用。
命令与事件双通道
玩家意图和服务器结果使用不同 DTO 通道,便于权限校验、回放与后续权威状态演进。
远端卡牌定位
按 runtimeCardId、handIndex、sourceCardId 多级映射网络命令,降低运行时对象引用无法跨客户端传输的问题。
04 / PROBLEM SOLVING
开发难点与解决过程
Unity 运行时对象引用不能直接在两个客户端间共享。
使用稳定 DTO 和多级卡牌定位策略,将网络标识映射回本地 RuntimeCard。
一次性网络化整个战斗系统会显著扩大回归范围。
按认证、Relay、EndTurn、无目标出牌、确定性随机和重连分里程碑推进。
结果目前单机/AI 仍保持稳定主路径,网络模块可独立验证。
05 / RESULT
最终效果
- ✓完成设备认证、Session 缓存和 Socket 连接
- ✓完成 Matchmaker 与双 Editor Relay Ping/Pong 验证
- ✓建立网络编排器、远端玩家与 DTO 基础结构
- ✓PlayCard Relay、状态校验与重连仍在开发中
06 / MEDIA
项目截图与演示
该研发项目的结构图与演示素材正在整理,暂不使用虚构截图。
07 / RETROSPECTIVE
项目复盘
网络模块需要明确区分“代码已接入”和“完整对局已验收”。
NetCardGame 仓库目前作为后续独立整理入口,实际可展示实现以 ThirdBattleLine 私有仓库为准。