这两天终于有成果哈 Cocos Server Headless

这不就可以实现真正的状态同步了吗? 和帧同步裁决 ???
芜湖 好吧

开局一张图,内容全靠猜

就是nodejs运行cocos项目

计算逻辑完全可以独立在引擎之外吧?直接丢到node上跑不就行了,为什么要集成cocos呢

你这种只适合简单逻辑比如卡牌 如果像场景并且动作或者龙骨比较复杂的战斗系统 你很难独立的写在nodejs上 通过这种方式你可以一套代码打包出服务端和客户端一样的逻辑 常用在帧同步对战结束后校验
比如王者荣耀它就是帧同步进行联机 帧同步是客户端进行全全计算 所以战斗结束了会导致服务端无法知道那方胜利 一般都是通过玩家上报游戏过程和胜利 (这样的缺点就是玩家可以伪造胜利结果和游戏过程进行欺骗) 如果要解决就是将游戏也在服务端跑一遍 通过服务端验证最后的胜利

标准流程: 帧同步开始 - 玩家游戏过程 - 帧同步结束 - 服务器追帧快速得出胜利方 - 通知最终战斗结果

坐等分享~~

需要的话 我明天分享一下

一般做帧同步,逻辑与动画是分离的,动画复杂不复杂,不影响逻辑是独立的,而且使用cocos跑帧同步的话,如何处理小数

1赞

小数并不会影响同步的哦,目前我打包小程序 通过IOS 和 安卓运行 没有遇到不同步的时候 已经商用很久了哦 不同步的情况有很多情况导致 比如 物理没有重置导致各个客户端不同步 如何测试是否支持帧同步 就是通过一个计算题 在不同设备中运算 只要最终结果一直就可以使用帧同步

动画是否分离取决于你游戏怎么设计 有些动作游戏需要动作通知(比如第几帧通知受到伤害) 这时候你动作就需要支持帧同步特性 这种一般需要修改动画系统让动画的更新 跟着帧同步进行更新 cocos的动画帧同步我还没有弄过 我弄过unity的

https://sud.tech/gamedetail/994220438278790377

膜拜大佬啊

坐等分享~~

这个可以哎,用的jsdom吗

是的 jsdom 还有 gl 修改一点点引擎代码

666,有时间我也研究一下

我目前验证过一个项目,还原它的计算过程,原因是小数产生了偏差,导致其他客户端计算碰撞了,他那台设备没有碰撞,而且我们那个项目也才10万级的日活,当时统计是不同步率好像是万分之一左右(有点忘记了)

而且我用我自己的两台手机通过demo还复现这个计算结果不一致的情况了

1赞

我这边试的nodejs跑的物理后端,感觉3d物体掉落这一块就不如客户端的模拟,能跑cocos server再好不过

我等等偷偷发 因为要上班尴尬

1赞

如果出现这个情况只能在游戏开始前计算一道数学题确保 可以同步 …主要是我目前没发现有设备算出来不一样 我也在找 看了两年也没发现我就不管了

如果可以你发个视频和手机设备 我心痒痒的…