PUN Classic (v1)、PUN 2、Boltはメンテナンスモードとなっております。Unity2022についてはPUN 2でサポートいたしますが、新機能が追加されることはありません。お客様のPUNプロジェクトおよびBoltプロジェクトが停止することはなく、将来にわたってパフォーマンス性能が落ちることはありません。 今後の新しいプロジェクトについては、Photon FusionまたはQuantumへ切り替えていただくようよろしくお願いいたします。

リージョン

Photon Cloudは、世界中で低レイテンシのゲームを実行するための、グローバルな通信基盤を提供します。 これは、様々なリージョンでサーバーをホスティングすることで実現されています。

利用可能なリージョンは、プロジェクトの運用期間を通じて変わる可能性があります。クライアントは、Photonのネームサーバーから最新のリージョンのリストを取得できます。

各リージョンは、他のリージョンと完全に分離されています。リージョンは、マスターサーバー(マッチメイキング用)とゲームサーバー(ルームのホスト)で構成されます。

photon cloud regions' connect flows
Photon Cloudリージョンへの接続

利用可能なリージョンのリストは、製品ごと(Fusion、Quantum、Chatなど)に異なります。 リージョン許可リストによって、AppIdごとにどのリージョンを利用可能にするかを定義することができます(後述)。

利用可能なリージョン

Photon Cloudのサーバーは、世界中の複数のホスティングセンターに分散しています。

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

利用可能なリージョンとトークンのリスト:

リージョントークン(コード)の文字列は、大文字と小文字を区別しません。:「EU」と「eu」はどちらも有効で、同じヨーロッパリージョンを指します。
リージョンホスティング場所トークン
Asiaシンガポールasia
Australiaメルボルンau
Canada, Eastモントリオールcae
中国本土 (こちらをご覧ください)上海cn
ヨーロッパアムステルダムeu
インドチェンナイin
日本東京jp
南アフリカヨハネスブルグza
南米サンパウロsa
韓国ソウルkr
トルコイスタンブールtr
アラブ首長国連邦ドバイuae
アメリカ(東)ワシントンD.C.us
アメリカ(西)サンノゼusw
アメリカ(南中部)ダラスussc
1:中国本土では、個別のAppIdとプランが必要です。

リージョン許可リスト

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

photon cloud: regions allowlist
Photon Cloudリージョンのフィルタリング

ダッシュボードの該当アプリケーションの管理画面を開き、リージョン許可リストの「編集」をクリックしてください。すると、許可するリージョンのリストを入力できる入力欄が表示されます。

  • 許可リストは、セミコロンで区切られたリージョントークンの文字列(例:"eu;us")です
  • リージョントークンは、こちらで定義されていて、大文字と小文字を区別しません
  • 定義されていない/認識できないリージョントークンは、リストから無視されます
  • 空("")または不正な文字列(例:";;;")は、空リストになります
  • 空リストは、全ての利用可能なリージョンが許可されます

許可リストを入力して保存すると、ネームサーバーはフィルタリングされたリージョンのリストのみを返すようになり、クライアントはそのリストからリージョンを選択することになります。 ダッシュボードの更新が反映されるまで、最大10分かかることを考慮してください。

リージョンの選択方法

アメリカにいるユーザーは、Photon Cloud USリージョンに接続すれば、レイテンシは最小になります。それだけなら簡単です。

では、世界中にユーザーがいる場合はどうすれば良いでしょう?

その場合は、以下のいずれかを選択できます。

  • a) 様々なPhoton Cloudリージョンにpingを送信し、最適なリージョンをあらかじめクライアントに選択させる(こちらをご覧ください)
  • b) リージョンごとのビルドを配布して、異なる地域のユーザーを異なるPhoton Cloudリージョンに接続させる
  • c) ゲームのUI内で、リージョンをユーザーに選択させる
  • d) 高レイテンシが許容されるゲーム(それほどリアルタイムではないゲーム)なら、全てのユーザーを同一のリージョンに接続させる

Photon Cloudを使用するアプリケーションは、全ての利用可能なリージョンで動作し、追加料金はかかりません。価格プランをご覧ください。

Photon Cloudのダッシュボードでは、各リージョンでのゲームの利用状況をモニタリングでき、簡単にプランをアップグレード/ダウングレードすることができます。

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

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

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

C#

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を使ってアップデートされます。 リージョンはキャッシュされ、再作成しない限り変更されないため、プラットフォームを再初期化する必要がある点に留意してください。

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

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

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

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

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

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

中国マーケット用に特別なビルドを作成するには、お使いのクライアントSDKのマニュアルをご覧ください。

Back to top