リージョン

Photon Cloudを利用すれば、世界中で低レイテンシーのゲームを実行するためのグローバルな接続が可能になります。

クライアントはまずネームサーバーに接続し、ネームサーバーは利用可能なリージョンのリストを提供します。 通常は「ベストリージョン」の選択が有効化されており、最低pingのリージョンが検知されてクライアントはこのリージョンに接続します(下図を参照してください)。

各リージョンは他のリージョンから完全に分離しており、リージョンはマスターサーバー(マッチメイキング用)とゲームサーバー(ルームのホスティング)から成ります。

Photon Cloud Regions' Connect Flows
Photon Cloud リージョンへの接続

以下は、利用可能なリージョンの完全なリストです。 クライアントが利用できるリージョンはダッシュボードで定義できます。

Contents

利用可能なリージョン

Photon Cloudは、複数のリージョンにサーバを設置しています。これらは世界各地のホスティングセンターに設置されています。

各Photon Cloudリージョンは「リージョントークン」で識別されます。

利用可能なリージョンとトークンの一覧は以下のとおりです:

リージョントークン(またはコード)の文字列は、大文字小文字を識別しません。 : "EU" と "eu" は両方とも同じヨーロッパリージョンを指します。
リージョンホスティングされている場所トークン
アジアシンガポールasia
オーストラリアメルボルンau
カナダ(東)モントリオールcae
中国本土1 (手順を参照してください)上海cn
ヨーロッパアムステルダムeu
インドチェンナイin
日本東京jp
ロシアモスクワru
ロシア(東)ハバロフスクrue
南アフリカ2ヨハネスブルグza
南米サンパウロsa
韓国ソウルkr
アメリカ(東)ワシントンD.C.us
アメリカ(西)サンノゼusw

1: 中国本土では、個別のAppIdと購読が必要です。 2: 南アフリカはまだ予備段階であり、テスト中です。

Back To Top

ダッシュボードでのリージョンのフィルタリング

アプリケーションごとに利用可能なPhoton Cloudのリージョンのリストを、ダッシュボードからすぐにフィルタリングできます。

Photon Cloud: Regions Whitelist
Photon Cloudリージョンのフィルタリング

ダッシュボードを開き、該当のアプリケーションの「管理」をクリックしてから、「編集」をクリックします。 ホワイトリストに登録されたリージョンのリストを入力できる、入力フィールドが以下のように表示されます。

  • セミコロンで区切られたリージョントークン(例:「eu;us」)の文字列のみが、リストとして許可されます。
  • リージョントークンは大文字・小文字が区別され、こちらで定義されます。
  • 定義されていない、または認識されていないリージョントークンはリストから無視されます。
  • 空 (「」) または不正な形式の文字列(例 「;;;」)は空のリストを意味します。
  • 空のリストとは、利用可能なすべてのリージョンが許可されていることを意味します。

確認して保存すると、それ以降はオペレーション GetRegions はフィルタリングされたリージョンのリストのみを返します。 このため、クライアントはそのリストから選択する必要があります。ただし、クライアントは利用可能なリージョンに明示的に接続することも可能です。 ダッシュボードの更新が反映されるには、最大で10分間かかる点を考慮してください。

Back To Top

実行時にリージョンを選択する方法

ベストリージョンオプションを使用していない際に、接続するリージョンをプレイヤーに選択させたい場合があるかもしれません。 プレイヤーが共通の近くのリージョンに接続している場合には、これによってプレイヤー間のpingが低下したり、特定のリージョンでプレイしているフレンドのセッションに参加するのに役立つことがあります。

リージョン選択はPhoton Boltが実行して いない 場合にのみおこなわれ、またPhotonPlatformが初期化される前に実行する必要があります。 弊社はUdpKit.Platform.Photon.PhotonRegionクラス内の利用可能なリージョンのあらかじめ定義されたリストを破棄します。このクラスはリージョンをリスト化する際に使用できます。 以下のスニペットでは、実行時に対象リージョンを変更する方法を示します:

public class Menu : Bolt.GlobalEventListener
{
    // Target Region
    private static int currRegion = 0;

    // List of available Regions
    private PhotonRegion.Regions[] availableRegions = new PhotonRegion.Regions[]
    {
        PhotonRegion.Regions.US,
        PhotonRegion.Regions.USW,
        PhotonRegion.Regions.JP,
        PhotonRegion.Regions.EU,
        PhotonRegion.Regions.SA
    };

    private void UpdateRegion()
    {
        if (BoltNetwork.IsRunning == false)
        {
            // Get the current Region based on the index
            var targetRegion = PhotonRegion.GetRegion(availableRegions[currRegion]);

            // Update the target region
            BoltRuntimeSettings.instance.UpdateBestRegion(targetRegion);

            // Log the update
            Debug.LogFormat("Update region to {0}", targetRegion.Name);

            // Next time we use the next region
            currRegion++;

            // Go back to 0
            if (currRegion == availableRegions.Length)
            {
                currRegion = 0;
            }

            // IMPORTANT
            // Initialize the Photon Platform again
            // this will update the internal cached region
            BoltLauncher.SetUdpPlatform(new PhotonPlatform());
        }
        else
        {
            BoltLog.Error("Bolt is running, you can't change region while runnning");
        }
    }
}

お分かりのとおり UpdateRegion()を呼ぶと常に、リストavailableRegionsの次のリージョンが選択され、使用するリージョンがメソッドBoltRuntimeSettings.instance.UpdateBestRegionを使ってアップデートされます。 リージョンはキャッシュされ、再作成しない限り変更されないため、プラットフォームを再初期化する必要がある点に留意してください。

Back To Top

中国本土のリージョンを使用

まず、Photonアプリケーション用に中国本土リージョンへのアクセスをリクエストする必要があります。弊社宛にメールでご連絡ください。お客様のAppID用に解除します。
弊社のウェブサイトから、中国本土地域で使用される有償プランに申し込むことはできません。 有償プランの見積については、メールでご連絡ください。

ファイアウォールによってトラフィックがブロックされる可能性があるため、中国ローカルのPhotonネームサーバーを使用する必要があります。 中国のPhotonネームサーバーは「ns.photonengine.cn」 です。

中国本土外からクライアントに接続しても、良い結果は得られません。 また、Photonサーバーから中国本土外のサーバーへの接続(たとえば、カスタム認証、Webhook、WebRPCなどで)は信頼性が高くありません。

重要: ダッシュボードでアプリケーションに変更を加えた場合、現段階では中国のアプリケーションのキャッシュに自動的に反映されません。 アップデートをご希望の場合には、弊社宛にメールでご連絡ください。

また、法的な理由から中国向けには個別のビルドが必要となります。弊社は各ビルドに個別のAppIDを使用することを推奨しています。 たとえば、ビルドごとに(任意の)コンパイル条件を使用してAppIDやPhotonネームサーバーを変更します。

中国マーケット用に特別なビルドを作成するには、お使いのクライアントSDKの手順を参照してください。

To Document Top