状态同步模式
客户端把玩家输入发送到服务器,所有逻辑(AI逻辑、技能逻辑、战斗计算等)都在服务器中运行,服务器把运算结果同步给客户端,客户端只需要接受服务器同步的状态变化后进行表现
优点:所有逻辑在服务器运行,能够有效的防止作弊。
缺点:需要服务器把结果同步给客户端进行展示,由于网络传输存在时延,各个客户端看到的状态会存在不一致,各个客户端和服务器间的状态也存在不一致
问题
因为客户端需要等待服务器的指令才能进行表现,在网络波动情况下,玩家的输入和游戏界面会明显存在延迟,影响游戏手感。
对抗方案:客户端在表现上引入客户端预测
缺点:如果网络抖动较大,客户端预测的位置和服务器下发的位置差别较大时,玩家会明显的感觉到拉扯现象。
优点:利用客户端预测能有效的屏蔽网络延迟/波动带来的手感问题。
数据量的压力
状态同步方式数据量会随着需要同步的单位数量增长,对于RTS游戏来讲动不动就是几百个的单位可以被操作
帧同步模式
针对状态同步数据量上的压力,帧同步不同步状态,只同步操作,每个客户端接受到操作指令以后,进行同样计算,同样的输出。
优点:各个客户端的状态是是一致性的。服务器负载低,可容纳更多的单局。逻辑都在客户端,服务器开发简单。
缺点:战斗逻辑更新,得所有客户端更新,对抗外挂困难。