こんにちは。 今回はFPSで主流の(主流だった?)ネットコード(client side predictionとrewind and replay)を実装してみました。Processingシリーズ第2弾です。 本題の前に応答性と一貫性に言及しておきたいと思います。ふつうネットワークアプリケーションは遅延があることで、先のふたつのバランスをとるという問題に直面します。 AさんとBさんが遅延のあるネットワークを介して撃ち合うFPSを例にとります。 応答性は、キーを押せばキャラクターがすぐに移動を始めるとか、トリガーを引くと弾が発射され命中したかすぐに判明するとか、そうしたキー入力から画面表示までの経過時間と考えてください。 一貫性とはAさんとBさんが常に同じ状態を見ているということです。遅延がとても小さければ、これは簡単に実現できます。では遅延が大きい環境で、Aさん がBさんを撃ち、Bさんはそれ