2016-03-21 4 views
1

私は割り当てのためのゲームを開発中で、サーバーとクライアントのやりとりをどのように設計するかについてのいくつかの指針があります。理想的には、いくつかのメインサーバーと通信する複数のクライアントインスタンスを持つことができればと思っています。Javaサーバー - マルチクライアントゲームデザイン

具体的には、私は、このメインサーバを私のゲームのバックエンドとして設定することを考えていました。これは、Webブラウザを通じて再生され、ゲームロジックをクライアントに提供します。各クライアントは、必要な初期化を行い、その特定のクライアントがロジックサーバ上で利用可能なゲームロジックにアクセスするためのエントリポイントであり続けるいくつかのゲームクラスのインスタンスとなる。

このデザインは意味がありますか、このようなゲームを実装する方法として実行可能なようですか?

また、スレッドを使用しても意味があります(各ゲームインスタンスはサーバー上の新しいスレッドと同じです)。

+0

[非ブロッキングソケットチャンネル](http://stackoverflow.com/questions/24616774/non-socket-based-java-server/24617983#24617983) –

答えて

1

はい、クライアントごとに個別のスレッドを持つことは意味があります。

は、同様の質問 MultiClient server - Java

を見ていると答えhttps://stackoverflow.com/a/23042582/5828425次...これはあなたのマルチクライアントチャットアプリケーションを実装する方法のアイデアを与えるだろう。同様のAPIを使用してデータを送受信してチャットを送信し、チャットメッセージを受信することができます。チャットメッセージの代わりに、ゲームデータの更新と状態転送を送受信できます。

+2

1:1スレッド:クライアント比率NIO API(またはApache MinaやJBoss Nettyなどのサードパーティライブラリ)を使用してノンブロッキングの代替案を検討する必要があります。 –

+0

はい、私は同意します。メモリとコンピューティングリソースの面で –

+1

遅く受け入れて申し訳ありませんが、私はこの答えから多くの進歩を遂げました。現在のところ、私はスクールプロジェクトであるため、各クライアントにスレッドを使用していますが、スケーラビリティのためにMinaなどのテクノロジを検討することは間違いありません。ありがとう! –

関連する問題