我正在创建2D MMORPG游戏(以applet形式),但我有一个简单的问题。

我了解,出于安全目的,作为一种常规的反黑客技术,客户端应包含尽可能少的逻辑数据(因此,不能对其进行操纵和利用)。

我的问题是:假设我将数据从服务器发送到客户端(这种情况经常发生,人们会认为这是假定的)。在接收到数据包的客户代码中,我将数据包解析为“块”,并将该数据逻辑地存储在其精确的对应变量中。可以说,变量之一存储了玩家的健康状况。这是否意味着该变量实际上不可用于计算-从某种意义上说,由于它是逻辑数据(并且由于它存储在客户端上,因此可以进行操作),并且唯一的选择是读取包含以下内容的数据包:如果我需要健康量,则有关健康的信息?

感谢您抽出宝贵时间阅读我的问题。
-布莱恩

最佳答案

我会说,这取决于您使用它的计算方式。对于不重要的事情,例如UI显示,您可以安全地使用局部变量。如果使用它来确定播放器是否已死,则需要让服务器做出确定。在高延迟情况下,您也许可以临时使用局部变量,直到服务器能够更新客户端为止;但是客户端的版本绝不能是规范版本。

详细说明:使用局部变量,其中唯一受影响的人是玩家,因此他们是否操纵自己的数据并不重要。在所有其他情况下,请依赖服务器变量。

10-05 18:27
查看更多