私は、学習の練習として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. アンドロイドアプリとサーバー間の時刻を同期させる
- 5. Pythonのソケットによる単純なサーバー/クライアント監視ツール
- 6. サーバーとの同期クライアントが
- 7. クライアントのWebページタイマーとサーバーを同期させる方法
- 8. クライアントとサーバーの間で同期をとる方法
- 9. 単純な時間のカウントダウン
- 10. ローカルタイマーベースの時間とNTP時間を定期的に同期させる方法
- 11. 同時gRPCクライアントは、同期/非同期サーバー
- 12. AngularJSサーバーとクライアント間のデータの自動同期
- 13. JavaScriptのカウントダウン時間がサーバーと同期していない
- 14. イベントの単純な時間軸をプロット
- 15. C++で単純なサーバー/クライアントの概念を実装する
- 16. 単純なpython telnetクライアント/サーバの例が機能しません
- 17. クライアントのタイマーを同期させる - TCP
- 18. 単純なC++の時間プログラムエラー
- 19. O(N)単純なPython関数の時間複雑度
- 20. クライアント間のレルムの同期
- 21. 単純なPerlのWebSocketクライアント
- 22. Pythonで非常に単純な非同期アプリケーション
- 23. C++ recv非同期サーバー - クライアント
- 24. iphoneとサーバーの間でデータとキャッシュデータを同期させるための戦略
- 25. openstack-swiftは異なるサーバー間でどのように時間を同期させますか?
- 26. Debianシステムでのログイン時に単純なPython TCPサーバーを実行する
- 27. 単純なクライアント/サーバー、メッセージストリームを暗号化するTCP/IP、SSL
- 28. サーバとクライアント間の同期クロック
- 29. Boost-Asioと同時にサーバーとクライアント
- 30. 時間の経過とともに単純なPloneの統計
他のほとんどのゲームデザイナーの答えは(基本的に)あなたは決して良い同期を得るつもりではないということです。 wowやkinのような大規模なゲームは、クライアント側の行動のほとんどをシミュレートし、都合のよいときに更新をどちらかの方向にプッシュします。 –