UDP如何工作?在线游戏中的例子

时间:2013-05-31 07:30:00

标签: networking udp

所以我在这里发帖this:我有点困惑,所以这是我的另外一个问题:

UDP如何处理丢失的数据?因为它表示UDP不关心数据是否会到达目的地或数据排序。

在线游戏的例子中,UDP如何处理数据丢失?我的理解是,当数据丢失时,让我说角色的手无法在在线游戏中看到?或者我养殖多年的 warinlaive 失去了? LOL

并且如果排序不重要那么我可以说我的角色头部会被搞砸,或者身体会脱臼,就像那样。

那么有人可以为我澄清这个吗?

1 个答案:

答案 0 :(得分:2)

游戏中UDP的一个更好的例子是位置信息。

在这种情况下,字符的位置每秒发送几次,并且数据包是否丢失并不重要,因为另一个数据包将很快再次发送。当你将它与一个进行某种级别的插值和外推的游戏引擎相结合时,你可以通过零星的数据实现平滑的运动。

如果您因为数据包重新订购而收到较旧(时间)的字符位置,则重新订购时,您只需将其丢弃,因为您已经获得了较新的值。

以你的战利品为例 - 这些信息可能是通过TCP或使用UDP的可靠包装器发送给你的客户端。

请查看http://code.google.com/p/lidgren-network-gen3/以了解C#UDP网络库,该库是专为游戏设计的。它通过UDP提供各种不可靠和可靠的通道,并且可以让您了解UDP在游戏中的使用方式。