ET前后端可以share很多代码,许多公共组件前后端逻辑一样的情况下,其计算结果是否一定需要服务端下推?比如放技能数值组件需要减100点Mp,前后端数值组件都可以扣一样的数,还需要服务端把最新的Mp数值下推吗?背包组件消耗一个药水,Item的Count减1,双端都可以减,还需要服务端发最新的Count给客户端吗?
这种情况不可能前后端逻辑一致,前端应该没有这些逻辑,全部由后端推
egametang 为什么要有这种逻辑,是因为客户端要做预检测,尽可能拦截不合理的消息嘛。比如现在Mp是200,技能需求300,那么客户端就不能发技能消息给客户端。如果Mp是400,那就可以放,这时不就可以双端一起扣掉这个300的数值吗? 物品的数量减少也是一个道理。请问这种逻辑为什么不能共用呢?
Liquor 要是服务器扣失败了呢,或者有增/减益buff影响更加不准了, 所以只能以一方为准,不能两方同时操作。
Liquor 客户端操作之前做检测当然没问题,但是做检测只是为了减少通信消息量,客户端是不可能做扣值操作的
为什么要预检测?服务端统一检测不行吗?预检测能省几块钱?
没做过游戏吧。代码共享和业务逻辑有毛关系
Long 没看懂你回的和问题有什么关系
业务逻辑全部放服务端。客户端要是自己计算还要服务端干嘛,做单机游戏就可以了
Long 是的,服务端当然会算,也是以服务端为准,客户端算一下就是可能更新一下UI啊之类的,简单的数字,就算错了也是在表现层,对服务端没啥影响
Liquor 对玩家来说就问题很大的,毕竟玩家只能看到ui显示,表现错了,玩家体验就差很多了。
Liquor 如果你说的是战斗逻辑,我觉得双端同步计算没问题,但是数值绝对是由服务器主导。背包数量,角色属性绝对不能让客户端自己算。