私はTCPソケットを使ってネットワークフラッシュゲームに取り組んでいます(TCP b/cを強制的に使用しています)。それは主にテキストベースのゲームなので、ゲームはかなりシンプルです。強制されなければならない唯一の実際の同期は、各クライアントのカウントダウンタイマーです。このタイマーは60秒に開始し、0にカウントダウンし、0でゲーム状態の変化が起こるので、すべてのクライアントが同じ時刻に0になることが重要です。TCP - クライアントの同期
私のサーバーからすべてのクライアントに "start countdown"コマンドを送信してクライアントシステムクロックを使用することができましたが、パケットがドロップまたは遅延した場合、クライアントは他のクライアントと同期できなくなります。また、クライアントが毎秒(またはそれ以下)サーバーに「チェックイン」する必要があり、サーバーがすべてのクライアントの同期を強制するクライアント/サーバープロトコルを実施することもできます。私の懸念事項は効率です。私のゲームはペースが遅いテキストゲームなので、一度に最大30秒間サーバーに送信するデータがクライアントにない可能性があります。
「常にチェックインしている」という状況を避けることはできないかもしれませんが、Flashアプリケーションの複数のクライアント間でタイマーを同期させるための効率的な解決策を紹介してくれることを願っています。
ありがとうございます。
P.S.私はNTPがフラッシュで可能だとは思わない。
返信いただきありがとうございます。私はこれがうまくいくのだろうかと思っている:私は、サーバーが独自のタイマーを開始し、すべてのクライアントに自分のシステムで同じタイマーを開始するように指示している。サーバーは、タイマーのカウントダウンを過ぎて来たクライアント要求を無視して、クライアントが2番目または2番目に遅れていて何らかの無効な要求をしないようにします。 –