This document is about: SERVER 5
SWITCH TO

Photon CloudまたはPhoton Server?

Photon Cloud
Photon CloudはSaaS型(Software as a Service)のサービスで、完全に管理されています。
ホスティングやサーバーオペレーション、拡張はすべてExit Gamesが管理しているので、お客様はアプリケーションクライアントに集中することができます。

Photon Server
はオンプレミスのサーバーアプリケーションで、お客様が選択したマシンにホスティングして実行できます。
すべてカスタマイズできて権限管理も可能なため、独自のマルチプレイヤーゲームのバックエンドを自由に構築できます。

Photon CloudはPhoton Server上で稼動しています。

Photon Software Layers
Photon マルチプレイヤーゲームのバックエンド

比較

  Photon Cloud Photon Server
サーバー管理 もうサーバー管理の煩わしさはありません。 あなたに代わって、弊社のエキスパートがサーバー管理をおこないます。ご安心ください。 アプリケーションでPhotonを実行するための、すべての権限を管理できます。
自社サーバーまたは適切なレンタルサーバーを稼動し、ユーザーが利用できるようにしましょう。

Photonのログとパフォーマンスカウンターを参照すれば、パフォーマンスや安定性についてのすべての情報を得られます。
拡張性 Photon Cloudはすべてのユーザーが接続できるよう、自動的に拡張します。
弊社のSDKを使用すると、クライアントアプリケーションはロードバランシングを効率化するよう構築されます。
Photon Serverの強力なロードバランシング機能は、ソースコードで利用できます。 この機能は複数のサーバーへ拡張するうえで強固な基盤となります。
エンドユーザー向けに稼動すべき、適切なサーバー台数を設定してください。
ゲームロジック Photon RealtimePhoton VoicePhoton Chat および PUN はすべてのマルチプレイヤーゲームタイプに対応した、すぐに利用できるソリューションを提供します。 非同期ゲームやアプリケーション用にPhoton APIをすぐに使えるよう、無料ダウンロードが可能な各クライアントSDK には複数のソースサンプルが含まれています。 サーバーのロジックはC#で完全にカスタマイズできます。 無料サーバー SDKでは、複数のデモアプリケーションをソースとともに入手可能で、すぐに利用できる高パフォーマンスなフレームワークがアプリケーション向けに提供されます。 弊社のプロトコルと、使いやすい機能を活用して、足りない機能を追加しましょう。
今すぐはじめよう Photon Cloudは登録後、すぐにアプリケーションを 実行することができます。 設定やサーバーは不要です。 Photon Serverはダウンロード後、5分以内に使い始められます。 Photonは非常に簡単に設定でき、ローカルとリモートのどちらでも作動します。
ライセンシング MAU(月間アクティブユーザー)数に合わせて、適切なプランを選びましょう。
インディー、プロスタジオを問わず、最適なプランが用意されています。 Photon Realtimeでは20CCUまで利用できる無料プランが提供されます。
ライセンスは買い切り、もしくは月額制で、ダウンロード形式で提供されます。
Photon Server Enterpriseライセンスを使えば、サーバーとアプリケーションを無制限にホスティングすることが可能です。 Photon Serverでは、100CCUまで利用できる無料ライセンスが提供されます。
  プランを見る プランを見る

PUNの従来のGetRoomListと混同しないようご注意ください)は利用できません。

