Opengl と Jbox2d を使用して、Java でリアルタイム 2D ゲームを作成しています。
ネットワーク コンポーネントのコーディングを開始したいと考えています。
box2d を使用していますが、私のゲームは非常に小さく、Kryonet ライブラリを使用してベアボーン アーキテクチャを作成したいと考えています。
プログラム自体はチェスのような「対戦ゲーム」です。私が考えることができる最も論理的なシステムは、すべてのプレイヤー データを格納する専用サーバーを用意することです。
PlayerA と PlayerB は、コンピューター間の TCP リンクを容易にする専用サーバーに接続します。
試合が完了すると、両方のプレーヤーが結果のデータを専用サーバーに送り返します。専用サーバーは認証を行い、それぞれのプレーヤー データを保存します。
よく知られている方のために説明すると、Diablo2 は同様のセットアップを実装しました。
この TCP 接続で、ホスト (プレイヤー A としましょう) からクライアント (プレイヤー B) に形状座標のベクトル データを送信し、クライアントが独自にレンダリングするようにしたいと考えています。
次に、クライアントがマウス/キーボードのデータをホストに送り返すようにします。すべての処理は、ホストのコンピューターで実行されます。
私の最初の質問: このネットワーク ロジックに欠陥はありますか?
私の 2 番目の質問: Kryonet を使用してベアボーン サーバー/クライアント パケット転送 (説明) を実装するにはどうすればよいですか?
注: 別のライブラリを使用して、C++ でこの正確なタイプのパケット転送を行いました。私が見つけた Kryonet のドキュメンテーション/チュートリアルはひどいものです。優れたサポートを備えた別のライブラリを提案することは、受け入れられる答えです。