私は、学習の練習としてPythonで書いている小さなマルチプレイヤーゲームの始まりを持っています。現在のところ、サーバーは10 fpsで動作し、クライアントは好きな速度で動作します。これは帯域幅を節約するのには効果的ですが、入力が発生したときにクライアントがサーバーに通知しない限り、すべての入力が100ms間隔で量子化されます。これらの修正を行うためにクライアントとサーバーの間の時間をどのように同期させることができますか?ここでの大きな障害は、ping時間を決めて補償する必要があることです。単純なpythonソケットベースのサーバーとクライアントの時間を同期させる
答えて
分散ネットワーク物理の一般的な方法(伝統的なクライアントの予測なし)については、偶然、excruciatingly fine blog postに遭遇しました。私は強く推奨しています.Fiedlerが数年前に発表したGDCスライドと一緒にお勧めします。がんばろう!
ありがとう、私はシリーズが不完全だった昔からそれらのブログ記事を覚えています。ネットワーキングの最終的なものは素晴らしいですし、多くを助けるべきです! – Alex
これは非常に興味深い質問です。残念ながら、簡単な答えはありません。あなたは問題を十分に理解しておかなければならず、という十分な解決策がアプリケーションに十分にあるようにしてください。
私の最初の本能は、NTPサーバーからマシンクロックを設定するためのNetwork Time Protocol (NTP)がこの問題に対処したことでした。そこで扱われる問題の1つは、packet delay variationを含むJitter Buffersです。これはRFC 3393; IP Packet Delay Variation Metric for IP Performance Metrics (IPPM)で詳述されています。
私はNTPを調べます。それは実際に私の状況についていくつかの洞察を提供するかもしれません。 – Alex
- 1. クラウド上の単純なソケットベースのサーバー
- 2. クライアントとサーバーとの間でデータを同期させますか?
- 3. ゲーム(MMORPG)クライアントとサーバーの時間/イベントを同期させますか?
- 4. クライアントのWebページタイマーとサーバーを同期させる方法
- 5. クライアントとサーバーの間で同期をとる方法
- 6. AngularJSサーバーとクライアント間のデータの自動同期
- 7. クライアントのタイマーを同期させる - TCP
- 8. C++で単純なサーバー/クライアントの概念を実装する
- 9. 単純なC++の時間プログラムエラー
- 10. iphoneとサーバーの間でデータとキャッシュデータを同期させるための戦略
- 11. Debianシステムでのログイン時に単純なPython TCPサーバーを実行する
- 12. サーバとクライアント間の同期クロック
- 13. クライアント/サーバ間でテキストを同期させるアルゴリズム
- 14. ローカルとサーバーDB間のデータの同期
- 15. サーバ間の同期時間
- 16. 単純なクライアント/サーバー、メッセージストリームを暗号化するTCP/IP、SSL
- 17. 単純なRESTクライアントの単体テスト
- 18. 単純なHttpサーバーのHttpListener
- 19. Python:単純な関数内から予期せぬ印刷値
- 20. MongoDBとApache Solr間のデータを簡単に同期させる方法
- 21. Juggernautを使用してクライアント側のタイマーを同期させる際の待ち時間を処理する
- 22. TCP/IP経由で2台のPC間で時刻を同期させるサーバーなし
- 23. GWTクライアントとサーバーのモデルを同期する
- 24. のiCloud(不正なファイルディスクリプタ)との単純なテキストファイルを同期することはできません
- 25. iPhoneとRESTサーバーを同期させるためのコード
- 26. サーバーとJavaScriptのカウントダウンタイマーを同期させる方法
- 27. C#プログラムWindowsとLinuxの時間同期
- 28. 単純なバックプロパゲーションニューラルネットワークアルゴリズム(Python)
- 29. Pythonの単純なIF文
- 30. Pythonの単純な反復
他のほとんどのゲームデザイナーの答えは(基本的に)あなたは決して良い同期を得るつもりではないということです。 wowやkinのような大規模なゲームは、クライアント側の行動のほとんどをシミュレートし、都合のよいときに更新をどちらかの方向にプッシュします。 –