-1
假设我想通过只发送位置变化而不是绝对位置来加速实时游戏中的网络连接。我该如何处理丢包?如果丢弃了一个数据包,则在下一次更新之前,该对象的位置将会出错。状态变化和数据包丢失
假设我想通过只发送位置变化而不是绝对位置来加速实时游戏中的网络连接。我该如何处理丢包?如果丢弃了一个数据包,则在下一次更新之前,该对象的位置将会出错。状态变化和数据包丢失
考虑到@ casperOne的评论,这就是为什么有些游戏会因为糟糕的连接而“失灵”的原因之一。
一个可能的解决方案是如下:
xx
毫秒。放置一个看门狗定时器,该定时器每隔xx毫秒发送一个对象的“至少”位置,或每当计算一个新位置时。要做到这一点,您需要按照您更新的顺序维护一个项目列表,并在其中旋转。
这意味着快速更改会立即反映出来(如果对象每ms更新一次,您可能会经常收到一个数据包,因此几乎没有任何滞后),但在再次获得机会之前,它绝不会超过xx ms具有更新的状态。
如果您不能容忍数据包丢失,请使用TCP/IP而不是UDP ... – Floris 2013-04-07 19:21:04
@弗洛里斯这只是不缩放。许多MMORPG必须处理这个*非常*的事情,而且他们通过UDP进行处理。 – casperOne 2013-04-10 12:01:48