Strixアーキテクチャの概要¶
Strixはいくつかのコンポーネントから構築されています。
Strixサーバー: サーバー側アプリケーション。
Strix Cloud: Strix Serverをサービスとして利用できるクラウドソリューション。Strix Cloudのウェブインターフェイスを利用してアクセスできます。
Strix Net/Strix Client: ゲーム内機能を提供するC#クライアント側ライブラリ。
Strix Unity SDK: STRIXの機能を利用するためのUnityゲームエンジン用のプラグイン。
StrixサーバーとStrix Cloud¶
Strix Cloud上に新しいアプリケーションを作成したら、サーバーのクラスターを追加できます。クラスターは、中央のマスターサーバーに接続されたルームサーバーのグループです。
マスターサーバー¶
Strixのサーバーには、マスターとルームの2つのタイプがあります。マスターサーバーには、接続されている各ルームサーバーの現在の情報と、それらのサーバー上のルームが含まれています。マスターは、特定のクラスターのエントリポイントとして機能します。クライアントは検索操作を実行して、特定のルームまたはルームサーバーを検索できます。
ルームサーバー¶
ルームサーバーは、プレイヤーが参加できるルームを実行します。彼らは、ルームのメンバー間の通信をルーティングし、各ルームのメンバーとルームのプロパティに関する情報を保持する責任があります。ルームサーバーにはそれぞれ、さまざまなルームを含めることができます。ルームの作成/削除はアプリケーションによって処理され、ルームサーバーは、Strix Cloudインターフェイスを介して1秒あたりのルーム数またはメッセージを制限するように構成できます。
ルームサーバーは、特定のマップやゲームのインスタンスを実行するのではなく、プレイヤーのリストを維持し、プレイヤー間のメッセージを処理します。個々のクライアントにはそれぞれ独自のゲーム状態があり、サーバーを介してルーティングされる他のプレイヤーからのさまざまなメッセージによって更新されます。Strixサーバーは、権限、接続、ルーティング、ルーム/クライアントプロパティ管理を処理します。
注釈
マスターサーバーはルームサーバーにすることもでき、単純なテストクラスターに役立ちます。
Strix Net/Strix Client¶
Strix Unity SDKに機能を提供するSTRIXのクライアント側ライブラリです。これらのライブラリがStrix Serverとの間でメッセージを送受信します。また、マッチング、移動補間、レプリカの同期などといった、特定のゲーム内機能が用いる機構も含まれています。
Strix Unity SDK¶
Unityゲームエンジン用にSDKを提供することにより、STRIXを使用した開発がシンプルかつ容易になり、特定の開発プロセスにも適合できます。新しいツールや言語を学ぶ必要はありません。Strix Unity SDKは、Strix Net/Strix Clientが持つ低レベルのC#クラスと、上位層としてのUnityのコンポーネントの間のインターフェイスとなります。SDKの機能の多くは、StrixNetwork
シングルトンとStrixBehaviour
抽象クラスを通じて公開されています。
ネットワークトランスポート¶
STRIXでは複数のネットワークトランスポートをサポートしています。最も一般的なトランスポートはTCPですが、これは信頼性のある双方向通信路を最小のオーバーヘッドで提供します。
サーバー側の設定により、STRIXでは他のトランスポートも利用できます。最も重要なものはWebSocketかもしれません。これは、ウェブと相性の良い双方向プロトコルです。Unity SDKでは、WebSocketを使用してWebGLプラットフォーム (HTML5クライアント) をサポートします。(WebGLサポートに関する詳細はHTML5とWebGLを利用したクライアントの作成方法をご覧ください。)