9

私は、クライアント/サーバーのゲーム内プロトコルの設計と最適化におけるレイテンシー補償方法と呼ばれるYahnBernierの2001年の論文から採用されたマルチプレイヤーネットワーキングに関するValveの記事を読んでいます。私はsocket.ioを介してクライアントに接続されたnode.jsサーバーを使用してリアルタイムマルチプレイヤーゲームを作成していますが、以下に詳述する原則に関していくつか質問があります。

エンティティの補間

[補間]は、サーバーの更新をバッファリングし、それらの間のギャップをスムーズに補間して再生することにより、これが通常発生するジッターモーションを防ぎます。また、パケット損失によって引き起こされるグリッチから保護することもできます。

クライアント側の予測

予測とは、サーバーがアクションを確認するのを待たずに、クライアントがローカルプレーヤーのアクションの効果を予測するという概念です。エンティティの予測状態は、サーバーコマンドが到着すると、一致または不一致が検出されるまでテストされます。

ラグ補償

ラグ補正は、コマンドが送信されたときにプレーヤーが見たものを確認するために、[ユーザー入力]を処理するときにプレーヤーの遅延を使用して時間を巻き戻すサーバーの概念です。予測と組み合わせて、ラグ補正は、攻撃者の観点からネットワーク遅延をほぼ排除する点までネットワーク遅延と戦うのに役立ちます。

  • 原則はUDPと同じようにTCPにも適用されますか?また、実装に違いはありますか?エンティティ補間はパケット損失から保護する必要はないことがわかりますが、それだけです。

  • UDPとNode.jsを使用して、サーバーとWebブラウザー間で通信したり、その逆を行ったりすることもできますか?

  • この論文は10年以上前のものですが、これらの原則はまだ使用されていますか、それとも他のテクノロジーが登場していますか?

どんな助けでも大歓迎です。

4

1 に答える 1

2
  • 原則はUDPと同じようにTCPにも適用されますか?また、実装に違いはありますか?エンティティ補間はパケット損失から保護する必要はないことがわかりますが、それだけです。

パケット損失に対処する必要はありませんが、より長い通過時間に対処する必要があります。TCPはUDPよりも低速であり、リアルタイムマルチプレイヤーでそれを軽減する必要があります。これらの原則は、基本的なレベルでもまだ当てはまると思います。

  • UDPとNode.jsを使用して、サーバーとWebブラウザー間で通信したり、その逆を行ったりすることもできますか?

一般的に言って、まだです。少なくとも何らかの形のブラウザ拡張機能やプラグインがなければ、WebSocketはTCPを使用します。そうは言っても、WebRTC(より具体的にはPeerConnection API)が登場します。データチャネルが実装されると、理論的にはUDP通信が可能になるはずです。

  • この論文は10年以上前のものですが、これらの原則はまだ使用されていますか、それとも他のテクノロジーが登場していますか?

それらがもう使用されていないことを聞いて非常に驚きます-あなたが引用した記事は、ゲームプログラマーにとって実際に読む必要があります。私はここ数年この分野の開発に細心の注意を払っていませんが、新しい技術が現れていないことについても同じです。

于 2012-07-12T15:50:05.603 に答える