ご質問ありがとうございます。STRIXサポートチームでございます。
JoinRandomRoom
は参加可能な全てのルームの中から選んだルームに参加しようとします。特定のルームを避けるような機能はありません。
お問い合わせの要件は、例えばリリース済のバージョンの次のバージョンを開発なさっていて、リリース版と開発版がマッチングしないようにしたい、ということだろうと推測いたします。自明かもしれませんが、そのような場合に考えられる手法を2通り紹介します。お問い合わせの趣旨からははずれるかもしれませんがご容赦ください。
案1 サーバーを分ける
通常、アプリに複数のバージョンがあり、異なるバージョン同士のマッチングを避けたい場合には、バージョンごとにサーバーを分けていただくことをお勧めしています。Strix Cloudの場合、アプリケーションを2つ作るか、同じアプリケーション内にクラスターを2つ作るか、どちらかになります。クラスターで分けた場合は、開発が終わり次版のリリースを行う時点でクライアントのマスターホスト名を変更するか、あるいはマスターホスト名は変えずに次版のリリースの時点でクラスターの役割を入れ替えることになります。
この、案1の方法であれば、作成済みのビルド (ROM1) には手を加えずにルームを分離できます。また、開発中のアプリは、誤動作してサーバーに異常な高負荷をかけてしまうようなこともあるかもしれませんが、サーバーを分けておけば、そのような場合でもリリース版のサービスに影響がありません。
採用可能なのであれば、この方法をお勧めしたいと思います。
案2 ルームプロパティを使う
サーバーを共通にすることを前提に、作成済み版 (ROM1) と開発版 (Editor) がマッチングしてしまわないようにするのであれば、ルームプロパティの利用をお勧めします。
例えば、stringKey
プロパティにアプリのバージョンを表す文字列を設定しておき、stringKey
の値が一致するルームを検索してマッチングすることで、作成済み版と開発版がマッチングすることを防止できます。
ただし、この方法は作成済み版もルームプロパティを意識する必要がありますので、残念ながら、「作成済みのビルド (ROM1) に手を加えず、単にJoinRandomRoom
を呼ぶ」という条件は満たせません。作成済みのビルド (ROM1) にも修正が必要です。
なお、案2を実装なさる場合、ルームへの参加にJoinRandomRoom
を使うことはできなくなります。SearchJoinableRoom
の、ICondition
型の引数を取るオーバーロードを用いてバージョンが一致するルームを検索し、見つかったルームに参加 (JoinRoom
) するようにします。