(CollegeWidのAP試験のケーススタディのようなGridWorld)GridWorldで作ったゲームにネットワーキングを追加するにはどうしたらいいですか?
私はここ数年間、自由な時間にこのゲームに取り組んできました。私はグリルの周りを走り、アイテムをピックアップし、モンスターやものを戦う素晴らしいリールのスティックキャラクターを持っています。今、私は次のレベルに持っていく準備ができていると思います。(とにかく私のネットワーククラスのプロジェクトを作る必要があるので、進歩する方法に少し困った。
過去にServerSocketを使用していくつかのプログラムを作成しました.1つのサーバーが稼動していて、複数のクライアントが接続してメッセージを受け取ることができますが、すべてが単純なテキストプログラムであり、少数の弦。ソケットは私がこれを使って考えていたものですが、設定方法がわかりません...
GridWorldが実行されると、グリッドを含むJFrameのように自動的にポップアップ表示されますそれにすべての俳優。基本的に2つの巨大なメソッドがあります:step()は時間単位ごとに何が起こるかを制御し、keyPressed()はユーザーがキーを押したときの動作を制御します。今、私はstep()がサーバー側にある必要があり、keyPressed()はウィンドウと共にクライアント側になければならないと考えていました(そうでなければ、ユーザーは、再演?)というのは、すべてのNPCのアクションとゲームの計算を1回だけ、サーバー上で実行し、複数のクライアントがそれに接続し、それぞれが独自のキャラクターを持つようにするメインゲームを持つことですゲーム(基本的にmmorpgのような)。
しかし、どのように正確に分割するのですか? (もしそれが正しい方法であれば)サーバーとクライアントの間でデータをやりとりする方法についてもわからない - 私が言及した単純なテキストプログラムの場合、私はいつもPrintWriterとBufferedReaderを使用しました。私はPrintWriterがObjectを受け付けるprint()メソッドを持っているが、BufferedReaderはそれをどのように受け取りますか? Objectを読み取るメソッドはありません。
基本的には、サーバーが何をすべきか、クライアントが何をすべきか、どのライブラリを使うべきか、そして特定の機能をどこに置くべきかの詳細をすべて知りたい。
私はmmoのアーキテクチャーは、SOの答えの上に少しですと思う。 – nos