刚上线的基于物理引擎帧同步游戏

只要保证模型的确定性,再怎么复杂的物理效果都是一样的做法

我觉得不可能同步吧,网络延时必然造成多客户端执行物理步长数不一致,只要累计一段时间就差别很大了

所以 用了帧同步?

看标题

帧同步只是说固定时长内客户端接收请求数量一致,但客户端指令所执行的物理步长不会一致

你还没正确理解帧同步的原理,物理引擎的step也是由服务器控制的

不可能同步, 浮点数问题不解决必然出问题.

反正如果不出现断线重连的情况下 我AI自动运行一个小时都不会出现不同步的情况

你懂不懂浮点数原理? 我拜托!!!
你在相同电脑中测试, 当然同步了. 我拜托.

你要考虑不同的CPU,…

大佬,我也拜托你先玩下游戏再评论…如果不做到真正同步我敢上线?

那请问怎么实现的物理步长同步的,比如服务器同步客户端物理步长数100,客户端执行完100停顿?
两个问题,1、物理引擎如何指定模拟步长数量。2、这样物理模拟是否经常容易卡顿

第一个读下引擎源码很快就知道,mainLoop里面把PhysicsManager抽离出来单独update
第二个比较麻烦,主要就是靠剥离逻辑和表现…逻辑层再怎么卡表现层也要看上去平顺

理解,赞一个!表现层肯定用了缓存数据来做一些卡顿的缓冲,希望能够开放学习核心的逻辑demo大家学习:)
另外小游戏tcp协议的网络卡顿对物理帧同步的表现还是影响很大,我一直觉得物理同步游戏在小游戏上的体验是不能达标的,不知道你游戏这方面反馈如何

大佬,服务器发回的帧数据是直接step,还是放到队列里面由客户端定时step?

我跟朋友玩了下,出现了不同步,他都赢了,我才1:0

挺好玩的,就是这个方向有点反人类

大佬,能请问下你帧同步是怎么做的吗?游戏里边是用网络帧驱动还是客户端帧驱动的?

安卓和iOS 好友对战时候 不同步了;不过大佬UI做的不错啊

box2d是个确定性的物理引擎吗?你在不同系统测过了的吗?

没有特殊标注的引擎不可能是确定性引擎的,除非像Xbox、PS、Switch这种单平台的游戏