学習目的で簡単なhtml5ゲームを作成しています。同期を保つために、できるだけ最小限のデータをネットワーク経由で送信したいと思います。クライアントとサーバー間でゲームの状態を送信するとき、帯域幅/遅延を節約するために、最後の更新以降にゲームの状態で変更されたものだけを送信したいと思います。
これを行うために私が理解できる唯一の方法は、リモートソースから受信した更新ごとにゲーム状態オブジェクトの「スナップショット」またはコピーを作成し、ゲーム状態がローカルで操作されてリモートに送信する必要があることです。ソースはゲーム状態オブジェクトをループし、各値を一時的なゲーム状態と比較して、違いのみを送信します。
これはこれを行うための最も効率的な方法ですか?
/****************************/
/**** 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'
}