【问题标题】:Anti-Cheat / Glitch in game游戏中的反作弊/故障
【发布时间】:2017-01-04 01:35:04
【问题描述】:

目前我正在与一个团队合作开发基于 Unity 的游戏。该游戏仍处于开发阶段和 alpha 版本。

最近,我们发现游戏容易受到作弊引擎、speedhack 等攻击。更新后的更新,作弊现在稳定了。我们还介绍了 Unity 的 ACT 或反作弊工具包。由于游戏是基于 Unity 的,因此很容易在游戏中实现想法。

虽然“黑客”已经稳定,但“故障”却没有。

这是一个开放世界的生存游戏,它由拾取/丢弃物品组成。问题是当两个玩家一起拾取物品时(目前你必须在十字头在物品上方时按 E 才能拾取它)该物品会被复制。我们一直在努力修复它,但没有成功。

我们介绍了当附近有其他玩家时,玩家无法拾取物品。它看起来很奇怪,我们希望游戏流畅。我们还尝试了自动拾取物品。这是我们的计划,但我们还有什么想法可以做吗?

【问题讨论】:

  • 好像没有权威服务器?所以客户决定他们选择什么?
  • @Bart 服务器实际上是去中心化的,所以很难

标签: unity3d game-engine anti-cheat cheat-engine


【解决方案1】:

如果您担心玩家通过修改内存值作弊,以及保持同步的游戏状态以避免物品重复等问题,您应该考虑设置一个权威服务器,该服务器将包含并更新“官方”值和状态游戏。

基本上,游戏不会直接在玩家的计算机上存储值和执行动作,而是向服务器发送它想要做什么的请求,服务器将执行动作,更新官方游戏状态,并发送将新状态返回给玩家,以便他们的游戏得到更新。

这将阻止内存编辑,因为即使玩家修改了屏幕上的值(例如货币或健康),服务器也会包含真实值。

它还可以防止诸如 speedhacks 之类的攻击,因为在按下按键时本地游戏不会直接移动玩家,按键只会向服务器发送移动请求,服务器会更新玩家的位置,然后发回新职位。

最后,这将防止物品重复,因为当两个玩家都尝试拾取物品时,他们都会向服务器发送物品拾取请求。无论哪个玩家的请求先到达,都会收到该物品,然后服务器将更新游戏状态,使该物品不再在地上,第二个玩家的请求将被忽略,因为他们试图捡起的物品不再存在。

简单地说,防止作弊的最好方法是:不要在玩家的计算机上存储重要的值或执行重要的操作。

【讨论】:

  • 谢谢我会试试的
猜你喜欢
  • 2018-12-21
  • 1970-01-01
  • 2019-06-29
  • 1970-01-01
  • 2014-09-17
  • 1970-01-01
  • 2012-03-16
  • 1970-01-01
  • 2012-01-06
相关资源
最近更新 更多