2016-04-18 5 views
0

私たちは、モバイル用のリアルタイムネットワークゲームアプリケーションを計画しています。
いくつかの調査と勉強の末、Socketを実装して、サーバーとクライアント(モバイルデバイス)間のTCP接続を使用することにしました。
私たちはプロトコルを書いているので、次の質問に出くわしました。ユーザーのデバイス内またはサーバー内TCPベースのゲームアプリケーションでの計算の実装

例えば、ゲームが終了するまで(できるだけ早く画面に当たる)通信を必要としない5人のプレイヤーの間の短い試合を想像してください。
ラウンドの最後に、クライアントはスコアをサーバーに送信し、アプリケーションは敗者または勝者を表示する必要があります。

計算はどこで行われますか?サーバーがすべてのスコアを収集する場合は、最大値と最小値を計算し、敗者と勝者を返送しますか?または、サーバーが結果を計算するプレーヤーにすべてのスコアを返す必要がありますか?
各戦略の賛否両論は何ですか?

答えて

1

ここでは物事のカップル:

1)は、モバイルアプリケーションのための永続的なソケットを使用しないでください。接続性に余裕があります。

2)HTTPなどの上位プロトコルを使用します。このような低レベルのプロトコルを使用する必要はありません。そうすることで、必要以上に多くの作業をすることになります。これをWebベースのゲームに組み込むか、生のソケットを使用できないデバイスに実装するかどうかについて考えてみましょう。

HTTPはファイアウォールに優しいため、HTTPは標準のポートでHTTPを既に使用できるようになっています。これが最近人気が高い理由です。

3)デバイスについて非常に懐疑的に考えるべきです。一般的には、できるだけクライアントを信用すべきではありません。クライアント上で処理することはできますが、レンダリングに関連する必要があります。一般に、クライアントが悪意のあるものと仮定すると、n層アーキテクチャアプリケーションには良いアプローチです。特にゲームで。

+0

「あまりにも多すぎる」とはどういう意味ですか?私はクライアントからサーバーにメッセージをプッシュできるようにソケットを使用する必要がありますが、どのようにHTTPを使用してそれを達成できますか? – itaied

+0

HTTP POST:https://en.wikipedia.org/wiki/POST_(HTTP)http://www.drdobbs.com/web-development/restful-web-services-a-tutorial/240169069 –

+0

をご覧ください。私は誤ってクライアントからサーバーに書きましたが、私はサーバーからクライアントにプッシュするつもりでした。私はwebsocketがそれを達成できると知っていますが、それは1つの接続しか管理しません。 – itaied

関連する問題