私は node.js を学習するプロジェクトに取り組んでおり、リアルタイムでユーザー データの同期を処理する方法についていくつかの提案を探していました。
2D の長方形のマップ (およそ 600x400) があり、多数のプレイヤーがそのマップ上の x、y 位置を占めているとします。各ユーザーは、矢印キーを使用して移動し、基本的な方法で他のユーザーと対話できます。これが HTTP 経由で再生されることを考えると、ユーザー データの処理と同期に関して、最もスムーズで機敏なエクスペリエンスを提供するための最適な設計パターンは何でしょうか?
いくつかのオプションを考えることができますが、さらにいくつかのアイデア/説明をいただければ幸いです。
クライアントは位置データをサーバーに送信し、サーバーはすべての位置をすべてのクライアントに配布し、画面は結果とともにレンダリングされます。繰り返す。欠点は、データの往復にかかる時間によってクライアント側が遅れることですが、利点は、すべてのユーザーと同期されることです。
クライアントは常にあると思う場所をレンダリングし、位置データをサーバーに送信し、サーバーはすべての位置をすべてのクライアントに配布し、クライアント データからの画面レンダリングはサーバー データで修正されます。良い面は反応が速く、悪い面は同期がわずかに失われることです。
2 つのブレンドですが、(x,y) 座標を使用する代わりに、[前の x/y と時間、現在の x/y と時間、時間間隔での推奨 x/y] のベクトルを使用します。常に変化する発射体の経路を描くために使用されます。これを実装するのは難しいようです。
ポインタはありますか?