移动游戏引擎

Ale*_*lex -1 javascript mobile networking multiplayer game-engine

我有一个多人手机游戏的想法.我想过一个浏览器游戏,所以IOS和Android用户都可以玩它.

但我没有得到一些东西......如果我用大多数javascript构建游戏,它对黑客攻击很有攻击性,不是吗?我的意思是,如果我向服务器做一些ajax请求,每个人都可以打开Internet Explorer中的开发人员工具,为请求设置断点并在发送请求之前更改一些数据.

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

这是正确的我在说什么?或者我可以在游戏中构建任何安全功能?

所以我搜索了一个多平台移动引擎,但我找不到合适的移动引擎.我找到了spaceport.io但它尚未发布.

还有其他我可以使用的引擎吗?

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

哦......我没有多少钱;-)

Flo*_*der 5

是的,正如所指出的那样,javascript是不安全的,但其他引擎也是如此.他们只需要做更多的工作来破解.

这里最重要的一点是要保证客户端只发送用户输入回服务器,服务器是基于输入来计算的操作,并返回响应.

例如,如果客户说"我只是打开一个胸部并且它给了我100金,将它添加到我的余额中",用户可以轻易地破解它说"我只是打开了一个胸部,它给了我10万金币,添加到我的余额".

相反,客户会简单地说"我打开了胸部".并且服务器会说"胸部有100金,它已被添加到你的天平."

此外,服务器应该知道播放器基于发送到服务器的移动请求的位置.而不是客户说"我在这个位置打开了胸部",它应该只是说"我打开了我所在的胸部",服务器应该知道用户在哪里,所以他们不能只是欺骗所有胸部位置并打开他们都没有实际移动.

这也意味着客户端不应该告诉服务器玩家在哪里,而只是提供移动通知.IE"我向北移动了一个街区." "我向东移动了一个街区"然后服务器可以记录这些,对其进行操作,并跟踪用户在哪里寻找黑客.如果用户试图在不发送所有移动请求的情况下改变他们的位置,则服务器将不会对玩家欺骗的位置起作用.

出于速度目的,可以让客户端在发送移动请求之后移动播放器而无需等待服务器响应,但如果服务器响应"不,你不在你认为的位置,而是在这里"客户端响应通过纠正它的一面来匹配服务器.这就是导致游戏跳跃的原因,或者当它们滞后时向后跳跃的原因.客户端已更新的动作来保持流畅性和响应,但由于滞后性,服务器没有得到运动的要求,或让他们晚了,所以客户端必须纠正.