我正在实现一个基于cocos2d-x的游戏应用程序。为了在技术上防止欺骗,采用HTTPS进行所有客户端与服务器的通信,使得获取数据格式/游戏逻辑和发送修改请求进行欺骗变得困难。(我知道“防止”实际上是不可能的,但为了增加游戏作弊的成本,没关系。)我的问题是,
发布于 2013-03-08 23:09:09
对于本机跨平台C++网络,您可以考虑使用Boost C++库。Boost.Asio是用来建立网络的。
Boost.Asio链接:asio.html
Boost.Asio教程链接:asio/tutorial.html
虽然没有得到官方的支持(仅仅是由于缺乏对iOS和安卓的回归测试),Boost在iOS和安卓(可能还有其他基于C++的移动平台)上没有任何问题。
为了防止作弊,您通常依赖外部源(可以是您的游戏服务器),例如,如果您的游戏依赖于一天中的时间,您可以从外部服务器获得时间。您可以使用加密库在客户端和服务器端进行数据传输。
发布于 2012-12-19 06:45:46
通过使用curl库,您可以进行https连接。如果你想在技术上保护你的游戏,使用你自己强大的加密技术。
谢谢
发布于 2013-12-19 21:23:53
嗨,这是我们一直面临的问题。如果作弊仅限于作弊者的情况,那么这些问题是学术性的,应该在你的业余时间学习。
另一方面,当你的收入受到影响,或者当骗子的行为影响到其他玩家并降低游戏体验时,你应该努力测试游戏状态中的不一致性,确保客户/服务器事务安全,并以非常微妙的方式处理欺骗行为,以避免完全阻碍作弊者的兴趣。
C++ https实现可以随curl和boost一起使用。
关于游戏数据,最简单的方法是测试不一致的分数。您可以添加一些指标,以避免污染您的领导板。您可以根据分数的组成部分添加特殊的校验和(用于游戏的时间、加法次数和收到的分数乘数.)如果您可以重新计算服务器上的分数,如果发现不一致,您可以处理它。
此外,您还可以获取游戏状态的即时信息和一些命令,对其进行编码并在服务器上重新播放序列,以检查是否不一致。不管你喜欢什么,都要对付骗子。
在服务器上运行时,让服务器管理游戏状态,不允许客户端的游戏状态更改会影响玩家。检查输入一致性等..。
在使用微事务时,每个微事务都应该与供应商服务器进行验证,然后才能完全提交到播放机的帐户。
即使这些论文1,2从阀门引用fps游戏,他们应该给您一些关于如何处理状态不一致(由通信延迟引入)的指点。它应该有助于避免假阳性和破坏经验的非作弊者。
https://stackoverflow.com/questions/12872772
复制相似问题