Javascript 手机游戏引擎

Javascript 手机游戏引擎,javascript,networking,mobile,game-engine,multiplayer,Javascript,Networking,Mobile,Game Engine,Multiplayer,我有一个多人手机游戏的想法。 我想到了一款浏览器游戏,这样IOS和Android用户就可以玩了 但是我没有得到什么。。。 如果我主要使用javascript构建游戏,它非常容易受到黑客攻击,不是吗? 我的意思是,如果我向服务器发出一些ajax请求,每个人都可以在internet explorer中打开开发人员工具,为请求设置断点,并在发送请求之前更改一些数据 例如: 用户在游戏中得到一些钱。现在我想将新的金额发送到服务器,以将其保存到数据库中。一些“坏”男孩可能会在发送请求和服务器获得被操纵的值

我有一个多人手机游戏的想法。 我想到了一款浏览器游戏,这样IOS和Android用户就可以玩了

但是我没有得到什么。。。 如果我主要使用javascript构建游戏,它非常容易受到黑客攻击,不是吗? 我的意思是,如果我向服务器发出一些ajax请求,每个人都可以在internet explorer中打开开发人员工具,为请求设置断点,并在发送请求之前更改一些数据

例如: 用户在游戏中得到一些钱。现在我想将新的金额发送到服务器,以将其保存到数据库中。一些“坏”男孩可能会在发送请求和服务器获得被操纵的值之前更改货币值

我说的对吗?或者我可以在游戏中构建任何安全功能

所以我搜索了一个多平台的移动引擎,但是我找不到合适的。 我找到了,但还没有发布

我还可以用其他的发动机吗

  • 我想用Javascript或C编程#
  • 我想为IOS和Android部署游戏
  • 游戏将是2D的(也许以后会有一些3D功能)
  • 我需要多人游戏的网络支持

哦。。。而且我没有多少钱;-)

JavaScript本质上是不安全的,容易受到各种客户端黑客攻击。所有发生的事情都需要在服务器端进行验证

我想用Javascript或C编程#


C#在服务器上运行。JavaScript在客户端上运行。这里没有任何选择。

是的,正如前面指出的那样,javascript是不安全的,但其他引擎也是如此。他们只是需要做更多的工作

这里重要的一点是确保客户端只向服务器发送用户输入,服务器根据输入计算操作并返回响应

例如,如果客户说“我刚打开一个箱子,它给了我100黄金,将其添加到我的余额中”,用户可以很容易地将其破解为“我刚打开一个箱子,它给了我100000黄金,将其添加到我的余额中”

相反,客户会简单地说“我打开了箱子”,服务器会说“箱子里有100块金子,已经加到你的余额里了。”

此外,服务器应该根据发送到服务器的移动请求知道播放器的位置。而不是客户端说“我在这个位置打开了箱子”,它应该说“我在我所在的位置打开了箱子”,服务器应该知道用户在哪里,这样他们就不能欺骗所有的箱子位置并在没有实际移动的情况下打开它们

这也意味着客户端不应该告诉服务器播放器在哪里,而应该简单地给出移动通知。例如“我向北移动了一个街区”,“我向东移动了一个街区”,然后服务器可以记录这些信息,对它们采取行动,并跟踪用户在哪里寻找黑客。如果用户试图在不发送所有移动请求的情况下更改其位置,服务器将不会对玩家伪造的位置进行操作


为了提高速度,可以让客户端在发送移动请求后移动播放器,而不等待服务器响应,但是如果服务器响应“不,您的位置不是您认为的位置,而是您的位置”,则客户端会通过在其一侧更正以匹配服务器来响应。这就是导致游戏跳跃的原因,或者当游戏落后时,游戏会倒退。客户端已更新移动以保持流畅和响应,但由于延迟,服务器未收到移动请求,或延迟收到移动请求,因此客户端必须更正。

谢谢,这对我帮助很大!