0

ゲームを開発していて、マルチプレイヤー オプションを追加しようと考えています。Snake などのリアルタイム ゲームなので、スプライトの位置を非常に高速に更新しています。

while (isRunning) {
   ...
   if (sprite instanceof PlayerSprite) {
            PlayerSprite player = ((PlayerSprite) sprite);
            collisionManager.checkCollision(player, map, elapsedTime, currTime);
            updatePosition(player, elapsedTime);
            player.animeUpdate(elapsedTime);
   }
   ...
}

最初に RMI を試してみました。すべての位置をオブジェクトに格納し、リモートにしました。したがって、サーバーとクライアントの両方がそれを更新できます。しかし、私が言ったように、リアルタイムで更新する必要があります。そして、RMI はこれを解決できるようには見えません。でも本当に初心者なのでよくわかりません。

私の質問は、RMI または単純な IO (ソケット) がリアルタイム ゲームに最適なソリューションでしょうか?

ソケットの方が優れている場合: ObjectOutput/ObjectInput を介して位置格納オブジェクトをクライアントに送信し、オブジェクトを更新 (および画面に描画) してから、更新されたオブジェクトをサーバーに送り返すことはできますか?

前もって感謝します:)

4

3 に答える 3

1

速度が必要な場合は、JSON シリアライゼーションよりもはるかに遅いため、 Java シリアライゼーションを使用しないでください。

JSON は問題ありません。個人的には、勉強が必要ですが、Google Protocol Buffers を利用するAkka Remote Actorsを試してみます。

于 2013-10-25T19:49:08.317 に答える