找回密码
 立即注册
楼主: DomDomm

Unity帧同步解决方案(一)

[复制链接]
发表于 2021-11-12 16:32 | 显示全部楼层
理论上游戏逻辑问题和同步机制之间应该没有任何关系
发表于 2021-11-12 16:33 | 显示全部楼层
拜读了这篇文章,讲的确实很好。
快照这一块,我之前以为只有断线重连的功效,没想到还有Time warp的功能。
不过,感觉这个技术会出现频繁回滚,在一个5V5的游戏环境下,快照和回滚操作不知道消耗大不大,因为Lua的遍历实在是一言难尽(我们项目的所有战斗逻辑都在lua上)。
发表于 2021-11-12 16:38 | 显示全部楼层
这又回到逻辑和数据分离这个问题上了,其实可以把数据放在C++层,低消耗逻辑放在脚本层,高消耗逻辑在稳定后放到C++层
发表于 2021-11-12 16:38 | 显示全部楼层
嗯,我们策划表由于某些需要直接编写lua代码,策划表都是在存成lua格式的,整套东西下来确实不适合做成这样。并且逻辑和数据分离后,取数据,改数据啥的消耗也很大。战斗逻辑是没法放C++的,几乎每次更新都有改动。
发表于 2021-11-12 16:45 | 显示全部楼层
感觉作者并没有使用帧同步技术做过项目。
发表于 2021-11-12 16:51 | 显示全部楼层
如果从未接触过帧同步,上手时不建议做回滚,尤其是非全局的回滚。
发表于 2021-11-12 16:52 | 显示全部楼层
这篇文章是我亲身经历的将近三年Moba项目(闹闹天宫)的总结,可能在某些地方不够完善,但是使用的技术绝对是可行的,至少能保证项目成功上线。
发表于 2021-11-12 16:57 | 显示全部楼层
如果是多人团队的话,如何做局部的状态回滚呢?如何确定要回滚哪些局部状态呢?不同步率如何呢?是否整个开发周期都在持续的因编码不当出现不同步呢?
发表于 2021-11-12 17:01 | 显示全部楼层
模块之间的关系是非常复杂的,某个模块因为预测执行,可能同时导致其它模块的状态变化。回滚模块时,也需要回滚所有因此模块而受影响的模块,最终可能接近全局回滚。局部回滚意义就很小了。
 楼主| 发表于 2021-11-12 17:07 | 显示全部楼层
不确定你所说的闹闹天宫有多庞大,如果是比较大一点的moba游戏,性能消耗可能很接近瓶颈,这种情况下做状态保存和回滚对性能的压力可能是致命的。当然可以通过一些方式缓解,如果是unity开发,可以把逻辑层放到c++并且子线程运行,但你说是用lua,那我对这个项目的大小有所怀疑。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-15 18:51 , Processed in 0.110997 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表