我正在研究項目以瞭解node.js,並正在尋找一些關於如何處理實時同步用戶數據的建議。假設你有一個二維矩形地圖(大約600x400),其中有多個玩家佔據該地圖上的x,y位置。每個用戶都可以使用箭頭鍵進行導航,並以某種基本方式與其他人進行交互。鑑於這將通過HTTP進行播放,在處理和同步用戶數據以提供最流暢,最快速的體驗方面,最好的設計模式是什麼?實時同步在線遊戲中的多用戶數據的設計模式建議
我能想到的幾個選項,但希望得到一些更多的想法/澄清:
客戶端的位置數據發送到服務器,服務器分發的所有位置的所有客戶端,屏幕上呈現與結果。重複。不利的一面是客戶端的數據往返時間滯後,但好處是它們與所有用戶同步。
客戶端呈現它認爲它經常發生的位置數據發送到服務器,服務器將所有位置分發給所有客戶端,然後使用服務器數據更正來自客戶端數據的屏幕呈現。上行是一個較爲快速的反應,下行是輕微的同步損失。
這兩者的混合,但不是使用(x,y)座標,而是使用[先前的x/y和時間,當前的x/y和時間,在時間間隔建議的x/y ]然後可以用來繪製不斷變換的拋射路徑。看起來這樣實施會很棘手。
任何指針?
使用socket.io進行通訊 – Alfred