ルームの概要

Strixでクライアント間の通信を行うには、両者が同じルームに参加している必要があります。

ルーム

Strixのルームとは、複数のクライアントを接続する仮想空間です。ルームのことを、多くのオンラインマルチプレイヤーゲームで見かける対戦ロビーのようなものと考えることができます。しかし、Strixのルームはマルチプレイヤーゲームのさまざまな側面を実装するための部品であり、ロビーよりもはるかにフレキシブルです。ルームを使って、ロビーを表すこともできますし、チャットチャネル、インスタンスダンジョン内にいるパーティー、バトルロワイヤルゲームのプレイフィールドにいるプレイヤー全員なども、ゲームデザインに応じて表すことができます。

1台のルームサーバーがそのような複数のルームを保持できますが、各ルームは互いに分離されています。ルームメンバーとはクライアント(つまりプレイヤー)を表すデータで、特定のルームに固有の情報を保持しています。つまり、クライアントがルームから退出して別のルームに参加すると、新しいルームメンバーが作成され、その新しいルームメンバーは元のルームのルームメンバーとは関係がありません。ルームに参加すると、各ルームメンバーは他のルームメンバーに関する情報を取得し、RPCを送信し、ゲームオブジェクトを複製し、リアルタイムでプロパティを同期できるようになります。他方、特定のルームのメンバーは、他のルームで何が起きているかを知ることはできません。

ルーム操作

クライアント(プレイヤー)は、ルームを作成し、既存のルームへ参加し、ルームを検索し、ルームかルームメンバーの情報を取得したり設定したりできます。

ルームは常にクライアントによって作成されます。ルームがサーバー上に存在するには、少なくとも1人のメンバーが必要です。ルームを作成したクライアントは、ルームのプロパティを定義し、作成が完了するとそのルームに参加し、さらにそのルームのルームオーナーになります。

ルームオーナーは、ルームのプロパティを変更したり、他のルームメンバーをキックしたり、ルームを破棄したりできます。ルームオーナーが退出すると、別のメンバーが自動的にルームオーナーになります。全てのメンバーがルームから退出すると、ルームは自動的に破棄されます。

注釈

ルームオーナーが他のルームメンバーをルームに残してルームから退出したときの動作は、サーバー側のオプションで設定できます。Strix Cloudのアプリケーションダッシュボードにある [ルームオーナー移譲の有効化] オプションを無効にすると、ルームオーナーがルームから退出したときに残っている全てのメンバーをキックしてルームを破棄するようになります。

ルームのプロパティ

各ルームには一式のプロパティがあります。ルームプロパティはルームの内側からも外側からも参照できます。つまり、プロパティを確認するためにルームに参加する必要はありません。プロパティは、ルームオーナーがいつでも変更できます。Strixでは固定した標準プロパティの一式をルームに対して定義していますが、その中には意味が決まっておらず、ゲームデザインに応じて自由に使うことができるものもあります。ルームには複数のカスタムプロパティを追加することもできますが、それらの用途は完全にゲーム次第です。

プロパティの種類

検索可能か?

標準のプロパティ(意味も定義済み)
name、
capacity

はい

標準のプロパティ(意味は定義可能)
(標準のカスタムプロパティ)
key1 ~ key8、
stringKey

はい

カスタム プロパティ(意味は定義可能)
(任意の名前)

いいえ

注釈

propertiesは特別なプロパティです。これは標準のプロパティの一つで、ディクショナリの型を持ち、意味が定義されています。その定義されている意味(用途)は、カスタムプロパティを格納することです。カスタムプロパティの名前はこのディクショナリに格納されたキーであり、プロパティの値はこのディクショナリの中の値です。