This document is about: VOICE 2
SWITCH TO

リージョン

Photon Cloudは、様々なリージョンでサーバーをホストすることで、世界中で低遅延のゲームを実現します。

クライアントは、Photonネームサーバーからリージョンのリストを取得できます。プロジェクトの運用期間を通じて、新しいリージョンが追加されたり、古いリージョンが廃止・削除されたりする可能性があります。

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

クライアントのワークフローの概略は以下の通りです。

(1) クライアントは、Photonネームサーバーから利用可能なリージョンのリストを取得する。

(2) 利用可能なリージョンの中から一つを選択(pingに基づいて自動で選択/プレイヤーが手動で選択)して、そのリージョンのマスターサーバーに接続します。マスターサーバーはマッチメイキングを担当し、同じリージョンのゲームサーバー上のルームの作成/参加を行います。

(3) 最後に、クライアントはルームに参加するために特定のゲームサーバーへ接続します。このゲームサーバーは、(2)でクライアントが接続したマスターサーバーと同じリージョンにあります。

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

リージョン許可リストによって、AppIdごとに利用可能なリージョンを定義できます(後述)。

利用可能なリージョン

Photon Cloudは、複数のリージョンのサーバーで構成されており、世界中のホスティングセンターに分散しています。

Photon Cloudの各リージョンは「リージョンコード」で識別され、大文字小文字を区別しない短い文字列です。
例えば、「EU」「eu」はどちらも有効で、同じヨーロッパリージョンを指します。

ホスティングセンターの場所と、各リージョンのリージョンコードを、以下のリストに示します。

Photon Cloud for Gaming

Photon製品のQuantum・Fusion・Voice・Realtime・PUNは、Gaming向けのPhoton Cloudの以下のリージョンを利用可能です。

リージョン場所コード
アジアシンガポールasia
オーストラリアシドニーau
東カナダモントリオールcae
中国本土 (こちらをご覧ください)上海cn
ヨーロッパアムステルダムeu
香港香港hk
インドチェンナイin
日本東京jp
南アフリカヨハネスブルグza
南アメリカサンパウロsa
韓国ソウルkr
トルコイスタンブールtr
アラブ首長国連邦ドバイuae
東アメリカワシントンD.C.us
西アメリカサンノゼusw
中南米ダラスussc

Photon Chatは、以下のリージョンを利用可能です。

リージョン場所コード
アジアシンガポールasia
ヨーロッパアムステルダムeu
東アメリカワシントンD.C.us
中国本土(こちらをご覧ください)上海cn

Photon Industries Premium Cloud

Photon製品のQuantum・Fusion・Voice・Realtime・PUNは、Industries向けのPremium Cloudの以下のリージョンを利用可能です。

リージョン場所コード
アジアシンガポールasia
ヨーロッパアムステルダムeu
インドチェンナイin
日本東京jp
韓国ソウルkr
東アメリカワシントンD.C.us

Industries向けのPremium Cloudに追加予定のリージョン:オーストラリア(AU)、南アメリカ(SA)、西アメリカ(USW)、南アフリカ(ZA)

Photon Chatは、以下のリージョンを利用可能です。

リージョン場所コード
東アメリカワシントンD.C.us

中国リージョンのGaming/Industries

