0

私は Java プログラミングの初心者ではありません。プロジェクトをどのように進めることができるか知りたいです。

TCP/IP プロトコル ソケット システムを使用して Java で集中型ゲーム システムを開発したいと考えています。プレーヤーの詳細を取得し、ゲーム ウィンドウに情報を表示する必要があります。

これらは私の基準です:

参加できるプレイヤーの最大数と最小数は?? ゲーム ボードの特定の状態の前でのサーバーの動作: 1 人または複数のプレーヤーにショットを提供するように招待するか、対戦相手の打撃を通知するか、またはプレーヤーがパーティー オーバーを宣言できるか? プレーヤーからショットが提供されたときにゲームを更新する方法???

私はここで率直な答えを探しているわけではありません。プロジェクトを開始するのに役立つガイダンスを探しています。TCPプロトコルを使用したマルチクライアントマルチインスタンス集中サーバー用のツールはありますか???

4

2 に答える 2

1

プレイヤーの最小数は 0 だと思います。

最大値は依存する可能性があります。-帯域幅、何千人ものユーザーが必要な場合は、かなりのアップロード速度が必要です。- 各ユーザーの管理にどれだけの作業が必要か。1 つのサーバーで 10,000 人のユーザーに接続できますが、機能を追加するにつれて、サーバーあたりのユーザー数は 1000 人、場合によっては 100 人まで減少します。

IO フレームワークの選択は、帯域幅が無制限で、接続ごとに簡単な作業 (通常byte[]はゼロのコピー) がある場合に大きな違いをもたらします。実際のアプリケーションでは、それほど重要ではありません。後でより良い解決策を見つけた場合に備えて、どの解決策を選んでも簡単に交換できるようにすることをお勧めします。

TCPプロトコルを使用したマルチクライアントマルチインスタンス集中サーバー用のツールはありますか???

使用される一般的なツールは JMS ですが、ゲームは使用しない領域の 1 つです。ActiveMQ を使用するとすぐに起動して実行できるようになりますが、後で簡単に交換できることを確認してください。

于 2012-03-25T08:34:27.360 に答える
1

まずネットワーク層

java、mina、netty などのネットワーク ライブラリがいくつかあります。

これらのネットワーク ライブラリの助けを借りて、ネットワークの問題を簡単に解決できます。

そしてロジック層

サーバーメモリ内のすべてのオブジェクトを維持し、user_contextそれらのそれぞれを対応する tcp 接続にバインドする必要があります。ほとんどの場合、user_contextオブジェクトは RB ツリーのハッシュマップ/辞書として維持されます。

そのため、いくつかのイベントが発生すると、対応するユーザー/クライアントを見つけてメッセージを送信できます。

于 2012-03-25T04:12:32.603 に答える