MMORPG中客户端/服务器之间的消息速率

时间:2011-11-16 13:19:47

标签: java client mmo

客户端应该多久向服务器发送一次请求? 服务器应该多久向客户端发送更新?有什么建议吗?

3 个答案:

答案 0 :(得分:3)

在你到达那里之前别担心。从频繁的消息开始,然后在扩展时,如果有必要,可以开始降低消息的频率(此时你应该使用分析来识别热点)。

如果你真的想知道,那么你想到的任何游戏都要开启并测试出来。此外,大多数大型MMORPG没有使用标准Web请求/响应,并且可能与非常优化的二进制协议直接套接字连接。

然而,一旦你发现需要它,你可以切换到另一件事。

答案 1 :(得分:2)

正如两位网友指出的那样,你的问题很模糊。您正在实施的MMO类型以及您传递的信息类型非常重要。

话虽如此,在MMORPG世界中,即使在这样的位置只有一个在线玩家,也需要在客户端和服务器之间进行解决。

首先,您应该避免在客户端和服务器之间传输图片和音频。客户应该已经拥有了所需的一切。

其次,每当世界发生某些变化(用户可以看到)时,服务器就会告诉客户端(新怪物,新玩家,移动,攻击)。 客户端采取的每个操作都应该通知服务器。

第三,你应该尽量只保留所需的信息。不要多次发送任何内容并避免发送已知的内容(如果有人攻击,但不移动,请勿发送位置信息。这是多余的,而且浪费带宽和处理时间。)

希望它有所帮助!

答案 2 :(得分:1)

坦率地说,这取决于游戏的性质。人们认为往返时间超过0.1秒作为延迟,而往返时间超过1秒是一个重大问题。

http://www.useit.com/papers/responsetime.html

您的留言率需要考虑到这一点。但是,如果您能够建立真正的双向通信(通用TCP通道就足够了),它可能甚至不相关。

如果我要编写这样的游戏,我会建立25ms的事件收集延迟:

  • 基本上,如果需要传达一个事件,我会再等25ms来收集可能最终被归入同一网络数据包的所有后续事件。
  • 如果您在同一个大陆(并且在宽带上),接收方有25ms的事件收集延迟,以及25ms网络延迟回到服务器,那么您还有25ms的网络延迟。