2011-11-16 66 views
1

客户端应该多久向服务器发送请求? 服务器应该多久向客户端发送更新?有什么建议吗?MMORPG中客户端/服务器之间的消息速率

+3

你的问题太含糊而且开放。尽量让它更专注或具体。 –

+1

最简单的答案是:尽可能多的。像问题一样含糊不清。 – Ikke

回答

3

在你到达那里之前,不要担心这一点。从频繁的消息开始,然后随着规模的扩大,如果有必要的话,可以开始减少消息传递的频率(至此,您应该使用分析来确定热点)。

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

但是,这是另一件事,你可以切换到一旦你找出它需要。

2

正如两位网友指出的,你的问题很模糊。您正在实施的MMO类型以及传递的信息非常重要。这就是说,在MMORPG的世界里,即使在这样一个位置上只有一个玩家在线时,也需要在客户端和服务器之间进行很多工作。

首先,您应该避免在客户端和服务器之间传输图片和音频。客户应该已经拥有了它所需要的一切。第二,每当世界发生变化(用户可以看到)时,服务器就会把它告诉客户端(新怪物,新玩家,移动,攻击)。 客户端所采取的每一个行动都应该通知服务器。

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

希望它有帮助!

1

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

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

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

如果我写这样的比赛,我将建立一个25ms的事件收集延迟:

  • 基本上,如果一个事件需要传达,我会再等25毫秒以收集可能结束所有后续事件被集中到同一个网络数据包中。
  • 然后,如果您在同一大陆(宽带上),接收端的事件收集延迟时间为25毫秒,网络延迟为25毫秒,则网络延迟时间为25毫秒。
相关问题