首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >游戏中的防作弊/故障

游戏中的防作弊/故障
EN

Stack Overflow用户
提问于 2016-08-27 22:28:59
回答 1查看 697关注 0票数 1

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

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

虽然“hack”是稳定的,但"glitches“不是。

这是一个开放的世界生存游戏,它包括挑选/丢弃物品。问题是,当两个玩家一起挑选物品时(目前你必须在十字头在物品上方时按E键才能拿起它),物品会被复制。我们已经工作了几天来修复它,但没有运气。

我们介绍了当附近有其他玩家时,一个玩家不能拿起物品。它看起来很奇怪,我们希望游戏顺利进行。我们还尝试了自动提货。这就是我们的计划,但是我们还能做些什么呢?

EN

回答 1

Stack Overflow用户

发布于 2016-08-28 07:01:02

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

基本上,游戏不是直接在玩家的计算机上存储值和执行操作,而是将请求发送到服务器,服务器将执行操作,更新官方游戏状态,并将新状态发送回玩家,以便更新他们的游戏。

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

它还可以防止像speedhacks这样的漏洞,因为当一个键被按下时,不是让本地游戏直接移动玩家,而是按键只会向服务器发送一个移动请求,服务器将更新玩家的位置,并发送回新的位置。

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

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39182215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档