リージョン
Photon Cloudは、世界中で低レイテンシのゲームを実行するための、グローバルな通信基盤を提供します。 これは、様々なリージョンでサーバーをホスティングすることで実現されています。
利用可能なリージョンは、プロジェクトの運用期間を通じて変わる可能性があります。クライアントは、Photonのネームサーバーから最新のリージョンのリストを取得できます。
各リージョンは、他のリージョンと完全に分離されています。リージョンは、マスターサーバー(マッチメイキング用)とゲームサーバー(ルームのホスト)で構成されます。
利用可能なリージョンのリストは、製品ごと(Fusion、Quantum、Chatなど)に異なります。 リージョン許可リストによって、AppIdごとにどのリージョンを利用可能にするかを定義することができます(後述)。
利用可能なリージョン
Photon Cloudのサーバーは、世界中の複数のホスティングセンターに分散しています。
Photon Cloudの各リージョンは「リージョントークン」で識別されます。
リージョン | ホスティング場所 | トークン |
---|---|---|
Asia | シンガポール | asia |
Australia | メルボルン | au |
Canada, East | モントリオール | cae |
中国本土 (こちらをご覧ください) | 上海 | cn |
ヨーロッパ | アムステルダム | eu |
インド | チェンナイ | in |
日本 | 東京 | jp |
南アフリカ | ヨハネスブルグ | za |
南米 | サンパウロ | sa |
韓国 | ソウル | kr |
トルコ | イスタンブール | tr |
アラブ首長国連邦 | ドバイ | uae |
アメリカ(東) | ワシントンD.C. | us |
アメリカ(西) | サンノゼ | usw |
アメリカ(南中部) | ダラス | ussc |
リージョン許可リスト
Photon Cloudの利用可能なリージョンのリストは、アプリケーションごとに、ダッシュボードから直接オンザフライでフィルタリングできます。
ダッシュボードの該当アプリケーションの管理画面を開き、リージョン許可リストの「編集」をクリックしてください。すると、許可するリージョンのリストを入力できる入力欄が表示されます。
- 許可リストは、セミコロンで区切られたリージョントークンの文字列(例:"eu;us")です
- リージョントークンは、こちらで定義されていて、大文字と小文字を区別しません
- 定義されていない/認識できないリージョントークンは、リストから無視されます
- 空("")または不正な文字列(例:";;;")は、空リストになります
- 空リストは、全ての利用可能なリージョンが許可されます
許可リストを入力して保存すると、ネームサーバーはフィルタリングされたリージョンのリストのみを返すようになり、クライアントはそのリストからリージョンを選択することになります。 ダッシュボードの更新が反映されるまで、最大10分かかることを考慮してください。
リージョンの選択方法
アメリカにいるユーザーは、Photon Cloud USリージョンに接続すれば、レイテンシは最小になります。それだけなら簡単です。
では、世界中にユーザーがいる場合はどうすれば良いでしょう?
その場合は、以下のいずれかを選択できます。
- a) 様々なPhoton Cloudリージョンにpingを送信し、最適なリージョンをあらかじめクライアントに選択させる(こちらをご覧ください)
- b) リージョンごとのビルドを配布して、異なる地域のユーザーを異なるPhoton Cloudリージョンに接続させる
- c) ゲームのUI内で、リージョンをユーザーに選択させる
- d) 高レイテンシが許容されるゲーム(それほどリアルタイムではないゲーム)なら、全てのユーザーを同一のリージョンに接続させる
Photon Cloudを使用するアプリケーションは、全ての利用可能なリージョンで動作し、追加料金はかかりません。価格プランをご覧ください。
Photon Cloudのダッシュボードでは、各リージョンでのゲームの利用状況をモニタリングでき、簡単にプランをアップグレード/ダウングレードすることができます。
ベストリージョンの検討
「ベストリージョン」オプションは、決定的なものではありません。 リージョンにあまり差がない場合や、まったく同じ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
- 中国リージョンが解除されたアプリケーションにAppIDを設定します。 同一プロジェクト内で、複数のビルドが有る場合には以下を参照してください:
C#
void Awake() { // TODO: replace compile condition with your own #if CHINA PhotonNetwork.PhotonServerSettings.VoiceAppID = "ChinaVoiceAppId"; // TODO: replace with your own AppId #else PhotonNetwork.PhotonServerSettings.VoiceAppID = "nonChinaVoiceAppId"; // TODO: replace with your own AppId #endif }
- 「LoadBalancingClient.cs」ファイルを開き、「ns.photonengine.cn」に
NameServerHost
を設定してください:
C#
// TODO: replace compile condition with your own
#if CHINA
public const string NameServerHost = "ns.photonengine.cn";
#else
public const string NameServerHost = "ns.exitgames.com";
#endif
PUNはVoiceに含まれているため、PUNに必要となる手順にも従わなければなりません。 Photon Voiceは自動的に同じサーバーに接続します。
PUN Classic
- 中国リージョンが解除されたアプリケーションにAppIDを設定します。
同一プロジェクト内で、複数のビルドが有る場合には以下を参照してください:
C#
void Awake() { // TODO: replace compile condition with your own #if CHINA PhotonNetwork.PhotonServerSettings.AppID = "ChinaPUNAppId"; // TODO: replace with your own AppId #else PhotonNetwork.PhotonServerSettings.AppID = "nonChinaPUNAppId"; // TODO: replace with your own AppId #endif }
- 「NetworkingPeer.cs」ファイルを開き、「ns.photonengine.cn」に
NameServerHost
を設定してください:
C#
// TODO: replace compile condition with your own
#if CHINA
public const string NameServerHost = "ns.photonengine.cn";
#else
public const string NameServerHost = "ns.exitgames.com";
#endif
CloudRegionCode
とCloudRegionFlag
のenumを更新し、新たな「CN」(または「cn」)リージョントークンを以下のように追加してください:
C#
public enum CloudRegionCode
{
// ...
// TODO: replace compile condition with your own
#if CHINA
///<summary>Chinese Mainland, Guang Dong area, cn</summary>
cn = 13,
#endif
};
[Flags]
public enum CloudRegionFlag
{
// ...
// TODO: replace compile condition with your own
#if CHINA
cn = 1 << 12,
#endif
};
PhotonNetwork.ConnectToRegion(CloudRegionCode.cn, gameVersion)
を使用して、中国本土リージョンに接続してください。
C#
// TODO: replace compile condition with your own
#if CHINA
PhotonNetwork.ConnectToRegion(CloudRegionCode.cn, gameVersion);
#else
// TODO: connect to any other region
#endif
Back to top