マッチメイキング基礎
セッション
NetworkRunnerをマルチプレイヤーモードで開始すると、「セッション」に参加します。セッションは複数のクライアントに共有され、ユニークなSessionName
を持ちます。
NetworkRunner
開始時にSessionName
を渡すと、Fusionはその指定セッションに参加するか、指定した名前のセッションが存在しなければ新しいセッションを作成します。
C#
var networkRunner = GetComponent<NetworkRunner>();
var args = new StartGameArgs()
{
GameMode = GameMode.Shared,
PlayerCount = 10, // このオプションによって、セッション内の最大プレイヤー数を定義できます
SessionName = "MyRoomName"
};
networkRunner.StartGame(args);
EnableClientSessionCreaton
をFalse
に設定すると、クライアントは参加のみを行い、セッション作成は行いません。
StartGameArgs
にSessionName
が与えられなければ、クライアントは参加可能な空きセッションに参加し、参加できるセッションが無ければランダムな名前の新規セッションを作成します。
リージョン
Fusionのセッションは、利用可能なリージョンの中の1つで開始されます。セッションはリージョンごとに分かれて存在します。SessionName
で既存セッションに参加する際には、参加するクライアントが同じリージョンの同じセッションにいることを確認することが重要です。
デフォルトで、PhotonAppSettings
でリージョンが設定されていなければ、FusionはBest Region
に接続します。
これは開始プロセス中に、利用可能なリージョンすべてにpingを送信した後、最低ping値のリージョンに接続します。
Best Region
は確定ではなく、ping計算のわずかな変動により、時々「ランダム」に選ばれることに注意してください。
実行時にコードからRegion
を設定する例は、こちらをご覧ください。
利用可能なリージョンすべてのリストは、こちらをご覧ください。
実践的なマッチメイキング
実践的なマッチメイキングのオプションは、Fusionドキュメントをご覧ください。
- 認証:ゲームをリリースする前に実装することを強く推奨します。
- 許可リスト:初期リリースでは、コミュニティの分断を最小限に抑えるために、一部の選択したリージョンのみ(例:us, eu, asia)を許可することを推奨します。
- ロビー:ロビーによって、セッションへ参加する前に、参加可能なセッションのリストを取得できます。
- カスタムプロパティ:マッチメイキングではカスタムプロパティが使用できます。例えば、
map
プロパティをmap1
に設定すると、クライアントはmap1
で実行されているセッションのみに参加するようにフィルタリングできます。 - クイック再接続:クイック再接続を実装することで、プレイヤー切断時にセッションへ再接続させることができます。