photonのサービス選択の勘どころ
TRANSCRIPT
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 CloudCloud• 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
お問い合わせ• メールアドレス– [email protected]
• Web もご覧ください– http://photonengine.jp/
• ヘルプセンター– https://support.photonengine.jp/hc/ja
最後に…一緒に働ける仲間を大募集中!詳細はこちら↓
ありがとうございました![email protected]