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ネームサーバーからリージョンのリストを取得できます。プロジェクトの運用期間を通じて、新しいリージョンが追加されたり、古いリージョンが廃止・削除されたりする可能性があります。

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

クライアントのワークフローの概略は以下の通りです。

(1) クライアントは、Photonネームサーバーから利用可能なリージョンのリストを取得する。

(2) 利用可能なリージョンの中から一つを選択(pingに基づいて自動で選択/プレイヤーが手動で選択)して、そのリージョンのマスターサーバーに接続します。マスターサーバーはマッチメイキングを担当し、同じリージョンのゲームサーバー上のルームの作成/参加を行います。

(3) 最後に、クライアントはルームに参加するために特定のゲームサーバーへ接続します。このゲームサーバーは、(2)でクライアントが接続したマスターサーバーと同じリージョンにあります。

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

リージョン許可リストによって、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の「ベストリージョン」に接続するか、受信したリージョンリストからリージョンを選択するようにしてください。

備考:人気のあるアプリで利用可能なリージョンを変更すると、複数のリージョンのピークCCUに影響し、利用料金にも影響します。必要に応じてプランを調整して、高額な追加料金を避けてください。プランのダウングレードは、切り替えが落ち着いた時に行うと良いでしょう。

リージョンの選択方法

アメリカにいるユーザーは、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