← 返回全部作品

网络模块 · 从主项目抽离展示

ThirdBattleLine 网络对战框架

基于 Nakama 的卡牌对战网络层:独立程序集封装认证、Socket、Matchmaker、Relay、DTO 与序列化,并以对局编排器逐步接入双玩家回放和确定性同步。

UnityC#NakamaWebSocketDTOTypeScript RPC
项目类型
工具与引擎
开发时间
2026 — 至今
我的职责
客户端网络架构 / 协议与联调
当前状态
M3 推进中

01 / BACKGROUND

项目背景与目标

该模块从 ThirdBattleLine 的稳定单机/AI 主链之外隔离接入。先用双客户端 Ping/Pong 验证连接和 Relay,再逐步接入 EndTurn、PlayCard 与后续状态校验,避免网络改造破坏既有玩法。

  • 完成双玩家最小可验证 PvP 链路
  • 建立客户端与服务端共享的协议事实源
  • 支持命令去重和远端动作回放
  • 为确定性随机、状态哈希与断线恢复预留边界

02 / RESPONSIBILITY

我负责的部分

01

Nakama 客户端与 Session 管理

02

Matchmaker、Relay 和 OpCode 分流

03

PlayerCommandDto / GameEventDto 协议设计

04

NetworkGameOrchestrator 与远端玩家装配

05

双 Editor 联调与 Smoke Test

03 / SYSTEMS

核心玩法与技术架构

隔离网络程序集

ThirdBattleLine.Networking 显式依赖 Runtime 与 NakamaRuntime,联网能力仅由调试入口或编排器主动启用。

命令与事件双通道

玩家意图和服务器结果使用不同 DTO 通道,便于权限校验、回放与后续权威状态演进。

远端卡牌定位

按 runtimeCardId、handIndex、sourceCardId 多级映射网络命令,降低运行时对象引用无法跨客户端传输的问题。

04 / PROBLEM SOLVING

开发难点与解决过程

问题 01

Unity 运行时对象引用不能直接在两个客户端间共享。

解决方案

使用稳定 DTO 和多级卡牌定位策略,将网络标识映射回本地 RuntimeCard。

问题 02

一次性网络化整个战斗系统会显著扩大回归范围。

解决方案

按认证、Relay、EndTurn、无目标出牌、确定性随机和重连分里程碑推进。

结果

目前单机/AI 仍保持稳定主路径,网络模块可独立验证。

05 / RESULT

最终效果

  • 完成设备认证、Session 缓存和 Socket 连接
  • 完成 Matchmaker 与双 Editor Relay Ping/Pong 验证
  • 建立网络编排器、远端玩家与 DTO 基础结构
  • PlayCard Relay、状态校验与重连仍在开发中

06 / MEDIA

项目截图与演示

该研发项目的结构图与演示素材正在整理,暂不使用虚构截图。

07 / RETROSPECTIVE

项目复盘

01

网络模块需要明确区分“代码已接入”和“完整对局已验收”。

02

NetCardGame 仓库目前作为后续独立整理入口,实际可展示实现以 ThirdBattleLine 私有仓库为准。