预防游戏外挂

我们游戏的移动同步逻辑的基本原理是:单位在主控端(玩家自己的客户端)根据玩家输入执行移动逻辑,然后将位置点以及时间信息以一定的频率发送给从端,服务端以及其他客户端根据主控端发来的移动同步信息模拟、预测、纠正单位的位置。

基于以上同步机制,移动模块需要考虑三种外挂情况:
1.主控客户端伪造或篡改瞬移消息。
2.主控客户端修改本地内存中的移动速度。
3.主控客户端使用加速器

由于我们游戏所有的移动都是在主控客户端发起和执行,然后服务端跟随,所以瞬移也是客户端先执行,然后通知服务端。

为了保证客户端不能发送非法瞬移消息,我们将瞬移流程定义为:由服务端发起、客户端执行、服务端再验证。
1.服务端发起瞬移,但是并不将单位移动到对应位置,而是将瞬移信息发送给客户端。
2.客户端收到位移信息后,将单位移动到对应位置。
3.客户端发送一个瞬移消息给服务端,服务端收到后,将单位移动到对应位置。

基于以上瞬移流程,可以比较简单的实现瞬移防外挂功能。

服务端发送瞬移信息给客户端时,记录下来瞬移目标的位置。
服务端收到客户端的瞬移消息,进行以下验证:
若服务端没有发送瞬移消息给客户端,则瞬移非法。
若收到的瞬移位置与记录的瞬移位置不同,则瞬移非法。
基于以上流程,可以保证瞬移虽然是客户端执行的,但是仍然由服务端发起和验证。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值