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

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

    一、同步

    所谓同步,就是要多个客户端表现效果是一致的,例如我们玩王者荣耀的时候,需要十个玩家的屏幕显示的英雄位置完全相同、技能释放角度、释放时间完全相同,这个就是同步。就好像很多个人一起跳街舞齐舞,每个人的动作都要保持一致。而对于大多数游戏,不仅客户端的表现要一致,而且需要客户端和服务端的数据是一致的。所以,同步是一个网络游戏概念,只有网络游戏才需要同步,而单机游戏是不需要同步的。

    二、状态同步和帧同步的区别

    最大的区别就是战斗核心逻辑写在哪,状态同步的战斗逻辑在服务端,帧同步的战斗逻辑在客户端。战斗逻辑是包括技能逻辑、普攻、属性、伤害、移动、AI、检测、碰撞等等的一系列内容,这常常也被视为游戏开发过程中最难的部分。由于核心逻辑必须知道一个场景中的所有实体情况,所以MMO游戏(例如魔兽世界)就必须把战斗逻辑写在服务端,所以MMO游戏必须是状态同步的,因为MMO游戏的客户端承载有限,并不能把整张地图的实体全部展现出来(例如100米以外的NPC和玩家就不显示了),所以客户端没有足够的信息计算全图的人的所有行为。
    具体到客户端和服务端通信上,在状态同步下,客户端更像是一个服务端数据的表现层,举个例子,一个英雄的几乎所有属性(例如血量、攻击、防御、攻速、魔法值等等)都是服务端传给客户端的,而且在属性发生改变的时候,服务端需要实时告诉客户端哪些属性改变了,客户端并不能改变这些属性,而是服务端传来多少属性就显示多少属性(虽然可以改变客户端数值达到表现上的效果,例如无限血量,但是服务端那边的血量属性为0时,一样要死)。再举个例子,一个英雄要释放一个非指向性技能(例如伊泽瑞尔的Q),具体的过程就是,客户端通知服务端“我要释放一个技能”-》服务端通知客户端“在某地以什么方向释放某技能”-》客户端根据这些信息创建一个特效放在某地,然后以某个方向飞行-》服务端根据碰撞检测逻辑判断到某个时刻,这个技能碰到了敌方英雄,通知客户端-》客户端根据服务端信息,删除特效,被打的英雄减血同时播放受击特效。
    而在帧同步下,通信就比较简单了,服务端只转发操作,不做任何逻辑处理。以下图为例:

    现在同一局里有4个玩家,也就是4个客户端,这时客户端A释放了一个技能x,此时将操作传递给服务端,服务端不做任何判断,直接把A的操作全部分发给ABCD,则ABCD同时让客户端A控制的英雄释放技能x。

    三、流量

    状态同步比帧同步流量消耗大,例如一个复杂游戏的英雄属性可能有100多条,每次改变都要同步一次属性,这个消耗是巨大的,而帧同步不需要同步属性;例如释放一个技能,服务端需要通知客户端很多条消息(必须是分步的,不然功能做不了),而帧同步就只需要转发一次操作就行了。

    四、回放&观战

    帧同步的回放&观战比状态同步好做得多,因为只需要保存每局所有人的操作就好了,而状态同步的回放&观战,需要有一个回放&观战服务器,当一局战斗打响,战斗服务器在给客户端发送消息的同时,还需要把这些消息发给放&观战服务器,回放&观战服务器做储存,如果有其他客户端请求回放或者观战,则回放&观战服务器把储存起来的消息按时间发给客户端。

    五、安全性

    状态同步的安全性比帧同步高很多,因为状态同步的所有逻辑和数值都是在服务端的,如果想作弊,就必须攻击服务器,而攻击服务器的难度比更改自己客户端数据的难度高得多,而且更容易被追踪,被追踪到了还会有极高的法律风险。而帧同步因为所有数据全部在客户端,所以解析客户端的数据之后,就可以轻松达到自己想要的效果,例如moba类游戏的全图挂,吃鸡游戏的透视挂,都是没办法防止的,而更改数据达到胜利的作弊方式(例如更改自己的英雄攻击力)可以通过服务器比对同局其他人的战斗结果来预防。

    六、服务器压力

    状态同步服务器压力比较大,因为要做更多运算。

    七、开发效率

    首先要说,状态同步的游戏占主流,其次就是状态同步开发起来比较难。而帧同步服务器开发难度低,同一套方案可以给很多不同类型的游戏使用,反正都是转发操作;减少了服务端客户端沟通,老实说,没有扯皮的时间,开发效率最起码提高20%,状态同步的方案下,同一个功能至少需要一个客户端和服务端共同完成;PVP和PVE基本用的是同一套代码,做完PVP很容易就可以做单机的PVE。

    八、知名游戏

    王者荣耀、魔兽争霸3、所有格斗类游戏

    九、断线重连

    状态同步的断线重连很好做,无非就是把整个场景和人物全部重新生成一遍,各种数值根据服务端提供加到人物身上而已。帧同步的断线重连就比较麻烦了,例如客户端在战场开始的第10秒短线了,第15秒连回来了,就需要服务端把第10秒到第15秒之间5秒内的所有消息一次性发给客户端,然后客户端加速整个游戏的核心逻辑运行速度(例如加速成10倍),直到追上现有进度。

    十、注意点

    需要保证每次随机的数字都相同,所以需要自己实现一套随机数,不能用unity自带的那个随机数接口,而且需要服务端发送相同的随机种子;因为非常微小的误差就有可能产生蝴蝶效应,所以所有float型的参数必须变成int型,保证计算结果一致。

    如有侵权,请及时联系我删除,谢谢!

    展开全文
  • 摘要:本文针对该问题给出了逐次比较、基于FIFO队列基于状态机的3种帧同步方法。通过测试、分析比较得出,基于有限状态机的方法是嵌入式系统串口通信中很有效的帧同步方法,同时也是一种很不错的串口通信程序...
  • 帧同步和状态同步资料

    千次阅读 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

    展开全文
  • 帧同步 状态同步

    千次阅读 2019-01-12 22:28:10
    游戏中常见的同步方案,有状态同步和帧同步,一般大型的MMOARPG都是采用的是状态同步,比如魔兽世界,状态同步采用C/S架构,所有的状态由服务器来控制,安全性比较高,但是流量比较大。帧同步采用的是囚徒模式,所有...

    转载:https://my.oschina.net/u/1859679/blog/1137723

    农药自从上线以来,依靠着强大的产品力以及腾讯的运营能力,在游戏市场上表现可谓是风生水起,根据第三方的调研数据显示,《王者荣耀》渗透率达到22.3%,用户规模达到2.01亿人,每日的日活跃用户(DAU)均值为5412.8万人。 如此可观的数据,令人十分钦佩。

    当然了,作为技术人,更愿意从技术上了解去一些王者荣耀的实现原理和架构方式,从中找到新的知识领域,扩展自己的知识边界,丰富自己的专业技能。借助这个游戏,这一篇我们来聊一聊王者荣耀的技术实现以及同步方式,更多的从MOBA(多人在线战术竞争游戏)方向来解析推理王者的实现方案,如若有分析的不尽的方向,欢迎一起探讨改进。以下是主要讲解的几个重点:

    1. 服务器架构
    2. 通信方式
    3. 同步方案
    4. 技能同步
    5. 断线重连

     

    一、服务器架构

    不难发现,王者荣耀的服务器采用房间模式,每个玩家登陆以后,然后进入大厅,进行匹配游戏。匹配完成之后,把一起对战的玩家放到一个房间内进行对战。

    房间类玩法和MMORPG有很大的不同,在于其在线广播单元的不确定性和广播数量很小,而且需要匹配一台房间服务器让少数人进入一个服务器。

    这一类游戏最重要的是其“游戏大厅”的承载量,每个“游戏房间”受逻辑所限,需要维持和广播的玩家数据是有限的,但是“游戏大厅”需要维持相当高的在线用户数,所以一般来说,这种游戏还是需要做“分服”的。而“游戏大厅”里面最有挑战性的任务,就是“自动匹配”玩家进入一个“游戏房间”,这需要对所有在线玩家做搜索和过滤,以及为了更好的体验,会对玩家进行分地区进行匹配,以方便获得更快速的同步。

    一般的方式是玩家先登录“大厅服务器”,然后选择组队游戏的功能,服务器会通知参与的所有游戏客户端,新开一条连接到房间服务器上,这样所有参与的用户就能在房间服务器里进行游戏交互了。

     

    二、通信方式

    说到通信方式,一般会有http和socket 两种方式,但http底层也是采用socket,只是每次通信完成以后都会断开,这种方式对于需要频繁交互的双方来说,显得效率太低了,所以一般实时要求高的游戏都是采用socket方式来通信。

    可是sokect通信,又分为两种:TCP vs UDP,具体是采用那种socket类型,需要具体来看游戏游戏类型。以下是两种类型的优劣:

    从上面的对比中,我们可以会发现,关于socket,我们想做的事情,tcp都帮我们做了,我们只需要建立链接,然后像读写文件一样读写就可以了。而udp需要我们自己设计一切。看到这一切,你可能第一感觉就是采用tcp而非udp,那么真实情况是如此么?基于游戏的业务以及场景不同,我可以明确的告诉你,王者荣耀是采用udp的,包括腾讯多数长链接手游都是采用udp,这是为何?

    1、tcp保证数据可靠性是有代价的

    tcp能够保证数据包的可靠性和有序,这一切都帮你封装好了。TCP发送一个数据包,等待一段时间,直到检测到数据包丢失了,如果没有接收到它的ACK,接下来就重新发送丢失的数据包到目标计算机。重复的数据包将被丢弃在接收端,乱序的数据包将被重新排序。以此来保证数据包的可靠性和有序性。

    但为了保证可靠和有序,就要保证TCP无论什么情况,只要数据包出错,就必须等待数据包的重发。这是什么意思呐,就是说,即使最新的数据已经到达,但还是不能访问这些数据包,新到的数据会被放在一个队列中,需要等待丢失的包重新发过来之后,所有数据没有丢失才可以访问。

    如此,如果遇到网络环境太差或者不稳定,比如说国内的移动网络,或者是遭遇到了网络阻塞,出现一个数据包丢失,所有事情都需要停下来等待这个数据包重发。客户端会出现等待接收数据,玩家操作会出现卡顿以及响应不及时的现象。

    2、udp的可靠性—DIY手动组装

    从上面我们可以知道udp主要在可靠性上主要是不能保证数据包的顺序,比如第100个收到的数据包并不一定是第100个发出的数据包,同时也无法保证不丢包,期间有一个包丢失,udp本是也不会去校检。如果这两个问题解决了,udp的大部分可靠性问题也就解决了。

    具体的方案我们这一篇就不在细说,大体上是如此来解决:

    1、为每个数据包增加序列号,每发一次包,增加本地序号。

    2、每个数据包增加一段位域,用来容纳多个确认符。确认字符多少个,跟进应用的发包速率来觉得,速率越高,确认字符的数量也相应越多。

    3、每次收到包,把收到的包上序列号变为确认字符,发送包的时候带上这些确认字符。

    4、如果从确认字符里面发现某个数据包有丢失,把它留给应用程序来编写一个包含丢失数据的新的数据包,必要的话,这个包还会用一个新的序列号发送。

    5、针对多次收到同一包的时候可以放弃它

    三、同步方案

    游戏中常见的同步方案,有状态同步和帧同步,一般大型的MMOARPG都是采用的是状态同步,比如魔兽世界,状态同步采用C/S架构,所有的状态由服务器来控制,安全性比较高,但是流量比较大。帧同步采用的是囚徒模式,所有c端强制采用一个逻辑帧率,从而保证输出一致,其特点是流量小,安全性比较差。

    王者荣耀采用的就是帧同步,那么具体帧同步是什么,如何实现的,我们从两个地方来分解:

    1、帧率

    什么是帧率,可能没有做过client同学并不是很清楚这个术语,我们从一个小李子来讲解一下。我记得小时候有一种小人书,快速翻看就可以看到漫画上的人物会动起来。如下面这种:

    超过1M上传不删了,我也无奈

     

    由于人类眼睛的特殊生理结构,如果所看画面之帧率高于每秒约10-12帧的时候,就会认为是连贯的, 此现象称之为视觉暂留。这也就是为什么电影胶片是一格一格拍摄出来,然后快速播放的,就像上图快速翻小人书一样。

    游戏中的所有动画也是采用这种方式来渲染,只不过帧率是有GPU来控制,你所看到的画面都是有都是有GPU一帧帧渲染的,比如30帧/s,你所看到的画面就比较流畅了。而帧率越高你所看到的越流畅。

    2、Lockstep—帧同步

    帧同步可以说是通过帧率延伸过来的,你可以把一个游戏看成一个巨大的状态机,所有的参与者都采用同一个逻辑帧率来不断的向前推进。

     

    我们看如下2个图:

     

    图中是A、B、C三个玩家的时间轴,这个时间轴不是电脑上的本地时间,而是A、B、C联机时定义的一个时间轴。虚线分隔出来时间片称为turn,可以理解成一帧。箭头表示该玩家将自己的操作指令广播给其他玩家。

    我们把一盘游戏看成一个大型的状态机,因为大家玩的是同一款的游戏,因此F是相同的,初始状态S0也是相同的。在第一个turn结束时,所有玩家都接收到了完全一样的输入I,注意这里的I不是一个值,而是包含了当前游戏中所有玩家的操作指令集合。t1时刻所有玩家的电脑自行计算结果。由于F、S0和I是固定的,所以每个玩家电脑上计算出的下一个状态S1一定是相同的。

    所以通过上面我们可以知道:

     

    1、我们把游戏的前进分为一帧帧,这里的帧和游戏的渲染帧率并不是一个,只是借鉴了帧的概念,自定义的帧,我们称为turn。游戏的过程就是每一个turn不断向前推进,每一个玩家的turn推进速度一致。

     

    2、每一帧只有当服务器集齐了所有玩家的操作指令,也就是输入确定了之后,才可以进行计算,进入下一个turn,否则就要等待最慢的玩家。之后再广播给所有的玩家。如此才能保证帧一致。

     

    3、Lockstep的游戏是严格按照turn向前推进的,如果有人延迟比较高,其他玩家必须等待该玩家跟上之后再继续计算,不存在某个玩家领先或落后其他玩家若干个turn的情况。使用Lockstep同步机制的游戏中,每个玩家的延迟都等于延迟最高的那个人。

     

    4、由于大家的turn一致,以及输入固定,所以每一步所有客户端的计算结果都一致的。

    我们来看看具体的执行流程:

     

    上图中我们可以明显看到,这种囚徒模式的帧同步,在第二帧的时候,因为玩家1有延迟,而导致第二帧的同步时间发生延迟,从而导致所有玩家都在等待,出现卡顿现象。

    四、乐观锁&断线重连

    囚徒模式的帧同步,有一个致命的缺陷就是,若联网的玩家有一个网速慢了,势必会影响其他玩家的体验,因为服务器要等待所有输入达到之后再同步到所有的c端。另外如果中途有人掉线了,游戏就会无法继续或者掉线玩家无法重连,因为在严格的帧同步的情况下,中途加入游戏是从技术上来讲是非常困难的。因为你重新进来之后,你的初始状态和大家不一致,而且你的状态信息都是丢失状态的,比如,你的等级,随机种子,角色的属性信息等。 比如玩过早期的冰封王座都知道,一旦掉线基本这局就废了,需要重开,至于为何没有卡顿的现象,因为那时都是解决方案都是采用局域网的方式,所以基本是没有延迟问题的。

    后期为了解决这个问题,如今包括王者荣耀,服务器会保存玩家当场游戏的游戏指令以及状态信息,在玩家断线重连的时候,能够恢复到断线前的状态。不过这个还是无法解决帧同步的问题,因为严格的帧同步,是要等到所有玩家都输入之后,再去通知广播client更新,如果A服务器一直没有输入同步过来,大家是要等着的,那么如何解决这个问题?

    采用“定时不等待”的乐观方式在每次Interval时钟发生时固定将操作广播给所有用户,不依赖具体每个玩家是否有操作更新。如此帧率的时钟在由服务器控制,当客户端有操作的时候及时的发送服务器,然后服务端每秒钟20-50次向所有客户端发送更新消息。如下图:

    上图中,我们看到服务器不会再等到搜集完所有用户输入再进行下一帧,而是按照固定频率来同步玩家的输入信息到每一个c端,如果有玩家网络延迟,服务器的帧步进是不会等待的,比如上图中,在第二帧的时候,玩家A的网速慢,那么他这个时候,会被网速快的玩家给秒了(其他游戏也差不多)。但是网速慢的玩家不会卡到快的玩家,只会感觉自己操作延迟而已。

    五、技能同步

    游戏中有很多是和概率相关的,比如说技能的伤害有一定概率的暴击伤害或者折光被击等。按照帧同步的话,基于相同的输入,每个玩家的client都是独立计算伤害的,那么如何保证所有电脑的暴击伤害一致那。这个时候就需要用到伪随机了。

    大部分编程语言内置库里的随机数都是利用线性同余发生器产生的,如果不指定随机种子(Random Seed),默认以当前系统时间戳作为随机种子。一旦指定了随机种子,那么产生的随机数序列就是确定的。就是说两台电脑采用相同的随机种子,第N次随机的结果是一致的。

    所以在游戏开始前,服务器为每个玩家分配一个随机种子,然后同步给client,如此每个client在计算每个角色的技能时候,就能保证伤害是一致的。这也是多数帧同步游戏采用的方案,包括王者荣耀。

    展开全文
  • 帧同步和状态同步

    2017-11-07 12:05:04
    同步和状态同步去英雄互娱面试突然说到了对游戏中的网络实现问题,面试官告诉我两个名词:帧同步和状态同步 小白并不懂所以开贴记录下来 帧同步帧同步,根据wiki百科的定义是,一种对同步源进行像素级同步...

    帧同步和状态同步

    去英雄互娱面试突然说到了对游戏中的网络实现问题,面试官告诉我两个名词:帧同步和状态同步
    小白并不懂所以开贴记录下来


    帧同步:

    帧同步,根据wiki百科的定义是,一种对同步源进行像素级同步显示的处理技术,对于网络上的多个接入者,一个信号将会通过主机同步发送给其他人,并同步显示在各个终端上。同步信号可以是每帧的像素数据,也可以是影响数据变化的关键事件信息。

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

    状态同步

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

    状态同步其实是一种不严谨的同步。它的思想中,不同玩家屏幕上的表现的一致性并不是重要指标, 只要每次操作的结果相同即可。所以状态同步对网络延迟的要求并不高。像玩RPG游戏,200-300ms的延迟也可以接受。 但是在RTS游戏中,50ms的延迟也会很受伤。

    自我理解

    面试官问我魔兽世界和魔兽争霸的不同,通过上述的描述就可以比较清楚的知道:

    针对魔兽争霸来说用的是帧同步,首先因为魔兽来说单位特别多,全部都占用服务器资源会很伤,只是广播玩家的操作,不需要计算,对于实时性也会很好,计算需求都在客户端使用。这也体现了我在玩赤潮下的一个问题,赤潮万到后期6个人超多个单位,所有计算都在手机上,渲染什么的都非常卡,特别影响体验,技能也丢不出去,这也是我后来不玩赤潮的主要原因之一。在想后期出安卓版的赤潮,有多少手机带不动。

    针对魔兽世界来说用的是状态同步,实时性不是很好,并且占用服务器的资源,但是对于玩家来说屏幕的一致性并不是重要指标,我的每次操作都可以得到正确的结果,对游戏的体验性会好很多。但是在网络环境较差的情况下,使用状态同步,会造成我明明向前走了很多步,突然就会回退到前面的位置,服务器因为网络延迟没有收到你中间的一系列的操作指令。

    参考1 http://blog.csdn.net/david_dai_1108/article/details/73437736
    参考2 http://blog.sina.com.cn/s/blog_674f1bd20101omv7.html

    展开全文
  • 基于FPGA的帧同步实现
  • 摘要:本文针对该问题给出了逐次比较、基于FIFO队列基于状态机的3种帧同步方法。通过测试、分析比较得出,基于有限状态机的方法是嵌入式系统串口通信中很有效的帧同步方法,同时也是一种很不错的串口通信程序...
  • 状态同步和帧同步

    千次阅读 2019-06-21 10:52:39
    帧同步:客户端发送操作给服务端,服务端转发所有客户端操作数据,所有客户端都通过随机因子保证每次得出结果一样(随机因子保证一样,因为比如浮点数可能会影响到准确性,今儿导致结果不一致,或者随机因子也可以有...
  • 帧同步和状态同步概述

    千次阅读 2018-07-14 16:55:41
    帧同步同步状态,只同步玩家的操作指令,操作指令包含当前的帧索引。这里最重要的概念就是 相同的输入 + 相同的时机 = 相同的输出。 实现帧同步的一般流程是: 1. 同步随机数种子。(一般游戏中都设计随机数的...
  • 帧同步方案

    2018-04-15 14:55:43
    自研游戏帧同步方案分享-novaliu-41632755.ppt是来自大鹅厂的高级技术分享内容,揭示帧同步技术难点以及攻克方案
  • 帧同步的基础概念 ...帧同步和状态同步的对比 (状态同步的概念: 客户端发送操作信息到服务器,服务器收到后,计算游戏行为的结果,然后通过广播下发游戏中各种状态,客户端收到状态后显示内容。...
  • 帧同步:所有逻辑运算都在客户端,服务器只负责转发客户端的操作。 状态同步:客户端发送操作请求给服务器,服务器来负责所有的逻辑运算并将结果广播给客户端。 如果不考虑网络以及服务器压力,状态同步应该是最理想...
  • 在做网络游戏的时候首先要做的是选择一种同步方式来使用,网上的文章都是说帧同步状态同步选择,但是又经常讲的模糊不清,我大概整理了一下,并且有一种我们现在项目用的网络同步方式 状态同步 状态同步就有好几...
  • 同步和状态同步是游戏客户端和服务器通信的两种方式: 适合帧同步的情况: 1,网络波动较大,比如移动端网络。 2,追求即是反馈,例如FPS、MOBA,SPT(这是啥游戏?) 3,控制大量单位,RTS(星际魔兽) 简易模型 ...
  • 近年来,使用帧同步(Lockstep)的游戏越来越多,关于帧同步和状态同步的讨论争论也有不少,...每帧同步状态这里也认为是状态同步。 这两种同步机制都是为了达到即时同步不同客户端的状态的目的,帧同步需要参与..
  • 包含客户端服务器端,运行即用 ip端口全部写好了 也没多少代码, 游戏逻辑完全没有实现(只写了一个简易的测试用的第三人称控制器,完全不适合帧同步) ,还有很多逻辑需要完善,就像断线重连单位生成逻辑,...
  • https://blog.csdn.net/chrisfxs/article/details/73655934
  • 游戏中帧同步状态同步

    千次阅读 2018-05-28 18:18:28
    帧同步: 什么是帧同步帧同步常被RTS(即时战略)游戏常采用。在游戏中同步的是玩家的操作指令,操作指令包含当前的帧索引。一般的流程是客户端上传操作到服务器, 服务器收到后并不计算游戏行为, 而是转发到所有...
  • 帧同步状态同步

    2019-06-05 00:01:04
    最近在做的游戏中要用到网络同步的相关知识,因此针对帧同步状态同步中查询了一些资料,并且涉及了TCPUDP在游戏网络同步中的一些优缺点的整理,在这里记录一下 帧同步状态同步 帧同步:服务器负责转化客户端...
  • 帧同步和状态同步(二)案例分析

    千次阅读 2017-11-01 09:29:52
    转自:http://www.gameres.com/489361.html腾讯一下出了两款MOBA游戏,全民超神,王者荣耀,玩了一下,效果不错,就分析了一下它底层的一些技术,发现一个是采用的状态同步,TCP协议,另一个是采用的帧同步,UDP协议...
  • 一般游戏网络同步分为帧同步和状态同步。对于这两种同步我看到网上很多人有不同的理解。       1、如果按字面意思理解,帧同步设置了一个同步帧,把逻辑层和表现层完全分离。可是状态...
  • 状态同步帧同步

    千次阅读 2019-04-30 01:37:09
    腾讯一下出了两款MOBA游戏,全民超神,王者荣耀,玩了一下,效果不错,就分析了一下它底层的一些技术,发现一个是采用的状态同步,TCP协议,另一个是采用的帧同步,UDP协议。自从去年了解到即时游戏帧同步这门技术,...
  • 帧同步是什么 所谓帧同步(lockstep),其实是同步操作,确保两个客户端逻辑一致,然后服务器接收每个客户端操作(cmd), 然后再下发下去,相同的逻辑,相同的操作,便会播放(DoAction)相同的结果。 如何...
  • 因此,在接收这些数字流时,同样也必须知道这些“字”、“句”的起止时刻,在接收端产生与“字”、“句”起止时刻相一致的定时脉冲序列,统称为群同步或帧同步帧同步的检出一般可用相关检测技术完成。以往数据通信...
  • unity帧同步极简框架,包含多客户端同步,战斗回放,防作弊检测
  • 状态同步对于网络的带宽抖动包有更强的适应能力。 3.在开发游戏过程中,它的断线重连比较快,如果我的游戏崩溃了,客户端重启之后只需要服务器把所有重要对象的状态再同步一次过来,重新再创建出来就可以了。 4.它...
  • 一、同步 所谓同步,就是要多个客户端表现效果是一致的,例如我们玩王者荣耀的时候,需要...二、状态同步和帧同步的区别 最大的区别就是战斗核心逻辑写在哪,状态同步的战斗逻辑在服务端,帧同步的战斗逻辑在客户端.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 65,728
精华内容 26,291
关键字:

帧同步和状态同步选择