2012-03-25 11 views
1

私は、マルチプレイヤーとサーバーへの接続を扱う簡単なアンドロイドゲームを作成しています。これは私のゲームで達成したいものです。クライアント/サーバーネットワーキングゲームの設計とロジック

クライアントはキーストロークの移動をサーバーに送信します。

Serverは、状態や計算を更新し、入力を受け付け、クライアントに新しい位置を返します

クライアントが新しい位置を取得し、画面を更新します。

すでにコードが書かれているので、私のスレッドのうちの1つがキーストロークをサーバーに送信し、新しい位置を待ってから画面を更新します。事は、プレーヤーの動きの間に遅れがあることです。私はそれが待ち時間と関係していると思う。私はまた、サーバーからデータを送受信するために2つのスレッドを試し、もう1つは画面を更新しています。しかし、それは私の待ち時間の問題を解決しませんでした。

誰でもネットワーキングゲームの良いデザインを提案できますか?

早期予測が必要ですか?

データを取得してレンダリングするには別のスレッドが必要ですか?

P.Shisはネットワークゲームを初めて作成したので、何をしているのか分かりません。

答えて

0

私が使用することを好む構造は、クライアント側でグラフィックスとロジックを更新してから、サーバーにデータを送受信する1つのスレッドを持つことです。レイテンシに問題がある場合は、データを継続的に送信したい場合は、それを解決する魔法の選択肢があります。私はリアルタイムでネットワーク上の座標送られたときにこのオプションは、私の遅延の問題を解決し

mySocket.setTcpNoDelay(true); 

(少なくともこれは、Javaを使用している場合、構文は次のとおりです)。

編集:私は、デフォルトでTCPが送信する前にデータをまとめてまとめていると思うので、小さな更新を高速に送信したい場合には問題になる可能性があります。

関連する問題