-
网络游戏同步方式(帧同步和状态同步)
2020-12-20 00:40:27在做网络游戏的时候首先要做的是选择一种同步方式来使用,网上的文章都是说帧同步与状态同步的选择,但是又经常讲的模糊不清,我大概整理了一下,并且有一种我们现在项目用的网络同步方式 状态同步 状态同步就有好几...在做网络游戏的时候首先要做的是选择一种同步方式来使用,网上的文章都是说帧同步与状态同步的选择,但是又经常讲的模糊不清,我大概整理了一下,并且有一种我们现在项目用的网络同步方式
状态同步
状态同步就有好几个说法,说是同步状态,同步操作等,又找不到一遍文章能清楚的讲一遍什么是状态同步。
所以大概总结一下就是,状态同步是通过每个客户端发送自己的操作给服务器,这时客户端不进行任何动作,服务器统一计算后并把结果同步个每一个客户端。
这里要点就是,同步操作,服务器结算结果。
这里推荐两篇文章
http://www.cnblogs.com/sevenyuan/p/5283265.html
https://www.zhihu.com/question/36258781
这里讲了这两种同步方式的区别,但是依然没有很清楚。状态同步也找不到更好的文章,如果你有的话也请在评论区分享一下一起学习。帧同步
帧同步是在关键帧的时候同步操作给服务器,服务器转发操作给每个客户端。客户端之间要接受到关键帧才可以进行操作。
帧同步里面有一个关键技术就锁帧,也就是如果没有收到广播的关键帧不能进行下一步操作。大家静止不动。
而现在的游戏会有一个聪明一点的方法叫做乐观帧锁定
乐观帧锁定通过定时发送关键帧的方法,不锁定任何客户端,服务器一定时间间隔就发包给每个客户端,包里可能是空包也有可能是你自己活着别人的操作。而客户端就通过定时或者每当操作就发包的形式告诉服务器自己的操作。
但不论是什么形式的帧同步都是客户端收到其他玩家的操作后自己模拟行为。所以这个就需要大家如果是随机的时候要保证一致,也就是有一样的随机种子,而且在每个客户端中无法保证一定一致,也就是这个原因帧同步一般会用着竞技类游戏,游戏都是一盘一盘的来,每盘开始就给大家统一的第一帧和随机种子,保证这个游戏在每个客户端中基本一致
其实在网速好的时候这些都不是问题,基本上不同客户端上的表现基本一致。
而当网速不一致时,当你选用乐观帧同步的话就可以保障网速好的不会被网速差的玩家卡住
帧同步有好多好文章,这里也推荐两篇
http://mp.weixin.qq.com/s?__biz=MzA5ODExMTkwMA==&mid=2650255562&idx=1&sn=a457e6dbf7bdd99d1e75dbf7e500dd44&scene=0#wechat_redirect?ref=myread
http://www.skywind.me/blog/archives/131
这两篇是已经讲的非常清楚,非常好的两篇文章所以能看到,其实在手游时代,状态同步基本是不可取的,服务器压力太大,对网络要求太高。
而帧同步的话也会选择乐观帧同步,保证在网速好坏不同的情况下还能一起玩,并且网速好的玩家不会受干扰。
自己游戏的同步方式
我们是一个mmoarpg手游,也就是动作类网游。
由于我们的游戏类型,其实不需要真的非常同步,并且可能有很多个玩家同屏,首先抛弃状态同步
接着我们也不是竞技类游戏,所以基本上也不需要帧同步。
所以我们同步也就是客户端发送请求给服务器,服务器验证一下,如果出入太大强行拉回,不然也不返回给自己客户端,只同步位置给其他客户端。
技能上就是客户端请求使用技能,在技能中的打击帧告诉服务器这个人我能不能伤害,服务器判断并同步给大家这个伤害。
所以基本上算不上什么同步方式。
但是如果我们之后需要做更为严肃的pvp玩法,则需要帧同步来进行操作。这个可能会在后面补充
这里面还有很多可以一起讨论的地方,也希望大家评论一下一起讨论
还有一篇王者荣耀的同步技术文章
http://mp.weixin.qq.com/s/agXeHpN2vkgl5jKsLvi2Ug
转自:https://blog.csdn.net/chrisfxs/article/details/73655934
-
【面试必读(编程基础)】网络游戏同步方式(帧同步和状态同步)
2017-06-23 21:10:23在做网络游戏的时候首先要做的是选择一种同步方式来使用,网上的文章都是说帧同步与状态同步的选择,但是又经常讲的模糊不清,我大概整理了一下,并且有一种我们现在项目用的网络同步方式 状态同步 状态同步就有好...在做网络游戏的时候首先要做的是选择一种同步方式来使用,网上的文章都是说帧同步与状态同步的选择,但是又经常讲的模糊不清,我大概整理了一下,并且有一种我们现在项目用的网络同步方式
状态同步
状态同步就有好几个说法,说是同步状态,同步操作等,又找不到一遍文章能清楚的讲一遍什么是状态同步。
所以大概总结一下就是,状态同步是通过每个客户端发送自己的操作给服务器,这时客户端不进行任何动作,服务器统一计算后并把结果同步个每一个客户端。
这里要点就是,同步操作,服务器结算结果。
这里推荐两篇文章
http://www.cnblogs.com/sevenyuan/p/5283265.html
https://www.zhihu.com/question/36258781
这里讲了这两种同步方式的区别,但是依然没有很清楚。状态同步也找不到更好的文章,如果你有的话也请在评论区分享一下一起学习。
帧同步
帧同步是在关键帧的时候同步操作给服务器,服务器转发操作给每个客户端。客户端之间要接受到关键帧才可以进行操作。
帧同步里面有一个关键技术就锁帧,也就是如果没有收到广播的关键帧不能进行下一步操作。大家静止不动。
而现在的游戏会有一个聪明一点的方法叫做乐观帧锁定
乐观帧锁定通过定时发送关键帧的方法,不锁定任何客户端,服务器一定时间间隔就发包给每个客户端,包里可能是空包也有可能是你自己活着别人的操作。而客户端就通过定时或者每当操作就发包的形式告诉服务器自己的操作。
但不论是什么形式的帧同步都是客户端收到其他玩家的操作后自己模拟行为。所以这个就需要大家如果是随机的时候要保证一致,也就是有一样的随机种子,而且在每个客户端中无法保证一定一致,也就是这个原因帧同步一般会用着竞技类游戏,游戏都是一盘一盘的来,每盘开始就给大家统一的第一帧和随机种子,保证这个游戏在每个客户端中基本一致
其实在网速好的时候这些都不是问题,基本上不同客户端上的表现基本一致。
而当网速不一致时,当你选用乐观帧同步的话就可以保障网速好的不会被网速差的玩家卡住
帧同步有好多好文章,这里也推荐两篇
http://mp.weixin.qq.com/s?__biz=MzA5ODExMTkwMA==&mid=2650255562&idx=1&sn=a457e6dbf7bdd99d1e75dbf7e500dd44&scene=0#wechat_redirect?ref=myread
http://www.skywind.me/blog/archives/131
这两篇是已经讲的非常清楚,非常好的两篇文章
所以能看到,其实在手游时代,状态同步基本是不可取的,服务器压力太大,对网络要求太高。
而帧同步的话也会选择乐观帧同步,保证在网速好坏不同的情况下还能一起玩,并且网速好的玩家不会受干扰。
自己游戏的同步方式
我们是一个mmoarpg手游,也就是动作类网游。
由于我们的游戏类型,其实不需要真的非常同步,并且可能有很多个玩家同屏,首先抛弃状态同步
接着我们也不是竞技类游戏,所以基本上也不需要帧同步。
所以我们同步也就是客户端发送请求给服务器,服务器验证一下,如果出入太大强行拉回,不然也不返回给自己客户端,只同步位置给其他客户端。
技能上就是客户端请求使用技能,在技能中的打击帧告诉服务器这个人我能不能伤害,服务器判断并同步给大家这个伤害。
所以基本上算不上什么同步方式。
但是如果我们之后需要做更为严肃的pvp玩法,则需要帧同步来进行操作。这个可能会在后面补充
这里面还有很多可以一起讨论的地方,也希望大家评论一下一起讨论
还有一篇王者荣耀的同步技术文章
http://mp.weixin.qq.com/s/agXeHpN2vkgl5jKsLvi2Ug
-
mtk 帧同步_【小松教你手游开发】【面试必读(编程基础)】网络游戏同步方式(帧同步和状态同步)...
2021-01-17 14:52:27在做网络游戏的时候首先要做的是选择一种同步方式来使用,网上的文章都是说帧同步与状态同步的选择,但是又经常讲的模糊不清,我大概整理了一下,并且有一种我们现在项目用的网络同步方式状态同步状态同步就有好几个...在做网络游戏的时候首先要做的是选择一种同步方式来使用,网上的文章都是说帧同步与状态同步的选择,但是又经常讲的模糊不清,我大概整理了一下,并且有一种我们现在项目用的网络同步方式
状态同步
状态同步就有好几个说法,说是同步状态,同步操作等,又找不到一遍文章能清楚的讲一遍什么是状态同步。
所以大概总结一下就是,状态同步是通过每个客户端发送自己的操作给服务器,这时客户端不进行任何动作,服务器统一计算后并把结果同步个每一个客户端。
这里要点就是,同步操作,服务器结算结果。
这里推荐两篇文章
这里讲了这两种同步方式的区别,但是依然没有很清楚。状态同步也找不到更好的文章,如果你有的话也请在评论区分享一下一起学习。
帧同步
帧同步是在关键帧的时候同步操作给服务器,服务器转发操作给每个客户端。客户端之间要接受到关键帧才可以进行操作。
帧同步里面有一个关键技术就锁帧,也就是如果没有收到广播的关键帧不能进行下一步操作。大家静止不动。
而现在的游戏会有一个聪明一点的方法叫做乐观帧锁定
乐观帧锁定通过定时发送关键帧的方法,不锁定任何客户端,服务器一定时间间隔就发包给每个客户端,包里可能是空包也有可能是你自己活着别人的操作。而客户端就通过定时或者每当操作就发包的形式告诉服务器自己的操作。
但不论是什么形式的帧同步都是客户端收到其他玩家的操作后自己模拟行为。所以这个就需要大家如果是随机的时候要保证一致,也就是有一样的随机种子,而且在每个客户端中无法保证一定一致,也就是这个原因帧同步一般会用着竞技类游戏,游戏都是一盘一盘的来,每盘开始就给大家统一的第一帧和随机种子,保证这个游戏在每个客户端中基本一致
其实在网速好的时候这些都不是问题,基本上不同客户端上的表现基本一致。
而当网速不一致时,当你选用乐观帧同步的话就可以保障网速好的不会被网速差的玩家卡住
帧同步有好多好文章,这里也推荐两篇
这两篇是已经讲的非常清楚,非常好的两篇文章
所以能看到,其实在手游时代,状态同步基本是不可取的,服务器压力太大,对网络要求太高。
而帧同步的话也会选择乐观帧同步,保证在网速好坏不同的情况下还能一起玩,并且网速好的玩家不会受干扰。
自己游戏的同步方式
我们是一个mmoarpg手游,也就是动作类网游。
由于我们的游戏类型,其实不需要真的非常同步,并且可能有很多个玩家同屏,首先抛弃状态同步
接着我们也不是竞技类游戏,所以基本上也不需要帧同步。
所以我们同步也就是客户端发送请求给服务器,服务器验证一下,如果出入太大强行拉回,不然也不返回给自己客户端,只同步位置给其他客户端。
技能上就是客户端请求使用技能,在技能中的打击帧告诉服务器这个人我能不能伤害,服务器判断并同步给大家这个伤害。
所以基本上算不上什么同步方式。
但是如果我们之后需要做更为严肃的pvp玩法,则需要帧同步来进行操作。这个可能会在后面补充
这里面还有很多可以一起讨论的地方,也希望大家评论一下一起讨论
还有一篇王者荣耀的同步技术文章
-
【小松教你手游开发】【面试必读(编程基础)】网络游戏同步方式(帧同步和状态同步)...
2018-03-10 20:09:50在做网络游戏的时候首先要做的是选择一种同步方式来使用,网上的文章都是说帧同步与状态同步的选择,但是又经常讲的模糊不清,我大概整理了一下,并且有一种我们现在项目用的网络同步方式 状态同步 状态同步就有好几...在做网络游戏的时候首先要做的是选择一种同步方式来使用,网上的文章都是说帧同步与状态同步的选择,但是又经常讲的模糊不清,我大概整理了一下,并且有一种我们现在项目用的网络同步方式
状态同步
状态同步就有好几个说法,说是同步状态,同步操作等,又找不到一遍文章能清楚的讲一遍什么是状态同步。
所以大概总结一下就是,状态同步是通过每个客户端发送自己的操作给服务器,这时客户端不进行任何动作,服务器统一计算后并把结果同步个每一个客户端。
这里要点就是,同步操作,服务器结算结果。
这里推荐两篇文章
http://www.cnblogs.com/sevenyuan/p/5283265.html
https://www.zhihu.com/question/36258781
这里讲了这两种同步方式的区别,但是依然没有很清楚。状态同步也找不到更好的文章,如果你有的话也请在评论区分享一下一起学习。
帧同步
帧同步是在关键帧的时候同步操作给服务器,服务器转发操作给每个客户端。客户端之间要接受到关键帧才可以进行操作。
帧同步里面有一个关键技术就锁帧,也就是如果没有收到广播的关键帧不能进行下一步操作。大家静止不动。
而现在的游戏会有一个聪明一点的方法叫做乐观帧锁定
乐观帧锁定通过定时发送关键帧的方法,不锁定任何客户端,服务器一定时间间隔就发包给每个客户端,包里可能是空包也有可能是你自己活着别人的操作。而客户端就通过定时或者每当操作就发包的形式告诉服务器自己的操作。
但不论是什么形式的帧同步都是客户端收到其他玩家的操作后自己模拟行为。所以这个就需要大家如果是随机的时候要保证一致,也就是有一样的随机种子,而且在每个客户端中无法保证一定一致,也就是这个原因帧同步一般会用着竞技类游戏,游戏都是一盘一盘的来,每盘开始就给大家统一的第一帧和随机种子,保证这个游戏在每个客户端中基本一致
其实在网速好的时候这些都不是问题,基本上不同客户端上的表现基本一致。
而当网速不一致时,当你选用乐观帧同步的话就可以保障网速好的不会被网速差的玩家卡住
帧同步有好多好文章,这里也推荐两篇
http://www.skywind.me/blog/archives/131
这两篇是已经讲的非常清楚,非常好的两篇文章
所以能看到,其实在手游时代,状态同步基本是不可取的,服务器压力太大,对网络要求太高。
而帧同步的话也会选择乐观帧同步,保证在网速好坏不同的情况下还能一起玩,并且网速好的玩家不会受干扰。
自己游戏的同步方式
我们是一个mmoarpg手游,也就是动作类网游。
由于我们的游戏类型,其实不需要真的非常同步,并且可能有很多个玩家同屏,首先抛弃状态同步
接着我们也不是竞技类游戏,所以基本上也不需要帧同步。
所以我们同步也就是客户端发送请求给服务器,服务器验证一下,如果出入太大强行拉回,不然也不返回给自己客户端,只同步位置给其他客户端。
技能上就是客户端请求使用技能,在技能中的打击帧告诉服务器这个人我能不能伤害,服务器判断并同步给大家这个伤害。
所以基本上算不上什么同步方式。
但是如果我们之后需要做更为严肃的pvp玩法,则需要帧同步来进行操作。这个可能会在后面补充
这里面还有很多可以一起讨论的地方,也希望大家评论一下一起讨论
还有一篇王者荣耀的同步技术文章
转载于:https://blog.51cto.com/13638120/2084939
-
PCB技术中的帧同步电路的设计
2020-12-10 15:19:531 引言 数字通信网中,常常把若干路低速数字信号合并成一个高速数字信号,...2 同步方案的选择 帧同步通常采用的方法有逐位调整法和置位调整法[3,4]。2.1 逐位调整法 逐位调整法的基本原理[3]是调整收端 -
帧同步(LockStep)该如何反外挂
2018-03-29 14:41:38原文地址:帧同步(LockStep)该如何反外挂在中国的游戏环境下,反挂已经成为...那么就有很多人担心起来,客户端会跑全部逻辑帧同步该如何反外挂,和状态同步有什么区别呢?首先我们来分析一下手游的风险和外挂的分... -
数字通信同步技术的MTALAB与FPGA实现》PPT版
2015-02-12 14:02:248.3.1 帧同步码组的选择 283 8.3.2 间隔式插入法的检测原理 284 8.3.3 连贯式插入法的检测原理 285 8.3.4 帧同步的几种状态 286 8.4 连贯式插入法帧同步的FPGA实现 287 8.4.1 实例要求及总体模块设计 287 ... -
两款案例讲解一周搭建联机游戏
2020-11-24 15:01:33## 联机游戏 ####1....联机游戏的通信方式主要为帧同步和状态同步。 - 帧同步过程为各客户端实时上传操作指令集;服务端保存这些操作指令集,并在下一帧将其广播给所有客户端;客户端收到指令集后分别 -
canvas+vue实现60帧每秒的抢金币动画(类天猫红包雨)
2020-12-07 02:35:18我们先不管状态保存,直接两步走: * 清空canvas * 绘制新的一帧动画 用定时器或者window.requestAnimationFrame定时重复以上两步即可 二、抢金币核心原理 想象一下整个业务场景,我们先梳理出3个... -
基于ARM和CPLD的嵌入式视觉系统设计
2020-10-21 14:14:46搭建一种低成本的嵌入式视觉系统,系统由CMOS...用Verilog语言编写Mealy状态机控制图像数据写入SRAM,多路数据选择器实现总线切换,避免了总线冲突。图像处理算法注重效率,基于ARM实现,系统最终工作速率为25帧/s。 -
浏览器和NodeJS中不同的Event Loop
2020-12-29 07:19:19不断的检查各个事件队列上面是否有需要处理的pending状态事件,如果有则按顺序去触发队列里面保存的事件,同时由于libuv的事件循环每次只会执行一个回调,从而避免了 竞争的发生 个人理解,... -
华为路由器配置手册
2011-10-29 11:38:28如果同步串口作为DTE设备,需要接受对端DCE设备提供的时钟,由于同步设备的接收和发送时钟是独立的,则DTE设备的接收时钟可以选择DCE设备的发送或接收时钟,而且DTE设备的发送时钟也可以选择DCE设备的发送或接收时钟... -
AVR串口通信初始化设置及例程
2012-03-27 19:04:24传输模式的选择:同步还是异步,默认为异步模式,可通过选择USART控制和状态寄存器UCSR0C中的UMSEL位来选择,UMSEL为0,是异步模式. 波特率的设置:通信的双方都必须有相同的波特率,波特率可以通过设置波特率发生寄存器... -
OpenGL ES 3.0
2018-11-21 09:36:02第13章概述同步对象和栅栏,它们是在OpenGL ES 3.0主机应用和GPU执行中同步的有效图元。我们讨论同步对象和栅栏的使用方法,并以一个示例作为结束。 第14章——OpenGL ES 3.0高级编程 第14章是核心章节,将... -
flash shiti
2014-03-14 10:32:41隐藏被选择对象的突出显示状态 □ B. 隐藏被选择对象的外框轮廓 □ C. 隐藏被选择对象的填充区域 □ D. 隐藏被选择对象的线条 7. 当Flash 导出较短小的事件声音(例如按钮单击的声音)时,最适合的压缩选项是: □ ... -
小波图像去噪算法的研究--北京邮电大学
2013-02-22 13:34:24本文中的帧问滤波器基于一个简单的基于像素的运动检测器和选择性帧间加权平均。当相邻帧同一位置的像素没有运动时,对相邻帧该位置的像素进行加权平均;否则,不进行相邻帧帧问滤波,以阻止边缘摸糊。本文中提出的... -
STM32F10xxx参考手册
2012-10-17 11:38:40目录 1 文中的缩写 24 1.1 寄存器描述表中使用的缩写列表 24 ...13.4.5 TIM1和TIM8状态寄存器(TIMx_SR) 238 13.4.6 TIM1和TIM8事件产生寄存器(TIMx_EGR) 239 13.4.7 TIM1和TIM8捕获/比较模式寄存器1... -
网络驱动程序设计(NDIS)
2009-11-22 21:24:003.4 同步和指示 14 3.5 包结构 16 3.6 使用共享内存 17 3.7 异步I/O和完成函数 17 第二部分 微端口NIC驱动程序 19 第一章 NDIS NIC微端口驱动程序 20 1.1 NIC微端口驱动程序类型 20 1.2 网络接口卡支持 20 1.3 微... -
清华大学的计算机网络课件
2010-03-26 11:11:56问题2-8:比特同步和帧同步的区别是什么? 问题2-9:教材的表2-4的OC和STS有什么区别?例如OC-3和STS-3的数据率是一样的,为什么要使用两种表示方法?有的文献还使用如OC-3C的表示方法,这有区别吗? 问题2-10:ATM... -
《3GPP长期演进(LTE)技术原理与系统设计》part2
2010-05-24 11:36:221.2.2 国际宽带移动通信研究和标准化工作 3 1.2.3 我国宽带移动通信研究工作 5 1.3 3GPP简介 5 1.3.1 3GPP的组织结构 6 1.3.2 3GPP的工作方法 7 1.3.3 3GPP技术规范的版本划分 8 1.4 LTE研究和标准化工作进程 12 ... -
3GPP长期演进(LTE)技术原理与系统设计.pdf
2012-08-11 16:26:141.2.2 国际宽带移动通信研究和标准化工作 16 1.2.3 我国宽带移动通信研究工作 18 1.3 3GPP简介 18 1.3.1 3GPP的组织结构 19 1.3.2 3GPP的工作方法 20 1.3.3 3GPP技术规范的版本划分 21 1.4 LTE研究和... -
cc2530中文数据手册完全版
2020-09-30 18:36:0119.9.4同步头和帧长度域.………………187 19.9.5帧过滤 ■■■■■1DⅡ1■■,D■1■D,■ ■1■■,■■■■■■_■■1■■1■,■■■■■■■■■■■_1■■■■D■1■■ 188 19.96源地址匹配. 191 19.9.7帧校验序列 ... -
音频技术与录音艺术译丛:MIDI手册.pdf 带目录书签
2016-04-18 16:35:47同时还介绍了音色编辑器/管理器、乐谱编辑、MIDI与大众媒体和多媒体的关系、媒体之间的同步问题等。 媒体推荐 本书中包含大量的照片及屏幕截图,内容丰富、清晰易懂、深入浅出,适合各种程度的MIDI爱好者阅读,尤其... -
Android4高级编程
2014-08-03 19:41:2711.6.2 创建和使用逐帧动画 11.6.3 插值属性动画 11.7 强化View 11.7.1 高级Canvas绘图 11.7.2 硬件加速 11.7.3 Surface View简介 11.7.4 创建交互式控件 11.8 高级Drawable资源 11.9 复制、粘贴和剪贴板 ... -
计算机网络常见问题解答
2010-06-07 08:19:11问题2-8:位同步(比特同步)和帧同步的区别是什么? 第3章 数据链路层 问题3-1:旧版的《计算机网络》认为数据链路层的任务是在两个相邻结点间的线路上无差错地传送以帧(frame)为单位的数据。数据链路层可以把一条... -
TD-SCDMA第三代移动通信系统、信令及实现
2012-08-03 21:34:025.1.2 RRC子层的状态和状态转移 200 5.1.3 RRC连接管理 203 5.1.4 无线承载控制 210 5.1.5 RRC连接移动性管理 212 5.1.6 测量过程 215 5.1.7 RRC连接建立过程的消息流图 218 5.2 非接入层 224 5.2.1 移动性... -
WPF编程宝典 part1
2015-07-20 23:33:5918.4.2 选择部件和状态 475 18.4.3 默认控件模板 476 18.4.4 使用FlipPanel控件 482 18.4.5 使用不同的控件模板 483 18.5 创建自定义面板 485 18.5.1 两步布局过程 485 18.5.2 Canvas面板的副本 488 18.5.3 更好的... -
计算机网络与通信习题十套
2009-10-25 11:16:57第一题 选择题 1.局域网普遍采用的拓扑结构是( ) a.总线型 b.树型 c.星型 d.环型 2.帧结构中,帧编码用于( ) a.呼叫设置 b.呼叫终止 c.状态检测 d.同步 3.计算机网络的目的是实现( ) a.数据处理 b.资源共享 c.传递...