我想开发一个与Java服务器通信的Flash游戏(使用ActionScript 3)来保存统计数据,分数以及来自播放器的内容。但是,如何创建从Flash文件到服务器的保存通信,以便不可以使用其他工具连接到服务器并假冒操作来欺骗分数。
有没有办法做到这一点?
我的解决方案:
游戏本身连接到管理整个游戏的服务器,所有“计算”和类似的东西都在该服务器上完成,用户所做的每个动作都被发送到服务器,游戏所做的一切都由服务器控制
因此,flash文件唯一能做的就是显示图形。
但是:有更好更安全的方法吗?或者这种闷热是最好的解决方案吗?
因为如果flash文件还可以计算游戏中发生的事情而不仅仅是显示图形,那将会更容易一些。
请告诉我你将如何解决这个问题。
答案 0 :(得分:1)
最终,即使您的服务器完全控制游戏中发生的事情,您仍然无法确保有人不会作弊。 举个例子,任何想要它的人都可以反编译你的游戏并创建一个可以自动对待敌人的“新客户”。 那就是说,我建议您从之前的问题中阅读以下答案:
There is nothing you can do to prevent an attacker from forging high scores
Raising the bar for cheating above what a player would deem worth surmounting
答案 1 :(得分:1)
制作完全安全游戏的唯一方法是在服务器端制作所有游戏逻辑(如您所建议的)并验证从客户端发送的每个操作。客户端角色只是显示图形并进行任何不影响游戏机制的计算。记住客户端的任何代码都是可以破解的。