常见网络同步模型

1.C/S 模型 (Client-Server) : 状态同步
2.对等网络模型(Peer-To-Peer): 帧同步

网络同步数据类型

将数据分为四个类型

  1. 非保障数据(可丢弃)
  2. 保障数据(需要确保到达顺序,如发起攻击次序)
  3. 最近的状态数据(如特定玩家生命值,旧的生命值可覆盖)
  4. 最快保障数据(最高优先级,如移动信息)

一、C/S 状态同步网络模型

【游戏开发】多人游戏网络同步相关技术(基础原理篇)

1. ghost管理器

【游戏开发】多人游戏网络同步相关技术(基础原理篇)

2. 移动管理器

【游戏开发】多人游戏网络同步相关技术(基础原理篇)

3. 事件管理器

由游戏模拟层产生的事件队列
*可以看作是RPC(远程过程调用)的一种简单形式

4. 其他系统

与网络不相关的游戏逻辑,如本地画面表现或本地存档等

二、对等网络模型

对比两种游戏类型RTS和FPS

RTS FPS
相关节点数量 多(50-400) 少(20-30)
方案 同步玩家命令 同步单元

对等网络模型采用确定性锁步(deterministic lockstep)

  1. 同步玩家命令难点
    每一个实例独立执行玩家发出的命令,所有游戏实例之间需要保持同步
    a.不同客户端帧速率不同
    b.网络连接质量不同
    综上,引入方法:轮班计时器(保证传输一致)
    (1).基于网络情况动态调整渲染帧率
    (2).滞后过多 -> 强行退出
    (3).可在客户端直接保存命令,实现重播

  2. 同步
    保证每台计算机计算结果一致
    (1).随机
    伪随机数生成器
    a.种子一致
    b.调用次数一致
    c.调用顺序一致
    (2).防作弊
    a.行为作弊(修改当前角色信息,数据与其他客户端不一致)
    b.地图作弊(查看本应该隐藏的其他玩家信息)

网络拓扑(network topology)

网络拓扑决定了网络中计算机之间如何连接

一、C/S拓扑结构

【游戏开发】多人游戏网络同步相关技术(基础原理篇)

  1. 使用一台权威服务器(Authoritative Server)
    客户端根据服务器的游戏状态更新自己的本地状态
  2. 产生延迟
    往返时间RTT(Round Trip Time)
    某一步游戏操作,最简化的数据传输 :客户端 -> 服务器 -> 客户端
    往返一次的时间称为往返时间RTT
  3. 服务器可被细分
    a.专用的(dedicated):多个不同进程负责多个状态
    b.监听(listen):可使用某个客户端作为计算游戏逻辑的服务器,若被指定为“逻辑服务器”的客户端断开连接,另一个客户端可被晋升为新的“逻辑服务器”,这一过程称为主机迁移(Host Migration)

二、对等网络拓扑结构

【游戏开发】多人游戏网络同步相关技术(基础原理篇)

  1. 每个对等体共享所有动作(输入共享)
  2. 每个对等体都模拟这些动作的执行
  • 对等网络拓扑结构存在的两个问题
    a.如何验证对等体之间状态的一致性
    b.如何同步随机数发生器

相关文章:

  • 2021-12-05
  • 2021-09-18
  • 2021-07-08
  • 2022-12-23
  • 2021-12-23
  • 2022-01-02
  • 2021-05-15
  • 2022-01-11
猜你喜欢
  • 2021-06-01
  • 2021-05-28
  • 2022-01-10
  • 2022-12-23
  • 2022-12-23
  • 2022-02-18
  • 2021-12-07
相关资源
相似解决方案