v4.0.29.11263での既知の問題

  • クライアントまたは認証プロバイダから設定されない場合は、サーバーはUserIDを返しません。値はサーバ上で生成されたGUIDにします。これにより、プレイヤーがエラーコード-2(エラーメッセージ:「参加に失敗」:UserIdが設定されていません。checkUserIdOnJoin=trueがUserIdを予期しています。)でルームに参加できない恐れがあります。対策として、ユーザーがUserIDを設定していない場合、クライアントC# SDKがGUIDをUserIDとして送信するようになりました。
  • また、認証中に、認証プロバイダーによってニックネームが設定されていない場合、サーバーは、クライアントに以前に設定された値をオーバーライドするnullのニックネームを返します。 回避策として、接続後にニックネームを設定できます。
    この値はルーム内で使用され、後で変更(および同期)できます。
  • サーバーはシリアル化プロトコルバージョン1.8をサポートしていません。クライアントSDKの比較的新しい、1.8をデフォルト値として持つバージョンからセルフホスティングを行ったPhotonServerへ接続を試みる場合、接続は失敗します。C# SDKでは、クライアントが DisconnectByServerReasonUnknownで切断されます。解決策は、接続前にバージョンを1.6に設定することです。 loadBalancingClient.LoadBalancingPeer.SerializationProtocolTypeSerializationProtocol.GpBinaryV16に設定してください。PUN2では、 PhotonNetwork.NetworkingClient.LoadBalancingPeer.SerializationProtocolTypeとします。 裏でこれを行ってくれるPhotonNetwork.ConnectUsingSettings()以外のメソッドを使用しない限り、PUN2では必要ありません。
  • サーバーは同じアクターが同じインタレストグループに複数回追加され、当アクターにより複数回同じイベントがそのインタレストグループに送信されることを許可します。
  • サーバーはセッショントークンを実装していないため、クイック再参加機能( ReconnectAndRejoin)に完全には対応していません。

{% endif %}

v5.0.12.24499以降の重要な変更点

Photon Cloud は常に修正、拡張、新機能のために更新されています。
私たちは、Photon Cloudに追いつくために、Photon Server SDKの新しいバージョンをリリースするようにしていますが、この2つを常に同期させることはできません。

ここでは、Photon Server SDKの最新のパブリック・リリースであるv5.0.12.24499以降のPhoton Cloudの重要な変更点をリストアップしています。
また、このリストには、Photon CloudとPhoton Serverの両方の環境を同時に目指したり、一方から他方へ切り替えたりすると、ゲームが壊れる可能性のある事柄が示されています。
回避策の提案もあります。

v5.0.12.24499にないPhoton Cloudの機能

  • NameServerのランダムクラスターサポート(ワイルドカード、アスタリスククラスタ '/' )がRC1では欠落しています。
    デフォルトでは、C# クライアント SDK (PUN を含む) は、地域文字列が明示的にクラスタを指定しない (「/」を含まない) 場合、クラウドリージョン文字列に「/」ポストフィックスを付加します。
    この機能は、クラスターシャーディングに使用されます。
    したがって、クライアントがクラスタを指定せずに特定のリージョンを持つセルフホスティングのv5 RC1サーバーに接続しようとすると、これは'InvalidRegion'エラーで失敗します。
    これは、開発者が"{x}"を要求しただけなのに、クライアントが地域コード"{x}/*"を要求するためです。
    この場合でも、Best Region機能を使用して接続するか、C# SDKでワイルドカードクラスターを追加するコードをコメントアウトすることができます("LoadBalancingClient.cs "のLoadBalancingClient.ConnectToRegionMaster内の最初の3行目)。
    しかし、後者のオプションは、特にクライアントSDKを更新するときに不便です。
    回避策としては、Nameserver.jsonにリージョンごとの重複したエントリーを追加して、リージョンごとの名前に'/╱
    'を付けて、リージョンエントリーを二重にすることです。
    例えば、"eu "リージョンしかない場合、"eu/*"という名前で同じエントリーを追加する必要があります。

v5.0.12.24499での既知の問題

  • PhotonControlでGameServerのIPを設定すると、エラーになります。
    YGameServerのIPは、"deployLoadBalancingGameServer.xml.config"に手動で設定する必要があり、設定名は "PublicIPAddress "です。
  • PhotonServer.configのHTTPListenersのURLに設定ミスがあり、そのままではWebSocketプロトコルでサーバーに接
    続することができません。
    "/+"を"/*"に置き換えると動作します。
Back to top