Photonのサービス選択の勘どころ
Photon 運営事務局
シニアテクニカルアドバイザー
並木 健太郎
アジェンダ
• Photonのご紹介
• 基本的な選び方
• 開発時のサービス選択
• 運用時のサービス選択
Photonのご紹介
Photonのしくみ
• すべてのクライアント(=プレ
イヤー)はサーバーへ接続
する
• サーバーはクライアント間
の通信をリレーする役割
• サーバー自身は基本的に
は処理を行わないが、
WebhooksやPluginを利用し
てカスタマイズも可能
Photon
Client Client Client
SDK SDK SDK
Photonのサービス形態
• クラウド型サービス
• サーバーはサービス提供
元で運用
• クライアントにSDKを組み込
むだけで利用可能
• ミドルウェア型サービス
• ソフトウェアとしてご提供、
お客さまで運用
• サーバーサイドのカスタマ
イズが自由に
Photon Cloudのラインナップ
汎用性の優れたスタンダードなRealtime
Unity向けに特化されたUnity Networking
Chatに特化したサービスのChat
音声通話を簡単に導入できるVoice
Photon Enterprise Cloud
• Photon Cloudの上位サービスとして、
Photon Enterprise Cloudをご用意しています
• Photon Cloudでは難しいと思われる場合でも、
Enterprise Cloudなら大丈夫です!
Cloud vs. Enterprise Cloud
Cloud
• Publicサービス (共有)
• 10,000CCUまで
• Webhooks対応
• 複数タイトル共有不可
• サーバー設定変更不可
Enterprise Cloud
• Privateサービス (専有)
• CCU上限なし
• Webhooks & Plugin対応
• 複数タイトル共有可能
• サーバー設定変更可能
基本的な選び方
Client-Server間の互換性
Server
Client
VoiceとChat
• VoiceとChatはそれぞれ特化したサービス
• これらを利用検討する場合は、その一択
• サーバー側はクラウドのみのご提供
ChatのClient SDK
• 通常のSDK内に含まれています
– Native SDKと.NET SDKではchat-cppなどとなってい
ます
– PUNにおいても、Chatのフォルダにあり
VoiceのClient SDK
• 現在はUnityのAssetとしてのみご提供
• PUNに含むのではなく、専用のAssetとして提
供
RealtimeとPUN、Server
• プロトコルとしては同一のサービス
• どれを選べばいいの…?
基本はRealtimeを!
• この後詳細にご説明します
開発時のサービス選択
Realtimeが基本です
• リアルタイム通信が必要で、どうすればいい
のかよくわからないのならまずはRealtimeを
• クラウドサービスなのでサーバー構築は不要、
Client SDKを組み込むだけでOK!
• まずはRealtimeで試して、必要に応じてServer
へ移行することはとても簡単です!
Realtime vs. PUN
• Unityを使っているなら、Client SDKとしてPUN
もご検討を
• PUNは、Unityに特化したより使いやすくした
上位SDK
• 簡単なオブジェクト同期ならノンプログラミン
グでリアルタイム同期を行うことも可能に
PUNも万能ではない
• PUNは簡単に使える
– 細かい制御は難しい部分もある
• PUN独自実装と、.NET SDK部分の併用は難し
い
まずはPUNを試して、厳しければ
Unity 3D SDK (.NET SDK)の利用を
最初から判断できないの…?
• PUNの強力な機能は自動的なオブジェクトの
同期
• オブジェクト同期+簡単なイベント送信
(RaiseEvent or RPC)で済むならPUNがベスト
• オブジェクト同期があまり役立たない場合は、
Unity 3D SDKの利用検討を
Realtime vs. Server
• 開発時にServerが必要となるポイント
は?
–サーバー側での独自ロジック実装
–サーバー側の設定変更
–自前運用が必須
独自ロジック実装
• Server SDKはソースコードが含まれているの
で、その中に独自のコードを実装することが
可能
• V4よりPluginでの実装が可能になったので、
Pluginでの独自ロジック実装を強く推奨
Pluginとは
• LoadBalancingアプリ内で、ルームに関する部分
について、フックの形で独自ロジック部分のみを
実装することができる
• Pluginで一つのDLLとなるので、Serverのアップ
デートとPluginのアップデートを分離して行え、管
理が容易に
• Photon Serverのみならず、Photon Enterprise
Cloudでも利用可能
サーバー側の設定変更
• Realtimeなどのクラウドサービスではサー
バー側の設定変更は不可能
• 開発時にサーバー側の変更が必要な場合は、
Photon Serverを利用を
• 運用時は、Enterprise Cloudでも概ね対応可
能
自前運用が必須
• 要件などにより、外部サービスでの利用が難
しい場合などはServer利用が前提に
• 技術的な要件でない場合は、開発時は
Realtimeで行い、運用時にServerへ切り替え
ることも容易なので、必要に応じて選択を
運用時のサービス選択
運用時のサービス選択
• 基本は開発時と大きく変わりません
…が、一つ加えてほしい選択肢があります
Realtime vs. Enterprise Cloud
• 規模が大きく10000CCUを超える可能性がある
• 占有サービスで安心して利用したい
• Realtime <-> Enterprise Cloudの切り替えは、アプ
リの書き換えなしで対応可能
• まずはRealtimeでリリースして、規模感が大きく
なったらEnterprise Cloudへの移行検討を
Server vs. Enterprise Cloud
• 開発時にServerが必要となる要件も、Enterprise
Cloudであれば対応可能なことも
• Plugin対応
– Pluginの範囲内で対応可能であれば、Enterprise
Cloudにより独自ロジックを書きつつ、手軽に運用す
ることが可能
• 設定変更
– 占有サービスなので、設定変更も対応可能
カバー範囲
10000CCU以上
専有サービス
Plugin対応
設定変更 フルカスタマイズ
自前運用
10000CCUまで
共有サービス
まとめ
• まずはRealtimeをお試しください
• サーバー側カスタマイズが必要ならServerを
• 独自コード実装はぜひPluginで
• 大規模、またはPlugin対応ならEnterprise
Cloudの利用も検討を
最後に
今後の予定
• 8/24-26 CEDEC 2016@横浜
セッション、Photonワークショップ
PlayCanvasワークショップ
• 9/13(水) Photon勉強会@GMO Yours
この後も続々開催予定!
ヘルプセンター始めました
• ナレッジベースや、コミニュティ(フォーラム)機
能のあるヘルプセンターを開設しました
• コンテンツの充実化を図っていきますので、
ぜひご利用ください!
• https://support.photonengine.jp/hc/ja
お問い合わせ
• メールアドレス
– developer@photonengine.jp
• Webもご覧ください
– http://photonengine.jp/
• ヘルプセンター
– https://support.photonengine.jp/hc/ja
最後に…
一緒に働ける仲間を
大募集中!
詳細はこちら↓
ありがとうございました!
developer@photonengine.jp

Photonのサービス選択の勘どころ