2012-10-05 66 views
0

IM製作一個簡單的HTML5遊戲,學習的目的。我希望儘可能通過線路發送儘可能少的數據以保持同步。當我的客戶端和服務器之間發送的比賽狀態,我只想要發送自上次更新什麼遊戲中的狀態改變,以節省帶寬/延遲。同步數據

我可以想出這樣做的唯一方法是在從遠程源接收到的每個更新上創建一個「快照」或遊戲狀態對象的副本,然後在本地處理遊戲狀態並需要發送出通過每個值進行比較的tempory比賽狀態,並只發送差異的遊戲狀態對象的遠程源環......

這是最有效的方式做到這一點?

/****************************/ 
/**** Current game state ****/ 
gameState = { 

    playerOneID: 'XXX-XXX-XXX-XXX', 
    playerTwoID: 'YYY-YYY-YYY-YYY', 
    elapsedTime: 00007, 
    myVariable: 'abcd1234'  
}  

/*******************************************/ 
/**** saves game state from last update recieved ****/ 
tmpGameState = { 

    playerOneID: 'XXX-XXX-XXX-XXX', 
    playerTwoID: 'YYY-YYY-YYY-YYY', 
    elapsedTime: 00003, 
    myVariable: 'abc123'  
}  

回答

0

大多數網絡至少將數據發送到最多1024字節的數據包,並且至少在計劃離開時。

+0

所以你說最小的包是1024個字節(1千字節)? – AndrewMcLagan

+0

即使連接是websocket?您可能是對的,但我發現很難相信,因爲數據是在「需要時」發送的。如果數據少於1KB,剩下的就是協議填充? – AndrewMcLagan