Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >网络同步(帧同步)

网络同步(帧同步)

作者头像
渴望飞翔的猪
发布于 2022-07-17 02:50:57
发布于 2022-07-17 02:50:57
1.8K0
举报
文章被收录于专栏:葵花宝典007葵花宝典007

帧同步小记

刚问了公司另一个写服务器的大牛,赶紧记录下。 首先我们的游戏是强联网的格斗游戏。网络同步采用是帧同步技术。

帧同步的背景介绍:就是一个对于一个f(x) 函数,对于同一输入,输出结果一定相同。

拿格斗游戏举例,a挥刀,b下蹲作为输入的参数,x1,x2 ,函数f(x1,x2) 输出固定的一个结果(相对俩个对战玩家来说,叫同一个输出结果这样才比较好理解吧)

原来经常说的30帧意思就是,一秒30帧,拿1000ms /30 = 33ms 作为区间计算。

依然接上个例子,服务器从某0时刻算起,到33ms 算第一帧 ,这个区间中间a玩家上传的挥刀 ,b玩家上传下蹲,服务器收到之后,在33ms这个点上就同步信息给玩家(这里所谓的同步具体代码层度上就是广播信息给玩家啦),若是在这个区间a没有上传值,则服务器会取默认值下发同步,即俩者都不发也会取默认值同步。

这里就有个问题,比如某个人不发了,是不是算他掉线了,所以就牵扯到一个功能区分粒度的问题了。也就是说一般合格的程序员都应该把控的问题,某个函数是做什么的,功能只是做这个。上面说的这些就是帧同步核心的思想玩法,听完也没那么神秘的。回到这里的问题,就是指这个模块(或者说是函数),只负责这个帧同步消息的操作。至于我说的比如玩家socket断线什么的,可以是另外的一个模块(函数)负责的,包括玩家实例的回收,生命周期什么的,这样分开管理好处应该很容易想到,分工明确,作为他人也比较容易看懂,有条理,好找bug(这点很重要,不然像我自己之前做的一个分的细度不明确,后面代码量多了后,出bug自己都看的蛋疼)。 而且这也是一个有经验,专业的程序员和那些在学校没有啥项目经验的学生区别吧。

另外还有延迟的考虑,就是客户端一般收到的帧会有俩帧的延迟,作为服务器是收集输入信息到点就下发同步的。但是事情情况来讲,比如你在广州,我在深圳,那网络中间路由传输就有70ms的时间,所以作为客户端来说,在当前时刻上报的输入帧,会等到俩帧之后才收到结果(这个就是所说的俩帧延迟,我一开始还理解成服务器延迟俩帧下),不过在服务器有考虑过延迟几帧再下方的操作,是因为考虑了网络波动,这样客户端就能多缓存几帧的内容,不过后来实际效果不好,被pass了,听了这么多,我才算理解了,为啥我们那游戏在国外的玩家打斗操作动作那么卡啦,这不就是下发的帧延迟太久导致的嘛。

