This document is about: PUN 1
SWITCH TO

PUN Classic (v1)、PUN 2、Boltはメンテナンスモードとなっております。Unity2022についてはPUN 2でサポートいたしますが、新機能が追加されることはありません。お客様のPUNプロジェクトおよびBoltプロジェクトが停止することはなく、将来にわたってパフォーマンス性能が落ちることはありません。 今後の新しいプロジェクトについては、Photon FusionまたはQuantumへ切り替えていただくようよろしくお願いいたします。

リージョン

Photon Cloudは、世界中で低レイテンシのゲームを実行するための、グローバルな通信基盤を提供します。
これは、様々なリージョンでサーバーをホスティングすることで実現されています。

利用可能なリージョンは、プロジェクトの運用期間を通じて変わる可能性があります。クライアントは、Photonのネームサーバーから最新のリージョンのリストを取得できます。

各リージョンは、他のリージョンと完全に分離されています。リージョンは、マスターサーバー(マッチメイキング用)とゲームサーバー(ルームのホスト)で構成されます。

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

利用可能なリージョンのリストは、製品ごと(Fusion、Quantum、Chatなど)に異なります。
リージョン許可リストによって、AppIdごとにどのリージョンを利用可能にするかを定義することができます(後述)。

PUNでリージョンをセットアップ

ConnectToBestCloudServer(string gameVersion) クライアントを、最低pingのマスターサーバーに接続します。 すべてのPhoton Cloudマスターサーバーへのping送信の結果は、PlayerPrefに保存されます。

明示的に別のリージョンを「ベスト」として設定するにはOverrideBestCloudServer(CloudRegionCode region) を使用してください。

リージョンをPhotonServerSettingsアセット編集の一部としてセットアップできます。
リージョンへの接続は、PhotonNetwork.ConnectUsingSettings()を呼び出せば簡単におこなえます。

PUNを使用した追加セットアップは、初期設定ドキュメントを参照してください。

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

利用可能なリージョン

Photon Cloudは、いくつかのリージョンのサーバーで構成されており、世界中の複数のホスティングセンターに分散しています。
一部のリージョンのサーバーは、特定の製品やクライアントSDKにのみ対応しています。例えば、Fusionは日本リージョンを使用できますが、Chatは使用できません。

Photon Cloudの各リージョンは「リージョントークン」で識別され、大文字小文字を区別しない短い文字列です。例えば、「EU」と「eu」はどちらも有効で、同じヨーロッパリージョンを指します。

リージョントークンをクライアントの"Connect"メソッドで渡すには、PhotonNetwork.ConnectToRegionMaster(regionCode, gameVersion)を呼び出します。


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

リージョンホスティング場所トークン
アジアシンガポールasia
オーストラリアシドニーau
カナダ(東)モントリオールcae
中国本土 (こちらをご覧ください)上海cn
ヨーロッパアムステルダムeu
香港香港hk
インドチェンナイin
日本東京jp
南アフリカヨハネスブルグza
南米サンパウロsa
韓国ソウルkr
トルコイスタンブールtr
アラブ首長国連邦ドバイuae
アメリカ(東)ワシントンD.C.us
アメリカ(西)サンノゼusw
アメリカ(南中部)ダラスussc
1:中国本土では、個別のAppIdとプランが必要です。

リージョン許可リスト

いくつかの理由から、プレイヤーやユーザーが利用可能なリージョンを制限したいことがあります(後述)。
リージョン許可リストによって、アプリケーションごとに、ダッシュボードから有効なリージョンを編集できます。クライアント側の変更は不要です。

ダッシュボードを開き、アプリケーションの「詳細へ」をクリックした後、リージョン許可リストの「編集」をクリックしてください。
すると、許可するリージョンのリストを入力できる入力欄が表示されます。

  • 有効なリージョンはSDKごとに定義されていて、Industries Circleでは異なることがあります
  • 許可リストは、セミコロンで区切られたリージョントークンの文字列(例:"eu;us")です
  • リージョントークンは、大文字と小文字を区別しません
  • 定義されていない/認識できないリージョントークンは、リストから無視されます
  • 空("")または不正な文字列(例:";;;")は、全ての利用可能なリージョンが許可されます

変更(入力後に保存)してから10分以内に、フィルタリングされたリストが、ネームサーバーに接続中のクライアントに送信されるようになります。
クライアント側とのコンフリクトを避けるため、Ping最小値の「ベストリージョン」に接続する、または受信したリージョンリストからリージョンを選択するようにしてください。

リージョンの選択方法

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

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

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

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

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

中国マーケット用に特別なビルドを作成するには、お使いのクライアントSDKのマニュアルをご覧ください。

PUN Classic

  1. 中国リージョンが解除されたアプリケーションに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
    }
    
  2. 「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
  1. CloudRegionCodeCloudRegionFlagの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
    };
  1. 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