ネットワークゲームを作ろうと思っています。私はこれに少し慣れておらず、推測航法とネットワーク遅延の適切な計画をまとめようとして、すでに多くの問題に遭遇しているため、このトピックに関する優れた文献を見てみたい. 私が考えた方法を紹介します。
もともとは、プレイヤーの入力をサーバーに送信し、そこでシミュレートして、ゲーム状態の変化をすべてのプレイヤーにブロードキャストするだけでした。これにより不正行為が困難になりましたが、遅延が大きい場合は、自分のアクションの結果がすぐに表示されないため、制御が少し困難でした.
この GamaSutra の記事には、帯域幅を節約し、クライアントでもシミュレートすることでローカル入力がスムーズに見えるようにするソリューションがありますが、チートプルーフは窓の外に投げ出されているようです. また、プレイヤーが環境を操作したり、岩を押したりし始めたときに何をすべきかわかりません。以前はニュートラルだったこれらのオブジェクトは、一時的にクライアントが PDU を送信する必要があるオブジェクトになるか、複数のプレイヤーが一度に送信する必要があります。誰の PDU が勝つでしょうか? オブジェクトが各プレイヤーによって二重に追跡されなくなるのはいつですか? (推測バージョンと比較するため)? 2 人のプレイヤーが相撲の試合に参加することは絶対に禁じられています (例: 互いに押し合い始める)。
この gamedev.net のビットは、gamasutra ソリューションが不適切であることを示していますが、別の方法について説明しているため、私の共同で岩を押す例を実際には修正できません。私が見つけた他のほとんどのものは、シューティング ゲームに固有のものです。SNES ゼルダのようにプレイするゲーム向けの何かをもっと見たいと思っていますが、もう少し物理学/勢いが関係しています.
- 注: ここで物理シミュレーションについて質問しているわけではありません。他のライブラリがカバーしています。ネットワークの遅延にもかかわらず、ゲームをスムーズかつ反応的にするための単なる戦略。