0

学習目的で簡単な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'    
}    
4

1 に答える 1

0

ほとんどのネットワークは、少なくとも1024バイトのパケットにデータを送信し、少なくとも送信がスケジュールされているときに送信します。

于 2012-10-05T01:53:27.487 に答える