分布时间同步的基本概念
阅读该部之前,确保你已经具备所需的前置知识,否则你将难以理解该部内容。
直接同步
现在,假设我们有4个整数需要和远端玩家同步:
- int_A
- int_B
- int_C
- int_D
如果将他们设置为同步,那么,数值将会通过网络直接抵达远端玩家的客户端。
直接同步 Parameter 的视觉展示
分布时间同步的基本概念
既然我们已知同步参数的消耗只有在一个参数被标记为Synced (同步) 时才会生效。换句话说,如果一个参数没有被标记为 Sync,那么,这个参数不会消耗同步 bit。
同步参数的数量大,消耗就大,那么,是否有一种办法,可以减少同步的参数的数量,又能将全部信息传递到远端玩家?
分布时间同步就是一种符合这种要求的特殊系统,这种系统将参数同步从同时拆分成多次,在一段时间内分批完成。而分布时间同步的概念与直接同步非常相似,但是传输信息的方式有所改变。
分布时间同步的架构
依然,假设我们有4个整数需要和远端玩家同步,将我方称之为源头,接收方称之为终点:
- int_A
- int_B
- int_C
- int_D
我们知道,当一个参数被标记为同步,它会通过网络发送到远端。那么,我们可以利用这一点,只需要1个同步参数在中间充当桥梁即可,而每一次同步时,替换同步的源头和终点。
分布时间同步架构的视觉展示
如果你认为这样来理解还是太抽象的话,就将同步容器想象成一个背包。当背着背包去上学的时候,背包里面就放满了课本和文具;当背着背包去登山的时候,背包里面就放满了三明治,水,驱蚊水;当背着背包去旅行,背包里面就放满了地图,指南针,换洗衣物...
分布时间同步架构同步 Int_B 时
由此,将同时同步4个整数拆分为分4次同步4个整数。这样,同一时间只需要同步容器是同步的,每一次将不同的参数放入同步容器,一头放入,一头取出,就完成了通过1个同步容器进行4个整数的同步。
同步步骤,Bit 数与延迟
从分布时间同步的架构可以看出,这种将同步从同时同步分散到在一段时间中逐步完成的方法实际上是在用时间换空间
时间换空间的策略是通过增加计算时间来减少内存使用。这种方法通常用于在内存资源有限的情况下,通过重复计算或延迟计算来节省内存。
在当前的情境下,就是通过将参数同步分布到一段时间内逐步完成来减少同时间同步的参数的数量,以此减少 bit 的消耗,这么做也将不可避免地使得参数的同步延后。
同步步骤与延迟的关系
分布时间同步架构本质上是将同步拆分成多次来完成,因此,同步步骤是决定节省 bit 的数量以及同步延迟的重要因素。步骤越多,同步的延迟越大,但同时间要同步的参数也可以减少,同步容器的数量变少,同步的成本也会降低。
反之,同步的步骤越少,同步的延迟就会越小,但就要用越多的同步容器同时对多个参数进行同步,容器的成本就会提高。
这个部分在下个章节中会继续深入。
No Comments