使用在线高分榜的游戏存在的一个问题是它们经常被滥用。游戏将当前分数发送到服务器,并且狡猾的用户可以分析协议/方案并发送虚假分数。这就是为什么一些高分榜上有999999分的原因。
此问题的常见解决方案是以某种方式加密分数,并在此基础上加other mechanisms to recognize false scores。但即使你这样做,它也是发送得分的客户端,而客户端则存在于用户的计算机中,并且可以进行逆向工程。
我正在设计/考虑一个游戏(我将完成,是的正确的:))你在哪里配置你的玩家/机器人有关如何执行任务的指示(和何时这些指令是要进行)。当按下“开始”按钮时,游戏运行指令。最后得到一个结果,如果成功的话,得到一个分数。
那么,如何:使用相同的实现,将实际指令发送到运行它们的服务器,而不是提交分数。然后服务器计算分数并将用户放在高分榜上。
这种想法是否有可能被滥用以获得错误的分数?
我知道这可能不是一个新主意。但是如果它有效,也不可能将其扩展到其他游戏,在那里可以记录所有用户操作。
答案 0 :(得分:1)
人们总会找到一种欺骗的方法,但这似乎是一种合理的对策。您必须考虑您的预期流量水平,因为您的方案需要的资源比仅仅记录客户发送的高分还要多。
但是,作为一个旁白 - 这个游戏听起来很像我的工作(给机器指示所以它执行一些任务)。虽然没有高分榜(虽然,这会很棒)。
答案 1 :(得分:0)
只要机器人程序的行为不依赖于计算机的速度就可以了,如果程序非常小,最多几千字节就可以正常工作;我可以看到欺骗它的唯一方法是,如果一个人克隆了工作空间并运行了一个程序来找到机器人的最佳程序,然后将其放入并提交,或者如果有人发布了解决方案,那么人们就会使用它这些问题可以通过随机化来解决。
(关于速度相关游戏问题的注意事项,如果计算机无法全速运行,游戏可以均匀减速,但如果物理时间步长取决于帧速率,则会出现问题比如跳跃高度随帧率而变化)