XForge|帧同步联机对战项目

项目地址

技术栈

前端框架: XForge

扩展包(基于 XForge ):

  • @gamex/cc-ecs【ECS架构】
  • @gamex/cc-decimal【定点数】
  • @gamex/cc-decimal-vec2【定点数二维向量】
  • @gamex/cc-decimal-vec3【定点数三维向量】
  • @gamex/cc-decimal-random【定点数随机库】

后端框架: Nodejs

功能介绍

  • 包含前后端源码
  • 基于 XForge 的3D与2D混合开发(超级简单)
  • 完全客户端计算的帧同步实现(服务器无逻辑)
  • ecs架构在帧同步中的使用
  • 帧同步中的逻辑帧与渲染帧
  • 帧同步高低性能模式切换
  • 帧同步中使用定点数解决小数计算问题
  • 帧同步中使用定点数种子随机实现概率
  • 帧同步中的插值、预测(外推)与和解
  • 帧同步代码不需修改直接适配单机or联机

3赞

对于遵守es规范的平台来说。定点数用处已经很少了

这个要看开发者的接受情况了,你没办法保证它一定遵守,或者遵守了不会出问题,毕竟这东西是完全黑盒的

那是因为你还不了解,不遵守规范就代表多端不一致,但是之前论坛已经有人做过测试了,还让大家一起测过,而且我的群里也有人做过测试,都是同步的

可以说不遵守规范的只有1-5%(预估),而定点数消耗的性能显然性价比不高

我上家公司用定点数做台球物理同步,开球就必卡,定点数性能消耗非常大,你可以自己做个3d球,加上各种力,update里实时更新,测试测试就知道了

所以说这个要看开发者或者老板的接受程度,我们之前的项目,老板要求万分之一的不同步率,我们没办法把老板炒鱿鱼,当然最终我印象中,我们做到了十万分之一

定点数消耗大是必然的,不适合用在所有项目中,我现在还在测试另一种一致性策略,几乎做到无消耗,有机会上线验证一下

用定点数可以保证更高的准确性,但是需要付出更多时间,更低的性能,更多的bug

另外我说的概率是我预估的,并不准确

非定点数物理帧同步我上次已经发布了:joy:,在上次征文时,但是我后面删了,如果有需要可以进群找我拿

我在你那个群,我看了你那个介绍,还有引入的那个文献,但其实那个文献里面自己都说不确定好不好使

QQ20240716-133454
3240228742DD6ACB86919F0D0BD15301

所以你的方案其实是基于一个不确定的规则来推理的…

我印象中论坛有位兄弟做测试找文献,结论是使用wasm能保证小数基础运算一致(不包含三角函数运算等)

至今也没有实验证明过,在数百万数千万数亿的设备中,小数计算不一致性的设备占比到底有多大

的确是不确定的,但是从目前确定性的测试结果,能保证误差在1%以内,可以看这篇帖子,大家都测过

实验要讲究严谨

审核了重新发,见仁见智吧,如果不在意很垃的性能,更长的研发时间,更多的 bug(可能导致不同步比非定点数还多),那就用定点数吧 :rofl:

:sweat_smile:真的离谱,不想抬杠,你的方案最棒,结束

我说的不是事实吗?:sweat_smile:有哪一点说的不对请指出来?

你现在有几个问题:
1、你现在完全是基于猜测在搞这个事,你自己没有去验证过,没有以百万千万的用户基数去做测试。
2、你所谓的性能问题,定点数确实会消耗更多的性能,我这个案例给了demo,你有没有验证过?
3、我免费提供一个稳定的库,就是为了降低研发成本和BUG。

总结起来就是,你在使用猜测来论证一个你认为对的事,却完全忽略客观实际。

也是对你的一个建议吧,还是要基于一个验证过的结果来论证

  1. 第一,我自己的工程,测试过 IOS 安卓 及 PC 完全同步且有 demo,上面也已经说了,前面有除了我之外的案例,7.8k 浏览 98 回复我说不到 1% 有问题?
    image
    这是事实案例

  2. 第二,性能问题,我上家公司做的商业项目定点数验证,难道比不上你的 demo 更靠谱?或者你给一个用你的定点数的台球商业项目来验证下?

  3. 第三,研发时间长,你没意见吧?Bug 多,你没意见吧,我说的都是经过事实验证,什么时候变成了不实际的事?

1、我实际真机测试了数百万用户的结果。
2、我之前那个也是商业化项目,而且我是主程,我研究这东西超过5年,能到什么程度我很清楚。

你测试的是 ES 还是你的定点数?

如果是 ES ,你的测试是否使用的 ES 官方提供的项目?或者是验证的小数不同步?具体的不同步率是多少呢?

如果是定点数,那当然同步,但是要做好前期的验证,也就是我说的研发时间长和 bug 多,因为每一步和定点数相关的运算都需要使用定点数。有一步错了那么就是不同步,而非定点数没有这个问题,所以我之前哪个说的有问题?

定点数只要做好了当然同步率是比其他方法高的多,但是做好的代价就是研发时间长,而且性能底下,写Bug的概率大

666,学习学习,有原理介绍么

花功夫写的,删了可惜啊,还有文档么