リージョン
Photon Cloudは、様々なリージョンでサーバーをホストすることで、世界中で低遅延のゲームを実現します。
クライアントは、Photonネームサーバーからリージョンのリストを取得できます。プロジェクトの運用期間を通じて、新しいリージョンが追加されたり、古いリージョンが廃止・削除されたりする可能性があります。
各リージョンは完全に独立していて、マスターサーバー(マッチメイキング用)とゲームサーバー(ルームのホスト)で構成されます。
クライアントのワークフローの概略は以下の通りです。
(1) クライアントは、Photonネームサーバーから利用可能なリージョンのリストを取得する。
(2) 利用可能なリージョンの中から一つを選択(pingに基づいて自動で選択/プレイヤーが手動で選択)して、そのリージョンのマスターサーバーに接続します。マスターサーバーはマッチメイキングを担当し、同じリージョンのゲームサーバー上のルームの作成/参加を行います。
(3) 最後に、クライアントはルームに参加するために特定のゲームサーバーへ接続します。このゲームサーバーは、(2)でクライアントが接続したマスターサーバーと同じリージョンにあります。

リージョン許可リストによって、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の「ベストリージョン」に接続するか、受信したリージョンリストからリージョンを選択するようにしてください。
リージョンの選択方法
アメリカにいるユーザーは、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ネームサーバーを使用する必要があります。
中国の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.UsePunSettings
がfalse
に設定されていない限りPhoton Voiceは自動的に同じサーバーに接続します。
その場合には、上記の手動音声クライアントの手順に従ってください。
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