【问题标题】:HTTPS on Cocos2d-xCocos2d-x 上的 HTTPS
【发布时间】:2012-10-13 11:42:18
【问题描述】:

我正在实现一个基于 cocos2d-x 的游戏应用。为了从技术上防止作弊,其中一个思路是使用 HTTPS 进行所有客户端-服务器通信,这使得获取数据格式/游戏逻辑和发送修改请求进行作弊变得困难。 (我知道“预防”实际上是不可能的,但为了增加游戏作弊的成本,没关系:)。我的问题是,

  1. 在Cocos2d-x中,如何进行HTTPS请求?可能吗?
  2. 在更一般的情况下,从技术上讲,如何减少此类游戏黑客行为?持有什么策略?

【问题讨论】:

    标签: security https game-engine cocos2d-x


    【解决方案1】:

    对于本机跨平台 C++ 网络,您可以考虑使用 Boost C++ 库。 Boost.Asio 是用于网络的。

    Boost.Asio 链接: http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio.html

    Boost.Asio 教程链接:http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio/tutorial.html

    虽然没有得到官方支持(仅由于缺乏对 iOS 和 Android 的回归测试),但 Boost 在 iOS 和 Android(可能还有其他基于 C++ 的移动平台)上运行没有任何问题。

    为了防止作弊,您通常依赖外部来源(可以是您的游戏服务器),例如如果您的游戏依赖于一天中的时间,您可能会从外部服务器获取时间。您可以在客户端和服务器端使用加密库进行数据传输。

    【讨论】:

    • 非常感谢,虽然这不是一个新帖子。 :)
    • 是的,我意识到这不是一篇新鲜文章,但我仍然觉得有必要回答这个问题,因为人们通常在 C++ 中遇到跨平台网络问题。
    【解决方案2】:

    通过使用 curl 库,您可以建立 https 连接。 如果您想从技术上保护您的游戏,请使用您自己的强大加密技术。

    谢谢

    【讨论】:

      【解决方案3】:

      您好,这是我们一直面临的问题。如果作弊仅限于作弊者的实例,则问题是学术性的,应该在您的业余时间研究。

      另一方面,当您的收入受到影响或作弊者的行为影响其他玩家并降低游戏体验时,您应该投入一些精力来测试游戏状态是否不一致,保护客户端/服务器交易并非常小心地处理作弊行为巧妙的方法来避免完全阻止作弊者的兴趣。

      C++ https 实现可用于 curl 和 boost。

      关于游戏数据,测试不一致的最简单方法是分数。您可以添加一些指标以避免污染您的排行榜。如果您可以在服务器上重新计算分数并且如果发现不一致,您可以处理它,您可以根据分数的组成部分(在游戏中花费的时间、通电次数和收到的分数倍数...)添加特殊校验和。

      您还可以获取游戏状态的瞬间和一些命令,对其进行编码并在服务器上重播序列以检查不一致之处。随心所欲地对付作弊者。

      在服务器上玩时,让服务器管理游戏状态,并且不允许任何会影响玩家的客户端游戏状态更改。检查输入一致性等...

      使用微交易时,每个微交易都应在完全提交到玩家帐户之前与供应商服务器进行验证。

      即使来自 Valve 的这些论文12 提到了 fps 游戏,它们也应该为您提供一些关于如何处理状态不一致(由通信延迟引入)的指导。它应该有助于避免假阳性并破坏非作弊者的体验。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-16
        • 2013-12-24
        • 1970-01-01
        • 2013-12-21
        • 2014-07-22
        • 1970-01-01
        相关资源
        最近更新 更多