リージョン

Photon Cloudを利用すれば、世界中で低レイテンシーのゲームを実行するためのグローバルな接続が可能になります。 これは、様々なリージョンのサーバーをホスティングすることで実現されています。

利用可能なリージョンは、プロジェクトのライフタイムを通じて変更される可能性があるため、クライアントはPhoton ネームサーバーから最新のリージョンリストを取得します。

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

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

利用可能なリージョンは製品ごとに異なります(Fusion、Quantum、Chat等)。 リージョン・ホワイトリストを使用すれば、クライアントがどのリージョンを利用可能かさらに定義することができます。

この製品のリージョンリストを以下に示します。

目次

利用可能なリージョン

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

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

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

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

1:中国本土では、個別のAppIdとプランが必要です。

トップに戻る

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

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

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

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

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

確認して保存すると、それ以降はネームサーバーはフィルタリングされたリージョンのリストのみを返します。 このため、クライアントはそのリストから選択する必要があります。 ダッシュボードの更新が反映されるには、最大で10分間かかる点を考慮してください。

トップに戻る

リージョンの選択方法

アメリカにいるユーザーはPhoton Cloud USリージョンに接続すると、最低レイテンシーとなります。非常に明快です。

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

以下のいずれかを選択できます。

  • a) ゲームクライアントに様々なPhoton Cloudリージョンへpingを送信させ、最適なpingをあらかじめ選択する。 手順を参照してください。
  • b) リージョンにひもづくクライアントビルドを配信し、様々なリージョンのユーザーが他のPhoton Cloudリージョンに接続できるようにする。 または
  • c) ゲームのUI内で、マッチングするリージョンをユーザーに選択させる。

もしくは、 d) ゲームプレイで高レイテンシーが許容可能な場合には、すべてのユーザーに同一リージョンに接続させる(例:それほどリアルタイムでないゲームの場合)。

Photon Cloudアプリケーションは、追加料金なしですべての利用可能なリージョンで稼動します。 価格設定を参照してください。

Photon Cloudのダッシュボードでは、各リージョンでのゲームの利用状況をモニタリングでき、また簡単に購入プランのアップグレードまたはダウングレードを実行できます。 ダッシュボードに進む場合はこちらをクリックしてください。

トップに戻る

ベストリージョンの選択

PUNとPhoton Voiceは、ベストリージョンを選択する際にRealtime APIレイヤーに依存しています。

トップに戻る

C# Realtime API

Photon Realtimeは接続すべきベストリージョンを検知でき、プレイヤーがそのリージョンへの接続を保持できるようにします。

これを実現するため、クライアントは接続時に接続可能なリージョンのリストをネームサーバーから常に取得します。

サーバーからの応答は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」)の場合、オンラインリージョンのホワイトリストを使用してリージョンを選択するか、または明示的にリージョンに接続します。

トップに戻る

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

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

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

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

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

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

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

トップに戻る

Photon Voice

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

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

トップに戻る

コードを使用

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);
}


ドキュメントのトップへ戻る