Strixアーキテクチャの概要

Strixはいくつかのコンポーネントから構築されています。

  1. Strixサーバー: サーバー側アプリケーション。

  2. Strix Cloud: Strix Serverをサービスとして利用できるクラウドソリューション。Strix Cloudのウェブインターフェイスを利用してアクセスできます。

  3. Strix Net/Strix Client: ゲーム内機能を提供するC#クライアント側ライブラリ。

  4. 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を利用したクライアントの作成方法をご覧ください。)