好了,刚刚想到问的这些,也是提醒自己,遇到第一次听到的,以前没见过,听过的东西,一定要记录下来,不要相信自己当时脑子的记忆。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-02-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
格斗类帧同步游戏的优化
本文介绍了帧同步游戏中如何实现格斗类游戏的实时交互,通过预渲染技术、动画分线、渲染纠正等方法,实现游戏角色攻击、受击、碰撞等行为的实时交互。
韩伟
2017/11/13
4.1K0
格斗类帧同步游戏的优化
帧同步游戏开发基础指南
最近一个月休了个假,体验了一下类似欧洲的田园生活。所以更新几乎荒废了,但是总结和积累是一直持续着的。根据前一阶段对于实时对战游戏的开发思考,写了这一篇入门级的文章,希望能记录下自己的想法。 什么游戏适
韩伟
2018/03/05
3.2K0
帧同步游戏开发基础指南
从王者荣耀聊聊游戏的帧同步
农药自从上线以来,依靠着强大的产品力以及腾讯的运营能力,在游戏市场上表现可谓是风生水起,根据第三方的调研数据显示,《王者荣耀》渗透率达到22.3%,用户规模达到2.01亿人,每日的日活跃用户(DAU)均值为5412.8万人。 如此可观的数据,令人十分钦佩。
张哥编程
2024/12/19
5970
从王者荣耀聊聊游戏的帧同步
游戏帧同步的基础概念
两种帧同步方式 1.状态同步:客户端发送游戏到服务器,服务器计算游戏行为的结果,然后通过广播下发各种状态,客户端收到状态后进行显示。 2.帧同步:客户端发送游戏动作到服务器,服务器广播转发所有客户端的动作(或者客户端通过P2P转发),客户端根据收到的游戏动作来做游戏运算与显示。
祝你万事顺利
2019/06/15
3.2K0
UDP帧同步核心原理
本博客总结自网络公开课 开发工具:Unity/服务器 开发语言C#/(C++ Lua) ---- 目录 帧同步如何同步 帧同步使用TCP还是UDP 帧同步的流程详解 如何克服UDP的时序和丢包问题 帧同步如何同步 帧同步:服务器把玩家操作同步给所有玩家,其他玩家在本地客户端根据服务器发过来的操作来推进游戏。同样代码+同样输入->同样结果 优点:实时性很好 缺点:所有计算放在客户端,容易作弊(即逻辑和单机游戏没有区别),每次同时同步的玩家不能太多 原理: 1、服务器:每隔一段时间,采集玩家的操作并发送给所有的
[Sugar]
2022/10/28
1.9K0
Unity手游实战:从0开始SLG——ECS战斗(三)逻辑与表现分离
上一篇大概讲了ECS的设计思想,有提到优势也有提到劣势,优势是设计层面的,劣势是实现层面的。那么一套好的框架就是要保证如何保持优势的设计,而在实现时规避劣势所带来的问题
放牛的星星
2020/07/10
3.4K0
Unity手游实战:从0开始SLG——ECS战斗(三)逻辑与表现分离
王者荣耀PVP网络游戏 之【 百里守约指南】:引申话题#游戏同步机制(cs状态同步、帧同步)
本人比较擅长的英雄是https://blink.csdn.net/details/1144995
公众号iOS逆向
2021/03/08
1K0
王者荣耀PVP网络游戏 之【 百里守约指南】:引申话题#游戏同步机制(cs状态同步、帧同步)
《王者荣耀》2亿用户量的背后:产品定位、技术架构、网络方案等
1、前言 作为一个国民级手游,《王者荣耀》公测几年来的表现一直很强势。在耀眼的成绩背后,到底是什么样的技术支撑了这个用户量破2亿的游戏?王者上线前后在技术上有哪些变化、又是如何处理网络问题的? 《王者荣耀》能够成为如今国内最成功的手游,其后方成熟的技术团队可以说是功不可没。这个曾经在端游时代主导搭建RTS游戏《霸三国》框架的技术团队,在转型做MOBA手游《王者荣耀》后为游戏提供了巨大的支持。但这个过程也并非一帆风顺。 2、内容概述 今天分几部分和大家介绍王者后台开发过程中的一些内容和思考:包括王者整
用户1263954
2018/06/22
3.6K0
基于帧同步的游戏框架说明
2,游戏类型是一款在moba游戏上加入rts元素的实时对战游戏,支持1v1,2v2的模式。
用户4766018
2022/11/01
3.2K0
基于帧同步的游戏框架说明
Golang语言情怀--第108期 一句话说清帧同步(附服务器Golang关键代码,客户端JS关键代码)
任何对帧同步有疑问的人,都应该来看这篇文章,这是参考了2个帧同步模型,遇到各种问题并一一解决之后,彻底明白帧同步讲的是什么玩意的一篇文章。断断续续修改了将近2个月,说多了都是泪:(。
李海彬
2023/11/07
1.1K0
Golang语言情怀--第108期  一句话说清帧同步(附服务器Golang关键代码,客户端JS关键代码)
PUN☀️七、网络同步:Object Synchronization
-0Fixed:固定的 -0Takeover:可被接管的 -0Request:可被请求接管
星河造梦坊官方
2024/08/15
1890
PUN☀️七、网络同步:Object Synchronization
风靡全国,日活8000万,《王者荣耀》后台技术架构演进!
文章主要讲述了《王者荣耀》技术团队在英雄、皮肤、玩法、AI、网络优化等多个方面的优化工作,以及其背后的技术团队如何通过研发创新来提升游戏体验和用户满意度。同时,也分享了技术团队在解决一些技术难题时所采用的方法和策略,如英雄技能树、皮肤特效、网络优化等。通过这些优化,技术团队不仅提升了游戏的整体体验,也使得《王者荣耀》成为了一款具有竞争力的游戏产品。
51CTO技术栈
2017/10/13
5.6K0
风靡全国,日活8000万,《王者荣耀》后台技术架构演进!
腾讯云大学大咖分享 | 小游戏联机对战引擎实践
腾讯云大学本期直播课程邀请到了腾讯云Web前端工程师通过两个小游戏demo,讲解了小游戏联机对战引擎中帧同步和状态同步两种应用场景。「腾讯云大学」联合「云加社区」为大家整理了课程精彩干货!
可可爱爱没有脑袋
2019/09/11
4.6K0
腾讯云大学大咖分享 | 小游戏联机对战引擎实践
laya游戏开发之贪吃蛇大作战(二)—— 贪吃蛇客户端
下面将介绍联网版贪吃蛇大作战的客户端代码,本项目用 laya 引擎开发,typescript 作为开发语言,具体的技术选型及项目准备可参考 上一篇文章
siri
2022/11/18
1.7K1
laya游戏开发之贪吃蛇大作战(二)—— 贪吃蛇客户端
简单几步,教你搭建一款联机游戏
联机游戏的社交属性强,玩家粘性高,但是相对单机游戏,联机游戏开发周期长、成本高,因此很多开发者选择开发单机游戏,然而投入大量开发时间和资源,单机游戏活跃度不温不火,玩家数量持续流失。本文利用两款小游戏案例介绍如何快速搭建联机玩法,帮助开发者短期低成本实现一款联机游戏。
腾讯游戏云
2021/01/04
7.4K1
简单几步,教你搭建一款联机游戏
从MapleStory谈游戏状态同步
前言 单机版基本上做了很多功能了,现在开始进入了网络版,最近一直在做一个功能,玩家的状态同步,在做这个功能的时候遇到了一些坑,因此总结记录一下。 背景 在一个网络游戏当中,特别是RPG类的游戏,尤其需要同步玩家的状态(包括地图中其他怪物的状态),如果状态不相同,则会使得每个玩家所显示的东西不同,这样就失去了联网的意义,因此如何设计好一个状态同步,是一个RPG类游戏的核心技术之一。 玩家状态同步 1 基于帧的状态同步 在开始设计的时候,没有考虑很多,为了简化操作,使用了基于帧的状态同步,在这种模式下,即当地图
企鹅号小编
2018/01/25
2.2K0
别在纠结“后端”开发了,联机小游戏还可以这样做!
本篇文章要感谢「银笑的尤里」从 9月28日腾讯云深圳「游戏开发的超“音”“速”」沙龙发来了重磅消息,下面 Shawn 重点介绍对个人开发者惊喜的“MGOBE” 联机对战引擎。
张晓衡
2019/10/14
2.7K0
别在纠结“后端”开发了,联机小游戏还可以这样做!
纯前端如何利用帧同步做一款联机游戏?
·现代多人游戏中,多个客户端之间的通讯大多以同步多方状态为主要目标,为了实现这一目标,主要有两个技术方向:状态同步、帧同步。
腾讯游戏云
2020/11/13
2.8K0
如何利用状态同步开发一款联机游戏
目前市场上单机游戏占比高,因为相对联机游戏开发周期短、成本低,但联机游戏的社交属性强,玩家粘性高。总体来说,开发联机游戏有一定的技术门槛。
腾讯游戏云
2020/12/24
4.1K0
如何利用状态同步开发一款联机游戏
手游后台PVP系统网络同步方案总结
来源:游迅网 发布者:wuyu 概述   PVP系统俨然成为现在新手游的上线标配,手游Pvp系统体验是否优秀,很大程度上决定了游戏的品质。从最近半年上线的新手游来看,越来越多的游戏把核心玩法重心已经放在pvp多人游戏中,手游朝着更重度、多人实时交互的方向发展。本文主要分为两部分介绍pvp系统,前半部分主要介绍手游后台Pvp的同步方案介绍,第二部分主要介绍天天飞车和现在正在开发当中新赛车手游pvp网络同步方案。   同步机制的一致性问题   同步问题的本质是一致性的问题,在同一局多人游戏的过程中,玩家
编程范 源代码公司
2018/04/16
2.4K0
手游后台PVP系统网络同步方案总结
推荐阅读
相关推荐
格斗类帧同步游戏的优化
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档