リージョン

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

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

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

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

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

ベストリージョンの選択

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

Back To Top

C# Realtime API

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

これを実現するため、クライアントは接続時に接続可能なリージョンのリストをネームサーバーから常に取得します。 このリストは、選択したリージョンが利用可能であるか確認するために使用されます

サーバーへのping送信後、結果は後で使用できるよう文字列に要約され、デバイス上に保存されます。 要約された文字列には、最新のベストリージョン、ping、最新のリージョンリストが含まれます。

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

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

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

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

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

Back To Top

PUN

PhotonNetwork.ConnectUsingSettings()を使用すると、デフォルトでベストリージョンの選択が行われます。

プレイヤーの設定に結果を自動的に保存することを除けば、ワークフローはRealtime APIと同じです。

クライアントは通常、1つのリージョンをより長い時間使用します。 その後の起動時に、この領域に再びpingを実行します。 PUNは、UnityのPlayerPrefsを使用して、 ベストリージョンの概要を自動的に保存します。

利便性とデバッグの目的で、現在のベストリージョンとそのpingはUnityエディターのPhotonServerSettingsで公開されます。 ただし、Unity Editorのプレイモードでのみ有効です。 Unity Editorと同じマシンで実行されるビルドには、異なるベストリージョンが含まれる場合があります。

Back To Top

ベストリージョンの検討

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

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

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

Back To Top

利用可能なリージョン

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

各Photon Cloudリージョンは「リージョントークン」で識別されます。 {% if PUN_v1 %}クライアントの「Connect」メソッドでリージョントークンを渡すには、PhotonNetwork.ConnectToRegionMaster(regionCode, gameVersion)を呼びます。 特定のリージョンに接続するには、AppSettings内のPhotonServerSettingsでコードを「Fixed Region」に設定します。 PhotonNetwork.ConnectToRegionを使用するには、この場合にはPhotonServerSettingsが使用されないようネットワーキングクライアントを手動で設定する(おもにAppIdとAppVersion)必要があります。

Back To Top

利用可能なリージョン

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

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

特定のリージョンに接続するには、AppSettingsのPhotonServerSettingsでそのコードを「Fixed Region(固定のリージョン)」として設定します。 PhotonNetwork.ConnectToRegionを使用する場合、PhotonServerSettingsは使用されないので、ネットワーククライアントを手動で設定する必要があります(主にAppIdとAppVersion)。

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

リージョントークン(またはコード)の文字列は、大文字小文字を識別しません。 : "EU" と "eu" は両方とも同じヨーロッパリージョンを指します。
リージョンホスティングされている場所トークン
アジアシンガポールasia
オーストラリアメルボルンau
カナダ(東)モントリオールcae
中国本土(手順を参照してください)上海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

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

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

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

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

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

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

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

void ConnectToChina()
{
      // you could also set these values directly in the PhotonServerSettings from Unity Editor
      PhotonNetwork.PhotonServerSettings.AppSettings.FixedRegion = "cn";
      PhotonNetwork.PhotonServerSettings.AppSettings.UseNameServer = true;
      PhotonNetwork.PhotonServerSettings.AppSettings.AppIdRealtime = "ChinaPUNAppId"; // TODO: replace with your own AppId
      PhotonNetwork.PhotonServerSettings.AppSettings.AppVersion = "ChinaAppVersion"; // optional
      PhotonNetwork.PhotonServerSettings.AppSettings.Server = "ns.photonengine.cn";
      PhotonNetwork.ConnectUsingSettings();
  }

To Document Top