中国本土リージョンのPhoton Cloudを使用するには特別な条件があります。

  • アクセス解除が必要(後述
  • 中国でPhoton Voiceは利用不可
  • 開発用20CCUは無料(非商用)
  • Photon Cloudは500CCUのサブスクリプションのみが利用可能
  • それ以上のセットアップには特別な同意が必要

Photon製品のQuantum・Fusion・Voice・Realtime・PUN・Chatは、以下のリージョンのPhoton Cloudを利用可能です。

リージョン場所コード
中国本土上海cn

リージョン許可リスト

リージョン許可リストによって、アプリケーションごとにダッシュボードから有効なリージョンを編集できます。ベストリージョン機能を使用するクライアントは、自動的にそれに適応します。

リージョンの増減によって、サービス品質(プレイヤーに近いリージョンがある場合は、応答時間が改善する)と、マッチメイキング体験(リージョンを減らせば、リージョンごとのプレイヤー数が増える)のバランスを調整できます。

アプリごとに利用可能なリージョンを定義するには、ダッシュボードを開き、アプリケーションの「詳細へ」をクリックし、リージョン許可リストの「編集」をクリックしてください。
すると、許可するリージョンのリストを入力できる入力欄が表示されます。

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

変更(入力後に保存)してから10分以内に、ネームサーバーはフィルタリングされたリストを接続中のクライアントに送信するようになります。
クライアント側とのコンフリクトを避けるため、最小Pingの「ベストリージョン」に接続するか、受信したリージョンリストからリージョンを選択するようにしてください。

備考:人気のあるアプリで利用可能なリージョンを変更すると、複数のリージョンのピークCCUに影響し、利用料金にも影響します。必要に応じてプランを調整して、高額な追加料金を避けてください。プランのダウングレードは、切り替えが落ち着いた時に行うと良いでしょう。

リージョンの選択方法

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


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

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

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

Photon Cloudを使用するアプリは、すべての利用可能なリージョンで動作し、追加料金はかかりません。

価格プランはこちらです。

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

ダッシュボードはこちらです。

C# Realtime API

Photon Realtime(ほとんどのPhoton SDKで使用されます)は、接続すべきベストリージョンを検知でき、そのリージョンへの接続を保持できるようにします。

これを実現するため、クライアントは常に接続時に接続可能なリージョンのリストをネームサーバーから取得します。
サーバーからの応答はLoadBalancingClient.RegionHandlerのセットアップに使用されます。LoadBalancingClient.RegionHandlerは、IConnectionCallbacksで定義されるOnRegionListReceived(RegionHandler regionHandler)コールバックからも提供されます。

通常、次のステップとしては、regionHandler.PingMinimumOfRegions()を呼び出して各リージョンへの現在のpingを検知します。完了時に呼び出すメソッドを渡し、最良のケースでは、以前の「ベストリージョンサマリー」を渡すこともできます(以下で説明します)。

サーバーへのping送信後、regionHandler.SummaryToCacheに結果がまとめられ、後で使用できるようにデバイス上に保存されます。

以前のセッションのSummaryToCacheがなければ、すべてのリージョンへpingが送信されるため、時間がかかります。
以前の結果が利用可能な場合、クライアントは以下を確認します:

a. リージョンリストが変更された場合(「以前のベストリージョン」がまだ利用可能な場合に対応)
b. pingが受け入れられない場合(以前に保存された値よりも1.5倍以上遅い)

どちらかに該当する場合は、すべてのリージョンへpingが送信され、新しい結果が選択されます。

ベストリージョンを使用すると、ダッシュボード内のサーバー側のリージョンフィルターと連携します。この機能によって、プレイヤーが利用可能なリージョンがオンデマンドで更新されます。

リージョンのリストにアクセスする場合、または前回の結果を上書きする場合には、リージョンのAPIリファレンスをご覧ください。

ベストリージョンの検討

「ベストリージョン」オプションは、決定的なものではありません。
リージョンにあまり差がない場合や、まったく同じping計算がされた場合には、「ランダム」になる可能性があります。

理論上は以下の設定が可能です:

  • 同一デバイスから、複数リージョンに対してまったく同じpingを設定します。同じネットワークに接続したクライアント上で異なるリージョンに接続する場合には、ランダムになります。
  • 同じネットワークに接続した異なるデバイス上(または同じデバイス上で異なる試行を実行する)で、同じリージョンに対して異なるping値を設定します。

たとえば、「us」と「usw」(または「ru」と「rue」)の場合、オンラインリージョンの許可リストを使用してリージョンを選択するか、または明示的にリージョンに接続します。

デバッグをおこなうには、ロギングレベルを「情報」に設定し、「現在のベストリージョン」をクリアしてください(PUNの場合:PhotonNetwork.BestRegionSummaryInPreferences = null)。詳細を参照するか、またはメールでログを送信してください。

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

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

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

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

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

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

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

Photon Voice

PUNインテグレーションがない場合(手動音声クライアント接続)

C#

void ConnectToChina()
{
    // you could also set these values directly in the VoiceConnection.Settings from Unity Editor
    // in that case call voiceConnection.ConnectUsingSettings(); without passing parameter
    AppSettings settings = new AppSettings();
    settings.FixedRegion = "cn";
    settings.UseNameServer = true;
    settings.AppIdVoice = "ChinaVoiceAppId"; // TODO: replace with your own Voice AppId unlocked for China region
    settings.AppVersion = "ChinaAppVersion"; // optional
    settings.Server = "ns.photonengine.cn";
    voiceConnection.ConnectUsingSettings(settings);
}

PUNインテグレーションがあり、PUN設定を使用する場合

VoiceにはPUNが含まれるため、PUNに必要な手順に沿って設定をおこないます。
PhotonVoiceNetwork.Instance.UsePunSettingsfalseに設定されていない限りPhoton Voiceは自動的に同じサーバーに接続します。
その場合には、上記の手動音声クライアントの手順に従ってください。

PhotonServerSettingsを使用

PUN 2: PhotonServerSettings for China
PUN 2: 中国用のPhotonServerSettings

コードを使用

C#

void ConnectToChina()
{
    AppSettings chinaSettings = new AppSettings();
    chinaSettings.UseNameServer = true;
    chinaSettings.ServerAddress = "ns.photonengine.cn";
    chinaSettings.AppIdRealtime = "ChinaPUNAppId"; // TODO: replace with your own PUN AppId unlocked for China region
    chinaSettings.AppSettings.AppIdVoice = "ChinaVoiceAppId"; // TODO: replace with your own Voice AppId unlocked for China region
    chinaSettings.AppVersion = "ChinaAppVersion"; // optional
    PhotonNetwork.ConnectUsingSettings(chinaSettings);
}
Back to top