2012-03-08 60 views
0

我想知道是否有可能構建一個能夠處理使用WASD控件的遊戲中很多玩家的單個遊戲服務器(正如我們所知,WASD在網絡比點擊)。我不是在談論服務器端代碼的性能(因爲我知道它可以很容易地做到這一點),但我想知道網絡是否會允許你這樣做。我不是在談論許多服務於不同的房間或類似的東西的遊戲服務器,因爲它基本上是一個不同的故事。WASD遊戲服務器的網絡要求

因爲這是一款遊戲,它不會從CDN中受益,並且會被迫依靠單一服務器。我想如果玩家位於服務器周圍(例如僅在美國或歐盟),但它可以在地球的另一端播放,例如澳大利亞,那麼這將是有能力的。

另外,我想知道從歐盟到美國或全球各地的信號需要多長時間?什麼是延遲?我聽說有些人報告延遲時間超過一秒鐘左右,這對WASD來說是無法播放的。

回答

1

您的遊戲服務器不需要接收每個按鍵事件。這就是客戶的要求。您的客戶通過例如更新您的玩家位置來處理和響應輸入事件。新的位置數據是發送給服務器的數據,通常是從最後一個位置開始的增量。

總之,這裏是一個基本過程:

  • 玩家按下w^
  • 客戶端軟件處理W,和移動播放器的正向實體
  • 客戶端軟件包了玩家的實體狀態並將其發送到服務器
  • 服務器將玩家的狀態變化應用到其內部狀態
    • 這是您應該檢查的地方恩斯喜歡「這個運動是否可行?」
  • 服務器複製新的實體狀態,所有其他客戶端
  • 這些客戶端集成了新的實體狀態。如果你有興趣來更新其內部狀態
  • 沖洗
  • 重複

從某些出貨源處進行拆除時,請查看how Doom 3 manages things