私は Windows Phone 7 用の素敵な無料ゲームを開発しました。これは Domination と呼ばれ、初期のリリースにもかかわらず、大成功を収めています。
今、私は興味深い機能に関するオンラインマルチプレイヤーバージョンを開発していますが、ほとんど終わりに近づいた今、大きな問題に遭遇しています.
奇妙なパケット損失、またはそのようなもの。
問題を再現するためのサンプルがあります。
私はサーバーを持っています。私は Win Form クライアントを持っています 私は XNA クライアントを持っています
問題を再現する手順:
1) サーバー、勝利フォーム、およびゲームを開始します (エミュレーターと WP7 SDK が必要です)。
2) ここで [GO] ボタンを押すと、フォームがサーバーへの TCP チャネルを開きます
3) ここで、エミュレーターの画面を押すと、フォームがサーバーへの TCP チャネルを開きます。
4) これで、スクリーン エミュレーターを押すか、win フォームの [GO] ボタンを押すたびに、サーバーは適切なクライアントで 50 メッセージを送り返します。
さて、問題は
1) win フォームは通常 50 個のメッセージを受信し、1 回の通信で 10 個のパケットを失うことはめったにありませんが、まれです。
2) エミュレーターは、常に 30-40-45 メッセージを失います!!!!!
私は他の方法を試しましたが、何も変わりませんでした..
1 つのヒントとして、10 が 10 ミリ秒である Thread.Sleep(10) をサーバー送信ごとに配置すると、完璧に動作します!!
誰でも私を助けてもらえますか?どこに頭を置けばいいのかわからない!
サンプルは次の場所にあります。