リージョン
Photon Cloudを利用すれば、世界中で低レイテンシーのゲームを実行するためのグローバルな接続が可能になります。 これは、様々なリージョンのサーバーをホスティングすることで実現されています。
利用可能なリージョンは、プロジェクトのライフタイムを通じて変更される可能性があるため、クライアントはPhoton ネームサーバーから最新のリージョンリストを取得します。
各リージョンは他のリージョンから完全に分離しており、リージョンはマスターサーバー(マッチメイキング用)とゲームサーバー(ルームのホスティング)から成ります。

利用可能なリージョンは製品ごとに異なります(Fusion、Quantum、Chat等)。 リージョン許可リストを使用すれば、クライアントがどのリージョンを利用可能かさらに定義することができます。
この製品のリージョンリストを以下に示します。
目次
利用可能なリージョン
Photon Cloudは、複数の地域にサーバーがあり、世界中の複数のホスティングセンターに分散しています。
Photon Cloudの各リージョンは、「リージョントークン」で認識されます。
リージョン | ホスティングされている場所 | トークン |
---|---|---|
Asia | シンガポール | asia |
Australia | メルボルン | au |
Canada, East | モントリオール | cae |
中国本土1 (手順を参照してください) | 上海 | cn |
ヨーロッパ | アムステルダム | eu |
インド | チェンナイ | in |
日本 | 東京 | jp |
南アフリカ | ヨハネスブルグ | za |
南米 | サンパウロ | sa |
韓国 | ソウル | kr |
トルコ | イスタンブール | tr |
アメリカ(東) | ワシントンD.C. | us |
アメリカ(西) | サンノゼ | usw |
ダッシュボードでのリージョンのフィルタリング
アプリケーションごとに利用可能なPhoton Cloudのリージョンのリストを、ダッシュボードからすぐにフィルタリングできます。

ダッシュボードを開き、該当のアプリケーションの「管理」をクリックしてから、「編集」をクリックします。 許可されたリージョンのリストを入力できる、入力フィールドが以下のように表示されます:
- セミコロンで区切られたリージョントークン(例:「eu;us」)の文字列のみが、許可リストとして許可されます。
- リージョントークンは大文字・小文字が区別され、こちらで定義されます。
- 定義されていない、または認識されていないリージョントークンはリストから無視されます。
- 空 (「」) または不正な形式の文字列(例 「;;;」)は空のリストを意味します。
- 空のリストとは、利用可能なすべてのリージョンが許可されていることを意味します。
確認して保存すると、それ以降はネームサーバーはフィルタリングされたリージョンのリストのみを返します。 このため、クライアントはそのリストから選択する必要があります。 ダッシュボードの更新が反映されるには、最大で10分間かかる点を考慮してください。
リージョンの選択方法
アメリカにいるユーザーはPhoton Cloud USリージョンに接続すると、最低レイテンシーとなります。非常に明快です。
では、世界中 にユーザーがいる場合はどうでしょうか?
以下のいずれかを選択できます。
- a) ゲームクライアントに様々なPhoton Cloudリージョンへpingを送信させ、最適なpingをあらかじめ選択する。 手順を参照してください。
- b) リージョンにひもづくクライアントビルドを配信し、様々なリージョンのユーザーが他のPhoton Cloudリージョンに接続できるようにする。 または
- c) ゲームのUI内で、マッチングするリージョンをユーザーに選択させる。
もしくは、 d) ゲームプレイで高レイテンシーが許容可能な場合には、すべてのユーザーに同一リージョンに接続させる(例:それほどリアルタイムでないゲームの場合)。
Photon Cloudアプリケーションは、追加料金なしですべての利用可能なリージョンで稼動します。 価格設定を参照してください。
Photon Cloudのダッシュボードでは、各リージョンでのゲームの利用状況をモニタリングでき、また簡単に購入プランのアップグレードまたはダウングレードを実行できます。 ダッシュボードに進む場合はこちらをクリックしてください。
実行時にリージョンを選択する方法
ベストリージョン
オプションを使用していない際に、接続するリージョンをプレイヤーに選択させたい場合があるかもしれません。
プレイヤーが共通の近くのリージョンに接続している場合には、これによってプレイヤー間のpingが低下したり、特定のリージョンでプレイしているフレンドのセッションに参加するのに役立つことがあります。
リージョン選択はPhoton Boltが実行して いない 場合にのみおこなわれ、またPhotonPlatform
が初期化される前に実行する必要があります。
弊社はUdpKit.Platform.Photon.PhotonRegion
クラス内の利用可能なリージョンのあらかじめ定義されたリストを破棄します。このクラスはリージョンをリスト化する際に使用できます。
以下のスニペットでは、実行時に対象リージョンを変更する方法を示します:
public class Menu : Bolt.GlobalEventListener
{
// Target Region
private static int currRegion = 0;
// List of available Regions
private PhotonRegion.Regions[] availableRegions = new PhotonRegion.Regions[]
{
PhotonRegion.Regions.US,
PhotonRegion.Regions.USW,
PhotonRegion.Regions.JP,
PhotonRegion.Regions.EU,
PhotonRegion.Regions.SA
};
private void UpdateRegion()
{
if (BoltNetwork.IsRunning == false)
{
// Get the current Region based on the index
var targetRegion = PhotonRegion.GetRegion(availableRegions[currRegion]);
// Update the target region
BoltRuntimeSettings.instance.UpdateBestRegion(targetRegion);
// Log the update
Debug.LogFormat("Update region to {0}", targetRegion.Name);
// Next time we use the next region
currRegion++;
// Go back to 0
if (currRegion == availableRegions.Length)
{
currRegion = 0;
}
// IMPORTANT
// Initialize the Photon Platform again
// this will update the internal cached region
BoltLauncher.SetUdpPlatform(new PhotonPlatform());
}
else
{
BoltLog.Error("Bolt is running, you can't change region while runnning");
}
}
}
お分かりのとおり UpdateRegion()
を呼ぶと常に、リストavailableRegions
の次のリージョンが選択され、使用するリージョンがメソッドBoltRuntimeSettings.instance.UpdateBestRegion
を使ってアップデートされます。
リージョンはキャッシュされ、再作成しない限り変更されないため、プラットフォームを再初期化する必要がある点に留意してください。
中国本土のリージョンを使用
ファイアウォールによってトラフィックがブロックされる可能性があるため、中国ローカルのPhotonネームサーバーを使用する必要があります。 中国のPhotonネームサーバーは「ns.photonengine.cn」 です。
中国本土外からクライアントに接続しても、良い結果は得られません。 また、Photonサーバーから中国本土外のサーバーへの接続(たとえば、カスタム認証、Webhook、WebRPCなどで)は信頼性が高くありません。
また、法的な理由から中国向けには個別のビルドが必要となります。弊社は各ビルドに個別のAppIDを使用することを推奨しています。 たとえば、ビルドごとに(任意の)コンパイル条件を使用してAppIDやPhotonネームサーバーを変更します。
中国マーケット用に特別なビルドを作成するには、お使いのクライアントSDKの手順を参照してください。