1

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

我知道,出于安全目的,作为一种通用的反黑客技术,客户端应该包含尽可能少的逻辑数据(因此它不能被操纵和利用)。

我的问题是这样的:假设我将数据从服务器发送到客户端(人们认为这种情况经常发生)。在接收到数据包的客户端代码中,我将所述数据包解析为其“块”,并将该数据逻辑地存储在其准确的对应变量中。假设其中一个变量存储了玩家的健康状况。这是否意味着这个变量实际上不能用于计算——因为它是一个逻辑数据块(因此可以操作,因为它存储在客户端上),唯一的选择是读取包含如果我需要健康金额,与健康相关的信息?

感谢您花时间阅读我的问题。-布莱恩

4

2 回答 2

1

我会说这取决于您将其用于哪些计算。对于不重要的事情,比如 UI 显示,您可以安全地使用局部变量。如果您使用它来确定玩家是否死亡,那么您需要让服务器做出该确定。在高延迟情况下,您可以暂时使用局部变量,直到服务器能够更新客户端;但客户端的版本不应该规范版本。

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

于 2013-01-13T16:40:24.290 回答
0

我这样做的方式是让服务器根据在客户端上执行的操作执行它自己的计算。客户端可以执行相同的操作来为客户端提供更快的更新,但服务器应该是所发生情况的可信确定者。这意味着您不需要在客户端和服务器之间进行太多交互来仔细检查发生的所有事情。

于 2013-01-13T17:58:59.947 回答