3

私は現在、主要な脳のおならを持っています:)。

私の計画は、Javaで単純なスイングベースの三目並べアプリケーションを構築することでした。私はアプリで1人のプレーヤー、2人のプレーヤーのローカル、2人のプレーヤーのリモートオプションを許可するように計画していました。1人用と2人用のローカルバージョンは正常に機能していますが、2人用のリモートオプションに頭を悩ませています。

Netbeansプロジェクトで注目に値するのは、ロジックとは別のパッケージにGUIが含まれていることです。

私はすべてのオプションについて考えて頭を揚げました。

  1. クライアントサーバーアーキテクチャを使用するのと同じですが、クライアントがロジックとは異なるPCで実行されている場合、理由もなく1人のプレーヤーと2人のプレーヤーのローカルバージョンの速度が低下します。

  2. アプリケーション全体(GUI +ロジック)をホームワイヤレスネットワーク上のさまざまなPCに分散させる必要があると思います。そうすれば、プレイヤーは不必要なラグタイムなしに1人と2人のローカルゲームをプレイし、2人のリモートバージョンで他の誰かが利用できるかどうかを確認できます。私がこのように行った場合の問題は、誰のロジックがサーバーとして機能するかということです-それはどのように機能しますか?

これは単なるネットワークゲームではないため、オプション2はこれを実行するための最良の/唯一の方法ですか?

これについて他の方法はありますか?

リモートゲームオプションだけで三目並べゲームを行うのは、クライアントサーバーアーキテクチャの単純なケースですが、同じアプリに1人のプレーヤーとネットワークバージョンを配置するのは難しいことです。

ありがとう、

ポール。

4

2 に答える 2

1

技術的には、実際のサーバーなしでこれを行うことができます-クライアント/ホストのようにすることができます。

ユーザーがホストになりたい場合は、UDPブロードキャストパケットを送信し、IPとプレイしたいゲームに関する情報を送信します。参加したい人は誰でもこのパケットをキャッチできます。

ユーザーが参加したいときは、ブロードキャストパケットを聞いて、受信したパケットに参加します。

すべてのプレイヤーは自分のロジックを実行し、他のプレイヤーに自分の動きを送ることができます-相手はその動きが合法であることを確認するだけです-誰かがあなたのゲームをハックしたいと思うかもしれないので:D

于 2012-08-11T14:03:05.447 に答える
0

アプリケーションは各クライアントにインストールする必要があります。リモート2プレーヤーモードの場合は、独自のP2Pプロトコルを実装して、あるプレーヤーから別のプレーヤーにアクションを送信し、ゲームの進化を追跡する必要があります。

一言で言えば、各クライアントはローカルでゲームの独自のモデルを持っている必要があり、ローカルプレーヤーが「移動」するか、リモートユーザーが(プロトコルを介して)「移動」を送信するたびに更新されます。

もちろん、スコアやポイントなどの統計を追跡する必要がある場合は、これを保存するための中央サーバーが必要になります。ただし、実際のゲームはサーバーを必要とせずにP2Pモードで実行する必要があります。

于 2012-08-11T14:05:33.547 に答える