了解游戏中的数据同步

目录

数据同步

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

状态同步

帧同步 

帧同步实现需要的条件

两者相比较


数据同步

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

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

  • 发操作
  • 收状态

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

  • 发操作
  • 收操作

适合帧同步的游戏:

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

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

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

状态同步

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

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

帧同步 

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

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

帧同步实现需要的条件

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

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

两者相比较

两者结合:状态帧同步

三种同步方式:状态同步、帧同步、状态帧同步

状态帧同步就是状态同步和帧同步的概念相结合。客户端向服务器上传操作,服务器跑逻辑,但是又在按照固定的每一帧下发所有玩家的状态(属性位置等)给每一个客户端实现同步。

这里最具典型的就是守望先锋就是采用的状态帧同步的概念。在这个概念中,服务器和客户端都是有一套相同的代码的,但是客户端的逻辑代码更偏向于用来做预测行为,客户端可以预测主玩家的行为,让主玩家不需要等待服务器的快照就能直接执行玩家按下的操作,这样就能增加玩家的体验,而当服务器下发快照的时候,玩家再去验证自己的预测是否正确,不正确的就对操作进行回滚。

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
U3D是一种游戏引擎,可用于开发虚拟现实(VR)和增强现实(AR)应用程序。它提供了一个强大的工具集,可用于创建逼真的图形和交互式体验。在U3D,我们可以使用镜子(mirror)功能来实现物体的反射效果。通过将一个物体放置在一个镜子对象前,该物体的镜像将显示在镜子上。这可以为游戏和虚拟现实场景增添更多的真实感和交互性。 武平是指一个地理区域,也是一个历史文化名城。在U3D,我们可以使用地形编辑器来创建武平地区的虚拟景观。地形编辑器可以帮助我们创建山脉、河流、湖泊和其他自然地理特征,使得虚拟景观看起来更加真实和细致。我们可以根据实际地图或设计师的想象来重现武平的风貌,使用户能够在游戏或VR应用沉浸在这个具有独特文化特色的城市。 焊接是一个涉及金属或其他材料的工艺。在U3D,我们可以使用物理引擎和粒子系统来表现焊接的过程和效果。例如,我们可以在虚拟现实展示两块金属板焊接在一起的过程,包括熔化金属、熔断方式等细节。通过模拟焊接过程,用户可以了解实际焊接所涉及的步骤和技巧。 同步是指两个或多个物体、数据或进程在时间上保持一致。在U3D同步可以用于多人在线游戏的开发。通过网络同步机制,多个玩家可以在同一个游戏世界实时互动,共同完成任务或战斗。同时,U3D也提供了多线程处理的能力,使得不同的游戏系统可以以高效并行的方式运行,确保游戏的流畅性和性能。 总之,U3D的镜子、武平、焊接和同步功能可以为游戏和虚拟现实应用增添更多的真实感、交互性和合作性体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值