游戏网络同步机制分为帧同步和状态同步。
帧同步是将客户端的操作通过服务端转发给所有客户端,其他玩家同步当前其他玩家的操作,具体执行逻辑写在客户端,再根据处理逻辑后的状态显示,以迁移一致性为主。具体游戏代表为FPS、PVP、PVE,例如绝地求生等。
状态同步是一种将客户端操作统一起来在服务端处理完后将结果同步给客户端的一种同步方式,具体执行逻辑写在服务端,以结果一致性为主。具体游戏代表为mob游戏,例如魔兽、英雄联盟等。
因为帧同步需要客户端实时同步其他客户端的操作,因此服务端即时下发客户端状态,因此需要实时性较高的网络通信,因此在网络层这块UDP协议优于TCP协议。
因为状态同步是通过服务端计算客户端产生的逻辑,因此状态同步对于服务端的要求比较高,客户端对服务端的结果进行展示即可。
帧同步不能使用浮点数or随机数,因为无法保证各个客户端产生的数值一致,对于客户端的表现会出现很大的差异。