PlanetServerは、クライアントとサーバーの間に中間層を提供することにより、マルチユーザーの仮想環境を開発するために使用されます。ソケットを使用して、1つのクライアントから送信されたメッセージを他のすべてのクライアントに中継することができます。 PlanetServerは、現時点でAndroid/iOS/Windows/Max/Linuxプラットフォームをサポートしています。 TCPでカスタムプロトコルを使用しており、すぐにUDPもサポートします。 ##ディレクトリ
PlanetServerには、知っておくべきメインディレクトリがいくつかあります
lib - サーバーが必要とするすべての依存関係が含まれています」
拡張機能- ゲームエクステンションジャー、および拡張機能に必要なその他のカスタム依存関係が含まれます
conf - サーバーの構成ファイルと、log4jの構成ファイル(ロギング)が含まれています
##構成
PlanetServerには、confフォルダーにconfig.propertiesファイルが含まれています。このファイルは、サーバーの特定の設定をセットアップするために編集できます。
server.tcp.port設定は、サーバーがリスニングしているポートを構成するために使用されます
server.threads.executorの設定は、スレッドプールのスレッド数を構成するために使用されます。パフォーマンス上の理由で、アクティビティの量に基づいてこの量を増やす必要があります。
また、サーバーのロギングを構成できるlog4j.propertiesファイルもあります。これの詳細については、log4jドキュメントを参照してください。
拡張機能フォルダーの内部には、 world.propertiesファイルがあります。このファイルには、ゲームに固有のプロパティが含まれており、ゲームコードからアクセスできます。ここで必要な唯一のプロパティは、アプリケーションのメインエントリポイントを指すextension.class.nameです。提供されている例には、これが構成されているため、独自の拡張機能のためにクラス名を変更するだけです。
##拡張アプリケーションを作成すると、PlanetServerの拡張機能を作成します。拡張機能は、アプリケーションに必要な他のすべてのJARファイルを備えた拡張機能フォルダーの内側に配置されたJARファイルです。エントリポイントの拡張機能のメインクラスを作成する必要があります。メインクラスは、Psextensionから拡張し、initをオーバーライドし、メソッドを破壊する必要があります。例えば
public class WorldExtension extends PSExtension {
@Override
public void init()
{
}
@Override
public void destroy()
{
super.destroy();
}
}
カスタム機能をinitに配置し、メソッドを破壊します。これには、アプリケーションに必要なカスタムコードを含めることができます。
##拡張機能サーバーにカスタムコマンドを送信するには、リクエストハンドラーのカスタムクラスを登録する必要があります。たとえば、プレイヤーがいて、プレーヤーのために何かをするリクエストを送信したいとします。まず、リクエストハンドラーAddRequestHandler(“ Player”、PlayerRequest.class)を追加します。次に、BasicClientRequestHandlerから拡張されるPlayerRequest Javaファイルを作成します。 HandleClientRequestメソッドをオーバーライドすると、送信されたリクエストを解析できます。
すべてのコマンドは、ドット表記を使用して送信されます。たとえば、プレーヤーから始まるものは何でも。文字列「player」に登録されているリクエストハンドラーによって処理されます。いくつかの例コマンドはplayer.save、player.load、player.moveなどです。サンプルJavaファイルで例を表示できます。
##次のメジャーバージョン1.1の将来の計画は、UDPメッセージングをサポートします。これは、いくつかのより高いメッセージレートゲームに必要であると考えています。