1

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

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

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

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

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

4

1 回答 1

4

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

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

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

它还可以防止诸如 speedhacks 之类的漏洞,因为当按下按键时,本地游戏不会直接移动玩家,按键只会向服务器发送移动请求,服务器将更新玩家的位置,并发送回新的位置.

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

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

于 2016-08-27T23:01:01.770 回答