2011-11-16 96 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毫秒。
相關問題