帧同步技术在计算机网络中有广泛的应用,特别是在数据通信和传输领域。以下是帧同步的一些典型应用:以太网、串行通信、数据存储、视频传输。该研究方向已在21世纪初就用于moba,FPS以及后面出现4399的一些双人格斗RPG小游戏中。
帧同步是一种同步机制,它基于自定义的时间片来同步玩家操作。在这个场景中,设定每66毫秒为一个时间片,即一个帧。在这个帧内,无论玩家操作多么频繁,只接收并记录其一次点击。这种同步方式的优势在于,操作数据可以用较短的字段表示,从而减轻服务器的负担。服务器无需进行复杂的逻辑运算,只需在每个时间片内转发客户端的操作数据。
当然,帧同步也分为乐观帧同步与严格帧同步。乐观帧同步是指服务端定时广播操作指令,以推进游戏进程,而不必等待慢客户端。乐观帧同步的广播策略比严格帧同步简单。所以,大多数的帧同步都是乐观帧同步。
同时,帧同步还分客户端自主向服务器发送与服务器每帧给客户端发送数据请求,前者复杂度较高,今天讲的也是后者。
而既然说到了帧同步,那么分布式架构方式也应提及。分布式网络游戏服务器是一种架构方式,用于支持大规模多人在线游戏(MMOG)或其他需要高并发处理的游戏。在分布式网络游戏服务器中,游戏服务器被分布在多个物理或虚拟的计算节点上,以实现负载均衡、高可用性和扩展性。
既然都讲那么多了,也该讲讲帧同步开始时服务器与客户端的架构细节是什么了。首先,前面讲到了帧同步的基本逻辑了,那么当实施时怎么保证每个客户端的显示无差错呢?那么这时客户端就得定义一个当时玩家还未同步的操作的字典,每当服务器发送过来某一帧的操作时就从中删减里面这一帧的数据,并且把为同步的操作再次发送给服务器,直到服务器把该操作响应给该客户端为止,服务器同理也存储着每个客户端哪些帧的操作为响应,那么下一帧就会把那些操作发送过去,反复如此,直到响应为止。