了解游戏中的数据同步

目录

数据同步

通过比较来看状态同步和帧同步

状态同步

帧同步 

帧同步实现需要的条件

两者相比较


数据同步

在联机游戏中,我的操作和数据要同步给同一局游戏中其他所有玩家,其他玩家的操作和数据也会同步给我。这叫做数据同步,目前数据同步的方式则有帧同步状态同步

状态同步:将操作发送给服务端,服务端对操作进行运算并下发状态,客户端接收并播放状态

  • 发操作
  • 收状态

帧同步:将操作发送给服务端,服务器不进行任何运算把操作传给客户端,客户端在本地进行运算

  • 发操作
  • 收操作

适合帧同步的游戏:

  • 网络波动比较大
  • 追求即时反馈:FPS、MOBA、SPT
  • 控制大量游戏单位:RTS  

通过比较来看状态同步和帧同步

拿小编熟悉的红色警戒举例:假如我和你在联机对战,你要控制100个小兵移动到我的基地。

状态同步

  1. 客户端要将被选中的100个小兵信息和目标点发送给服务器
  2. 服务器通过计算100个小兵的移动速度和100个小兵当前位置信息定时返回给我俩的客户端
  3. 直到100个小兵到达我的基地。

由此可见(控制大量游戏单位)的这种游戏如果采用状态同步会给服务器造成多大压力

帧同步 

同样场景如果采用帧同步:

  1. 客户端将帧号(帧号表明当前游戏进行到第几副画面了)、100个小兵的信息、目标点发送给服务器。
  2. 服务器一次性返回给我俩的客户端帧号、100个小兵的信息、目标点。
  3. 我俩各自的客户端通过同步帧号进行本地运算处理小兵当前的位置信息,直到他们达到目标点。

帧同步实现需要的条件

一套完整的帧同步游戏框架要实现什么?

  1. 可靠的UDP:实现 时序性 、 重传机制 、 应答机制 、 消除最小延迟
  2. 确定性的数学和物理运算库:浮点数在电脑运算存在不精确性  ——  如何解决:取整计算、容许小概率误差、逻辑表现分离
  3. 断线重连:大家玩王者如果卡了或者断线,恢复之后大家会看到像用倍速看电影那样的画面,这是通过追帧的方式重连游戏
  4. 比赛回放:服务器记录关键帧;下发客户端进行重放
  5. 反作弊:重演、仲裁;一局游戏有五个人,那他们提交到服务器的操作记录是相同的,如果有人记录不相同说明存在作弊现象
  6. 避免等待

两者相比较

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/508867.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《TCP/IP详解 卷一》第10章 UDP 和 IP 分片

目录 10.1 引言 10.2 UDP 头部 10.3 UDP校验和 10.4 例子 10.5 UDP 和 IPv6 10.6 UDP-Lite 10.7 IP分片 10.7.1 例子:IPV4 UDP分片 10.7.2 重组超时 10.8 采用UDP的路径MTU发现 10.9 IP分片和ARP/ND之间的交互 10.10 最大UDP数据报长度 10.11 UDP服务器…

代码随想录Day66 | 图的DFS与BFS

代码随想录Day66 | 图的DFS与BFS DFS797.所有可能的路径无向图和有向图的处理 BFS200.岛屿数量 DFS 文档讲解:代码随想录 视频讲解: 状态 本质上就是回溯算法。 void dfs(参数) {if (终止条件) {存放结果;return;}for (选择:本节点所连接的…

猴子吃桃问题(python版)

文章预览: 题目python解法一:运行结果 python解法二:运行结果 python解法三:运行结果 题目 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早…

超全面!Linux学习资料大合集,21套从入门到进阶,看这篇就够了

本文将为那些渴望学习Linux,但又缺乏相应资料和方向的朋友,提供21套Linux优质资料,包含入门到进阶,希望能对大家有所帮助。 此合集内容及其丰富,涉及方面颇多,不仅适合Linux入门学习的朋友,运维…

水电站数字孪生:水力发电在可视化领域的应用

自水轮机的早期发明被用于农业灌溉,到 18 世纪末期的工业革命促使水轮机技术的改良,再到 19 世纪末水利发电的崛起,直至今日,智慧水电站数字孪生技术正处于蓬勃发展之中。通过整合物联网、大数据、云计算等现代信息技术&#xff0…

【Zookeeper】ZooKeeper的一些重要功能和作用

🍎个人博客:个人主页 🏆个人专栏:日常聊聊 ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 结语 我的其他博客 前言 随着分布式系统的普及和应用场景的不断增加,构建可靠、高效的分布式系统变得愈发重要。然…

开短路测试

一、介绍 连接性测试,可以叫开短路测试,也可叫接触性测试,英文为Continuity Test或Open & Short Test,主要用来检验测试过程中电学连接是否良好,包括测试设备本身、测试设备与Loadboard、DUT本身等等,是…

SpringBoot接口防抖(防重复提交)的一些实现方案

前言 啥是防抖 思路解析 分布式部署下如何做接口防抖? 具体实现 请求锁 唯一key生成 重复提交判断 前言 作为一名老码农,在开发后端Java业务系统,包括各种管理后台和小程序等。在这些项目中,我设计过单/多租户体系系统&a…

一文梳理LIN协议与应用

目录 一、LIN是什么?有什么用?二、LIN概要描述2.1 特点2.1.1 低成本2.1.2 易扩展2.1.3 速率一般,不高 2.2 网络形态2.3 架构分层 三、应用层 4 大功能3.1 配置3.2 识别(查询功能)3.3 信号处理3.4 诊断 四、协议层介绍4…

深入理解Docker自定义网络:构建高效的容器网络环境

文章目录 一、docker自定义网络介绍1.1 docker自定义网络介绍1.2 使用技术的优势1.3 基本使用流程 二、实战操作2.1 模式理论介绍bridge模式(默认模式)host模式 2.2 模式特点查看桥接模式的特点查看仅主机模式的特点 2.3 实战操作bridge模式host模式自定义网络 一、docker自定义…

傻瓜式——Kibana 作图指北

背景:比较重要的功能即将上线,需要观测一些项目运行指标,项目周边用了kibana ,想用Kibana 简单做一些图。 难者不会,会者不难—— 在Kibana 中找到这个标签页——可视化 2. 新增可视化图 3. 可以选取自己需要的图样式&#xff…

【EAI 027】Learning Interactive Real-World Simulators

Paper Card 论文标题:Learning Interactive Real-World Simulators 论文作者:Mengjiao Yang, Yilun Du, Kamyar Ghasemipour, Jonathan Tompson, Leslie Kaelbling, Dale Schuurmans, Pieter Abbeel 作者单位:UC Berkeley, Google DeepMind, …