android - 如何防止在使用 Google Play 服务的多人在线 Android/iOS 游戏中作弊?

标签 android ios unity-game-engine google-play-services

我打算制作一款适用于 Android 和 iOS 的 MMORPG。我将使用 Unity 5。我还计划将用户值存储在 Google Play 服务附带的 Google 服务器中。我正在存储金额、等级、力量点、元素栏中的元素、解锁的技能等值。我不打算让玩家离线玩游戏。他们必须登录自己的 Google 帐户才能玩游戏。

问题如下:

  • 我的游戏有多安全?我的意思是,使用谷歌服务器存储数据,我认为玩家不会更改游戏数据,因为所有数据都在服务器中。
  • 我应该使用哪种方法来加密我的数据?
  • Google 服务器是否能够存储这些数据量?
  • 用户能否使用第三方程序更改服务器上的数据?如何防止这种情况?
  • 我的游戏将完全在线。通信运营商能否发送和接收这些数据量?因为服务器应该检查播放器的每一步。玩家在外出时也应该能够玩游戏。
  • 我计划在满足某些要求时进行一些检查。例如,当玩家购买一件值(value)100万金币的独特元素时,游戏会先检查服务器,如果玩家有100万金币。任何人都可以更改游戏文件中的代码吗?

最佳答案

I am also planning to store user values in a Google Server that comes with Google Play Services

没有。不要这样做。

I am not planning to allow players play the game offline

好主意。

您所有其他问题的答案是任何游戏都可能被破解。任何游戏服务器都可能被黑。使用 Google Play 服务更糟糕,因为您无法保护自己。

如果您的游戏是在线 MMORPG,您需要获得一个按月付费的服务器,甚至可能需要一个专用服务器。

无法防止黑客攻击,但可以减少

减少黑客攻击的方法:

1。获取服务器而不是 Google Play,因为有些事情不允许您在 Google Play 服务器上执行。你不能在那里运行你自己的游戏脚本 AFAIK。

2。玩家必须注册并登录才能玩您的游戏。

3。在服务器端做所有的安全/购买东西。如果您在客户端执行此操作,则可以在 iOS 和 Android 上对其进行反编译、修改和重新编译。

例如,当玩家想要购买东西并且该东西需要玩家没有的分数时,不要在玩家端进行检查,而在服务器端进行检查。

4。当您检测到玩家作弊时,将玩家封禁,然后将 IP 地址封禁一周左右。不要永远禁止 IP 地址,因为一些使用 DSL 的人可以通过简单地重置调制解调器来更改他们的 IP 地址。当他们这样做时,您现在正在禁止另一个刚刚被禁止 IP 的无辜者。您可以永久禁止该帐户或暂时禁止它们作为警告,然后再永久禁止它们。您在这里设定规则。

5。您可以将每个帐户与玩家的 MAC 地址、iPhone UDID、设备序列号或设备的任何唯一编号相关联。当玩家被禁止时,他们可能会尝试注册另一个帐户。如果使用同一设备注册,则不要让玩家注册。简单地用数字显示网络错误。不要告诉玩家他们无法再次注册,因为他们的帐户/设备被禁止了。如果这样做,他们可以轻松绕过禁令机制并重新注册。

使用帐户、自定义服务器、禁止玩家是减少网络游戏被盗的最佳方法。还有很多其他方法,但我无法继续下去。

您需要了解的内容:

PHP、MySQL 用于服务器端。 Unity C#、Unity 网络 API 用于客户端/Unity。

现在,如果您真的希望网络游戏快 50 倍以上,请在服务器端使用 C++ (FastCGI)、MySQL 连接器Unity C# + 原始套接字 在客户端/Unity 端。我建议你走这条路。

关于android - 如何防止在使用 Google Play 服务的多人在线 Android/iOS 游戏中作弊?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37273315/

相关文章:

ios - 苹果拒绝了我的应用程序,如何更明智地呼吁?

c# - 使用对象的网格作为粒子系统的发射器时,构建的 Unity 游戏会崩溃

ios - Unity Facebook 插件在登录后终止应用程序(iOS)

javascript - 单击行时无法转到新 Activity

Android:使用百分比以编程方式设置 subview 的宽度

objective-c - 强制用户在组织网络上禁用 Siri

ios - 我们可以在单 View 应用程序中使用基于表格的导航吗?

c# - 自定义TaskFactory不使用自定义SynchronizationContext

android - 操作栏中的矩形图标

java - Facebook session 在 Android 中过期