2009-12-12 18 views
6

私は、学習の練習としてPythonで書いている小さなマルチプレイヤーゲームの始まりを持っています。現在のところ、サーバーは10 fpsで動作し、クライアントは好きな速度で動作します。これは帯域幅を節約するのには効果的ですが、入力が発生したときにクライアントがサーバーに通知しない限り、すべての入力が100ms間隔で量子化されます。これらの修正を行うためにクライアントとサーバーの間の時間をどのように同期させることができますか?ここでの大きな障害は、ping時間を決めて補償する必要があることです。単純なpythonソケットベースのサーバーとクライアントの時間を同期させる

+0

他のほとんどのゲームデザイナーの答えは(基本的に)あなたは決して良い同期を得るつもりではないということです。 wowやkinのような大規模なゲームは、クライアント側の行動のほとんどをシミュレートし、都合のよいときに更新をどちらかの方向にプッシュします。 –

答えて

1

分散ネットワーク物理の一般的な方法(伝統的なクライアントの予測なし)については、偶然、excruciatingly fine blog postに遭遇しました。私は強く推奨しています.Fiedlerが数年前に発表したGDCスライドと一緒にお勧めします。がんばろう!

+0

ありがとう、私はシリーズが不完全だった昔からそれらのブログ記事を覚えています。ネットワーキングの最終的なものは素晴らしいですし、多くを助けるべきです! – Alex

0

これは非常に興味深い質問です。残念ながら、簡単な答えはありません。あなたは問題を十分に理解しておかなければならず、という十分な解決策がアプリケーションに十分にあるようにしてください。

私の最初の本能は、NTPサーバーからマシンクロックを設定するためのNetwork Time Protocol (NTP)がこの問題に対処したことでした。そこで扱われる問題の1つは、packet delay variationを含むJitter Buffersです。これはRFC 3393; IP Packet Delay Variation Metric for IP Performance Metrics (IPPM)で詳述されています。

+0

私はNTPを調べます。それは実際に私の状況についていくつかの洞察を提供するかもしれません。 – Alex

関連する問題