本文介绍什么游戏应该使用什么网络同步技术。
帧同步与状态同步的区别,可以这么打比方:帧同步是所有客户端播放同一部电影,视觉上完全一样;状态同步是所有客户端拿着相同的剧本(状态一样),但是电影画面略有差异。而快照同步,由于所有的仿真都发生在服务器,所以各个客户端视觉上是一致的,也是在播放同一部电影。
弱客户端,像小游戏,云游戏,都可以使用快照同步。
对于面画有精确要求的,比如格斗类游戏,玩家的出招强依赖于对手的出招动作,所以保持双方视觉上的一致很有必要,此时就适用帧同步,此外,体育类、rts 等需要精细操作的也都得用帧同步。
其他类型的,基本上都可以使用状态同步。
王者荣耀使用的是帧同步,这个分享《王者技术修炼之路》[1]说明了理由:
第一,它的开发效率比较高。如果你开发思路的整体框架是验证可行的,如果你把它的缺点解决了,那么你的开发思路完全就跟写单机一样,你只需要遵从这样的思路,尽量保证性能,程序该怎么写就怎么写。比如我们以前要在状态同步下面做一个复杂的技能,有很多段位的技能,可能要开发好几天,才能有一个稍微过得去的结果,而在帧同步下面,英雄做多段位技能很可能半天就搞定了。
第二,它能实现更强的打击感,打击感强除了我们说的各种反馈、特效、音效外,还有它的准确性。利用帧同步,游戏里面看到这些挥舞的动作,就能做到在比较准确的时刻产生反馈,以及动作本身的密度也可以做到很高的频率,这在状态同步下是比较难做的。
第三,它的流量消耗是稳定的。
moba 类型游戏其实是可以使用状态同步的,王者荣耀采用帧同步算是一种个性化的选择,也付出了很多努力来克服帧同步的弱点。不过看到分享里的这一段的时候,就知道王者荣耀很强调act,画面上追求打击感,那要这种效果,用帧同步显然是更适合的:
第二,它能实现更强的打击感,打击感强除了我们说的各种反馈、特效、音效外,还有它的准确性。利用帧同步,游戏里面看到这些挥舞的动作,就能做到在比较准确的时刻产生反馈,以及动作本身的密度也可以做到很高的频率,这在状态同步下是比较难做的。


8224

被折叠的 条评论
为什么被折叠?



