【问题标题】:How to Prevent Cheating in an Multiplayer Online Android/iOS Game that Uses Google Play Services?如何防止在使用 Google Play 服务的多人在线 Android/iOS 游戏中作弊?
【发布时间】:2016-05-17 10:17:30
【问题描述】:

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

以下是问题:

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

【问题讨论】:

    标签: android ios unity3d google-play-services


    【解决方案1】:

    我还计划将用户值存储在随附的 Google 服务器中 使用 Google Play 服务

    不。不要这样做。

    我不打算让玩家离线玩游戏

    好主意。

    您所有其他问题的答案是任何游戏都可能被黑客入侵。任何游戏服务器都可能被黑客入侵。使用 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 端。我建议你走这条路线。

    【讨论】:

    • 如果玩家下线了,做了一些作弊的事情,然后又用 Google Play 账号上线了怎么办?为什么这个选项可以防止作弊?
    • 例如,“aa 游戏”的制造商是如何阻止游戏被黑客入侵的? Maker 确实阻止了,因为人们为通过关卡付费。他们不使用任何黑客程序。这种水平的作弊保护实际上对我来说已经足够了。
    • @user5278560 如果玩家下线了,做了一些作弊,然后又用 Google Play 帐户上线了怎么办? 别再谈论 Google Play .在进行进一步的 cmets 之前,请阅读答案。我在#3 和#4 解释了这一点……我说在那里做你所有的游戏逻辑。在服务器端增加或减少玩家的分数。现在他们无法在客户端更改它。您在客户端所做的只是根据分数或服务器上存储的内容显示图形。
    • @user5278560 例如,“aa 游戏”的制造商是如何阻止游戏被黑客入侵的? 再一次,也是最后一次,你无法阻止黑客入侵。即使一切都在服务器端完成,请记住任何人都可以闯入数据库/服务器。数据库可以被黑客入侵和修改。
    • @user5278560 索尼、微软、EA 和其他顶级公司的游戏/服务器遭到黑客攻击。他们还拥有最好的程序员、工程师和网络安全。是什么让您认为您的游戏无法被黑客入侵?我建议您聘请黑客来帮助开发您的游戏。您需要它们来真正使您的游戏更安全。他们知道入侵游戏的方法,并会帮助您编写代码来减少它。
    猜你喜欢
    • 2014-09-17
    • 2015-01-20
    • 2010-10-31
    • 2018-09-11
    • 1970-01-01
    • 1970-01-01
    • 2014-08-12
    • 2014-03-07
    • 2016-06-24
    相关资源
    最近更新 更多