我是一个脚本新手,我一直在使用Navmesh代理为1V1游戏Mova风格的游戏编写专用的UDP服务器。我是不是应该不断更新播放器的变换,或者只在玩家点击移动时才同步,并在其他客户端上setDestination到那个位置?另外,关于黑客攻击,我需要和服务器进行两次检查吗?谢谢。
发布于 2018-09-20 15:47:28
你有几种方法可以做到这一点,我将指出其中的两种方法,并指出其优缺点。
玩家将点击移动位置发送到服务器。
1)服务器然后将该位置发送给所有客户端(包括发起者),然后客户端计算路径并开始插入移动。
优点:低带宽,执行速度快,实现复杂度低。
缺点:客户端将很容易被黑客攻击。
2)服务器计算播放器需要遵循的路径(寻路),并将路径节点发送给客户端。
优点:不可篡改,服务器将在每个玩家的行动中拥有最终决定权
缺点:服务器需要物理或寻路才能工作,这真的是一项很大的工作。在你实现物理的情况下,你将能够在服务器上插入移动,并定期向客户端发送位置来模拟移动。
帮助您实现第二个选项的有用技术是BulletSharp,SharpNav这两种技术都需要您将几何图形(地形)加载到服务器端),以及用于优化客户端-服务器网络物理的Snapshot Compression。
祝你好运,你可以要求任何澄清或帮助。
https://stackoverflow.com/questions/52419579
复制相似问题