Photon CloudまたはPhoton Server?
Photon Cloud
Photon CloudはSaaS型(Software as a Service)のサービスで、完全に管理されています。
ホスティングやサーバーオペレーション、拡張はすべてExit Gamesが管理しているので、お客様はアプリケーションクライアントに集中することができます。
Photon Server
はオンプレミスのサーバーアプリケーションで、お客様が選択したマシンにホスティングして実行できます。
すべてカスタマイズできて権限管理も可能なため、独自のマルチプレイヤーゲームのバックエンドを自由に構築できます。
Photon CloudはPhoton Server上で稼動しています。
比較
Photon Cloud | Photon Server | |
---|---|---|
サーバー管理 | もうサーバー管理の煩わしさはありません。 あなたに代わって、弊社のエキスパートがサーバー管理をおこないます。ご安心ください。 |
アプリケーションでPhotonを実行するための、すべての権限を管理できます。 自社サーバーまたは適切なレンタルサーバーを稼動し、ユーザーが利用できるようにしましょう。 Photonのログとパフォーマンスカウンターを参照すれば、パフォーマンスや安定性についてのすべての情報を得られます。 |
拡張性 |
Photon Cloudはすべてのユーザーが接続できるよう、自動的に拡張します。 弊社のSDKを使用すると、クライアントアプリケーションはロードバランシングを効率化するよう構築されます。 |
Photon Serverの強力なロードバランシング機能は、ソースコードで利用できます。
この機能は複数のサーバーへ拡張するうえで強固な基盤となります。 エンドユーザー向けに稼動すべき、適切なサーバー台数を設定してください。 |
ゲームロジック | Photon Realtime、 Photon Voice、 Photon 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.SerializationProtocolType
をSerializationProtocol.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プロトコルでサーバーに接
続することができません。
"/+"を"/*"に置き換えると動作します。