我打算制作一款适用于 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/