我有一台服务器用于非常有竞争力的游戏,涉及金钱。为了使游戏公平,每个客户端必须具有相同的ping。显然,我不能让每个人都有一个短暂的ping。因此,唯一的解决方案是将其固定为高:例如,200ms是可以接受的。
问题是,我如何强制 ping为200ms?为了使其工作,我必须知道我应该多少延迟发送数据包 - 为此,我必须知道客户端的ping。因此,如果ping是60ms,我只能为提供的数据添加140ms的延迟。问题是:我只能通过询问来知道ping,并且客户端可以谎言</ strong>,告诉我他的ping高于它并让我更早地发送数据包。
如何解决这个问题?
答案 0 :(得分:0)
你无法修复ping,它可以一直改变。如果您的客户启用了在ping发现期间,它会显着影响结果。
但也许您不必延迟发送数据包。也许它足以延迟接收或分析它们?这可能会更容易,您只需知道何时发送相应的数据包
还有其他选择:许多在线射击游戏使用称为“unlagged”的功能。客户端发送他的射击和服务器的坐标,根据当前的ping(比方说80ms)计算目标是否会在80ms前被击中。如果是这样,目标被视为命中。但这当然会引入一些像受害者通过墙壁射击的文物。
答案 1 :(得分:0)
通过“ping”我假设你的意思是“网络延迟”,这是可变的并且完全在你的控制之外。你的问题没有意义。