点对点游戏网络
Peer to Peer Game Networking
我做过一个游戏,大致实现了P2P联网。我目前每 20 秒发送一次数据包。目前我正在为每个 NPC 发送一个数据包,告诉客户端它的当前位置,所以如果我有 20 个 NPC,那就是每 20 秒发送 20 个数据包。
我的问题是我应该每 20 秒发送一个包含所有当前 NPCS 位置的数据包吗?如果是这样,这个数据包应该有最大尺寸吗?也欢迎任何有关游戏点对点网络的资源。
这取决于您使用的协议是 UDP 还是 TCP。在游戏中,尤其是 FPS,UDP 往往是首选协议,因为它 "chatty" 比 TCP 少得多。权衡是 UDP 可能会丢失数据包,因为无法保证交付。
考虑到这一点,您应该在每个数据包中发送所有位置数据。这样,如果你在这里或那里丢失了一个数据包,游戏可以继续,你将大部分同步。
对于数据包大小,请尽可能小。您肯定希望避免一次更新需要多个数据包,尤其是使用 UDP 时。您的数据集听起来并不大,但我只是在猜测。
我做过一个游戏,大致实现了P2P联网。我目前每 20 秒发送一次数据包。目前我正在为每个 NPC 发送一个数据包,告诉客户端它的当前位置,所以如果我有 20 个 NPC,那就是每 20 秒发送 20 个数据包。
我的问题是我应该每 20 秒发送一个包含所有当前 NPCS 位置的数据包吗?如果是这样,这个数据包应该有最大尺寸吗?也欢迎任何有关游戏点对点网络的资源。
这取决于您使用的协议是 UDP 还是 TCP。在游戏中,尤其是 FPS,UDP 往往是首选协议,因为它 "chatty" 比 TCP 少得多。权衡是 UDP 可能会丢失数据包,因为无法保证交付。
考虑到这一点,您应该在每个数据包中发送所有位置数据。这样,如果你在这里或那里丢失了一个数据包,游戏可以继续,你将大部分同步。
对于数据包大小,请尽可能小。您肯定希望避免一次更新需要多个数据包,尤其是使用 UDP 时。您的数据集听起来并不大,但我只是在猜测。