精华内容
下载资源
问答
  • 帧同步和状态同步

    2019-10-24 21:19:34
  • 帧同步和状态同步资料

    千次阅读 2018-04-17 16:00:37
    帧同步和状态同步资料 最近需要研究帧同步和状态同步方面的东西,从网上看了不少资料这里把我认为比较好的博文总结一下。 TCP UDP socket连接和http连接的区别 ...

    帧同步和状态同步资料

    最近需要研究帧同步和状态同步方面的东西,从网上看了不少资料这里把我认为比较好的博文总结一下。

    TCP UDP

    socket连接和http连接的区别

    https://blog.csdn.net/wwd0501/article/details/52412396

    帧同步

    王者荣耀帧同步

    http://gad.qq.com/article/detail/30384

    知乎LOL网络同步

    https://www.zhihu.com/question/37423062

    ##状态同步
    暂没有找到单独分析,看下边的对比博客文章

    ##其他一些参考博客

    网络游戏同步方式(帧同步和状态同步)

    https://blog.csdn.net/chrisfxs/article/details/73655934
    https://blog.csdn.net/qiaoquan3/article/details/75635466
    https://www.cnblogs.com/alps/p/7060268.html

    实时对战游戏的同步——问题分析

    http://www.qiujiawei.com/game-synchronize/

    网络同步知乎大佬文章

    https://www.zhihu.com/question/30204598/answer/47173171

    unity帧同步游戏极简框架及实例(附客户端服务器源码)(强烈推荐)

    https://blog.csdn.net/wanzi215/article/details/82053036

    展开全文
  • 本文简单讨论了帧同步和状态同步。 帧同步 什么是帧同步:帧同步常被RTS(即时战略)游戏常采用。在游戏中同步的是玩家的操作指令,操作指令包含当前的帧索引。一般的流程是客户端上传操作到服务器, 服务器...

    实时游戏发展迅猛,同步技术也逐渐成为解决方案的核心之一。 本文简单讨论了帧同步和状态同步。


    帧同步

    什么是帧同步:帧同步常被RTS(即时战略)游戏常采用。在游戏中同步的是玩家的操作指令,操作指令包含当前的帧索引。一般的流程是客户端上传操作到服务器, 服务器收到后并不计算游戏行为, 而是转发到所有客户端。这里最重要的概念就是 相同的输入 + 相同的时机 = 相同的输出。

    实现帧同步的流程一般是:

    1. 同步随机数种子。(一般游戏中都设计随机数的使用, 通过同步随机数种子,可以保持随机数一致性)

    2. 客户端上传操作指令。(指令包括游戏操作和当前帧索引)

    3. 服务器广播所有客户端的操作。(如果没有操作, 也要广播空指令来驱动游戏帧前进)。

    因为帧同步的特性, 我们可以很方便的做出战斗回放:服务器记录所有操作, 客户端请求到操作文件再执行一次即可。

    帧同步的特性导致客户端的逻辑实现和表现实现必须完全分离。Unity中的一些方法接口(如 Invoke, Update、动画系统等)是不可靠的,所有要自己实现一套物理引擎、数学库,做到逻辑和表现分离。 这样即使Unity的渲染是不同步的,但是逻辑跑出来是同步的。

    我曾经参与过一个飞机类弹幕游戏的项目,它的同步方案就是帧同步, 可以完美的播放回放, 并实现服务器上加速验算。


    状态同步

    什么是状态同步:同步的是游戏中的各种状态。一般的流程是客户端上传操作到服务器,服务器收到后计算游戏行为的结果,然后以广播的方式下发游戏中各种状态,客户端收到状态后再根据状态显示内容。状态同步最广泛的应用应该是在回合制游戏中。

    状态同步其实是一种不严谨的同步。它的思想中,不同玩家屏幕上的表现的一致性并不是重要指标, 只要每次操作的结果相同即可。所以状态同步对网络延迟的要求并不高。像玩RPG游戏,200-300ms的延迟也可以接受。 但是在RTS游戏中,50ms的延迟也会很受伤。 
    举个移动的例子,在状态同步中, 客户端甲上操作要求从A点移动到B点,但在客户端乙上, 甲对象从A移动到C,然后从C点移动到了B。这是因为, 客户端乙收到A的移动状态时, 已经经过了一个延迟。这个过程中,需要客户端乙本地做一些平滑的处理,最终达到移动到B点的结果。

    所以国产RPG游戏中,动画的特效一般做的比较绚丽(大), 攻击的时候给人感觉是击中了。放技能之前一般也有一个动画前摇,同时将攻击请求提交给服务器。等服务器结果返回时,动画也播放完毕了,之后就是统一的伤害效果和结算。


    状态同步和帧同步的比较和选择:

    比较:

    状态同步 帧同步
    流量 相对高 相对低
    回放 记录文件大 记录文件小
    安全性 服务器实现逻辑,安全性高 逻辑在客户端,反外挂压力大、无法避免开图挂
    服务器压力
    战斗校验 协议加密,内存混肴,误差校验,无法彻底解决。 服务器可以重启跑一遍战斗。
    网络卡顿的表现 瞬移,回位,莫名掉血 战斗卡顿
    实现 调优状态同步方式,客户端需要做插值处理。 客户端按照单机方式开发,保证逻辑层和表现层分离。逻辑层不要用到浮点数,不要用不确定顺序的逻辑结构。对于物理引擎和浮点数计算要不能使用Unity的。

    选择:对于单位比较多的即时策略游戏,帧同步是很好的选择。反过来,如果玩家比较多,状态同步更合适,安全性更高。


    如有错误,欢迎指出。

    转载自: http://blog.csdn.net/david_dai_1108/article/details/73437736

    展开全文
  • 主流方法:帧同步和状态同步 (1)状态同步 基本认知:狭义的理解,就是所有客户端将动作信息全部发给服务端,由服务端计算游戏行为,再将所有状态数据通过广播的方式发给客户端。(比喻:相当于所有客户端都在远程...

    主流方法:帧同步和状态同步

    (1)状态同步
    基本认知:狭义的理解,就是所有客户端将动作信息全部发给服务端,由服务端计算游戏行为,再将所有状态数据通过广播的方式发给客户端。(比喻:相当于所有客户端都在远程操控服务端)
    状态同步流程:

    • 客户端上传信息到服务器
    • 服务器收到信息后计算行为结果(计算,逻辑处理)
    • 服务器广播各种信息到客户端
    • 客户端接收后,更新本地状态

    总结:重视逻辑计算的结果一致性,对客户端的视频是否是否一致没有要求。(即,甲、乙计算结果相同,甲先加载出,乙可能因为自身网速问题过一段时间加载出)

    (2)帧同步
    基本认知:客户端将信息发给服务端,服务端汇总后直接发给所有客户端,让他们自己处理信息;又或者直接不用服务端,直接P2P,客户端发给客户端,互相处理自己的数据。这样所有客户端只接受对方的行为数据,进行自己的数据计算,由此减少了数据量,又因为数据均一致,结果也一样,最大限度保持客户端之间画面的一致性。
    扩展功能:①服务端接收信息的特性,可以记录信息,完成回放功能。②服务端记录仅仅只有双方的计算结果和行为逻辑,由此对比防止作弊。③多人实时对战。

    总结:重视画面一致性,通过相同时机的相同计算得到一致的结果,但是因此当一个客户端出现问题,所有客户端都会为保持一致性而停止等待,造成卡顿。

    展开全文
  • 王者荣耀是使用的帧同步(Lockstep),有成功案例,后续才会有很多人想着跟进。 帧同步:服务器按照帧转换客户端的操作,其他客户端依赖这些信息在本地模拟表现。 状态同步:客户端操作的时候,只能将状态数据提交给...
  • 帧同步和状态同步区别

    千次阅读 2020-09-14 11:26:28
    一、同步 所谓同步,就是要多个客户端表现效果是一致的,例如我们玩王者荣耀的...二、状态同步和帧同步的区别 最大的区别就是战斗核心逻辑写在哪,状态同步的战斗逻辑在服务端,帧同步的战斗逻辑在客户端。战斗逻辑是
  • 帧同步和状态同步概述

    千次阅读 2018-07-14 16:55:41
    帧同步不同步状态,只同步玩家的操作指令,操作指令包含当前的帧索引。这里最重要的概念就是 相同的输入 + 相同的时机 = 相同的输出。 实现帧同步的一般流程是: 1. 同步随机数种子。(一般游戏中都设计随机数的...
  • 在做网络游戏的时候首先要做的是选择一种同步方式来使用,网上的文章都是说帧同步状态同步的选择,但是又经常讲的模糊不清,我大概整理了一下,并且有一种我们现在项目用的网络同步方式 状态同步 状态同步就有好几...
  • Q:对帧同步和状态同步进行介绍 A: 状态同步的逻辑在服务端,客户端仅作渲染。客户端的操作反馈到客户端,服务器更新状态,再传回客户端。 帧同步的逻辑在客户端,服务端负责向所有客户端广播动作。客户端的操作...
  • 帧同步和状态同步(一)

    千次阅读 2017-11-01 09:26:35
    帧同步什么是帧同步帧同步常被RTS(即时战略)游戏常采用。在游戏中同步的是玩家的操作指令,操作指令包含当前的帧索引。一般的流程是客户端上传操作到服务器, 服务器收到后并不计算游戏行为, 而是转发到所有...
  • 状态同步的战斗逻辑写在服务器端,包括技能释放,普攻,伤害,移动等等一系列内容 由于核心逻辑必须知道一个场景中的所有实体的情况,所以就必须把战斗逻辑写在服务器端 比如魔兽争霸的客户端承载有限,并不能把所有...
  • 帧同步服务器只负责向客户端广播数据,并不处理,由客户端自己处理,这样用户容易作弊。延迟低,适用于实时性高的游戏; 状态同步中服务器获取客户端的数据,统一处理,处理完后广播给服务器,延迟高,但是公平性好...
  • 帧同步 状态同步 流程 - 同步随机种子,服务器广播随机种子给客户端 - 客户端上传操作指令,服务端广播指令 (如果没有操作, 也要广播空指令来驱动游戏帧前进) - 每个客户端各自计算操作指令 - 客户端上传指令...
  • 帧同步和状态同步(二)案例分析

    千次阅读 2017-11-01 09:29:52
    转自:http://www.gameres.com/489361.html腾讯一下出了两款MOBA游戏,全民超神,王者荣耀,玩了一下,效果不错,就分析了一下它底层的一些技术,发现一个是采用的状态同步,TCP协议,另一个是采用的帧同步,UDP协议...
  • 腾讯一下出了两款MOBA游戏,全民超神,王者荣耀,玩了一下,效果不错,就分析了一下它底层的一些技术,发现一个是采用的状态同步,TCP协议,另一个是采用的帧同步,UDP协议。自从去年了解到即时游戏帧同步这门技术,...
  • 在做网络游戏的时候首先要做的是选择一种同步方式来使用,网上的文章都是说帧同步状态同步的选择,但是又经常讲的模糊不清,我大概整理了一下,并且有一种我们现在项目用的网络同步方式 状态同步 状态同步就有好...
  • https://blog.csdn.net/chrisfxs/article/details/73655934 ———————————————— 版权声明:本文为CSDN博主「chrisfxs」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 396
精华内容 158
关键字:

帧同步和状态同步