photon-logo

Photon Cloud/Photon Serverについて調べてみた -概要編-

はじめに

Photonとは、マルチプレイを簡単に実現するためのサービスです。
クラウド型のPhoton Cloudとサーバーインストール型のPhoton Serverの2種類のシリーズがあります。
特にクラウド型の場合はサーバ構築不要でマルチのゲームを作ることが可能です。
つまりサーバ・ネットワークの知識が無くても楽にオンラインゲームを開発することができ、
ゲーム開発者はクライアントの開発に専念できるかと思います。
Photonではすべてのサービスが無料から使うことが出来るので、
開発中やサービスイン中でも制限を超えない限りはお金は一切掛かりません。

サービスの運営および開発はドイツのExitGames社が行っており、
日本ではGMOクラウド株式会社が販売とサポートを行っています。
日本からの場合は、GMOクラウドのサポート窓口に問合せを行うとよいでしょう。

GMOクラウド株式会社のPhotonのWebサイト
http://photoncloud.jp/
ExitGames(サービス運営元)のWebサイト
https://www.photonengine.com/ja/

現状ではUnityとPhotonを組み合わせた情報は沢山あるが、それ以外の情報はほとんどありません。
そこで自分の知識の整理と備忘録を兼ねてPhotonのサービスや機能について解説して書いてみます。
間違っている箇所や要望などがあればご指摘頂けますと幸いです。

Photonのサービスラインナップの違いについて

前述の通りPhotonには大きく分けてPhoton CloudとPhoton Serverの2種類のシリーズがあります。
Photon Cloudには更にPhoton Realtime/Turnbased/Chatといったプランがあります。

カテゴリによって機能や制限があります。
これらをまとめると下記のようになります。

シリーズ プラン 1ルームあたりのメッセージ数の上限 無料枠 サービスによる機能の差異
Photon Cloud Photon Realtime 500msg/s 20CCU Photonの基本的な機能全て(Realtime/Serverで共通)
Photon Turnbased 100msg/s 20CCU Realtimeに加え、WebHook/WebRPC/クラウドセーブ
Photon Chat 100msg/s 20CCU Realtime/Turnbasedと異なり、Chat独自のAPIが実装されている
Photon Server 制限無し 100CCU Photonの基本的な機能全て(Realtime/Serverで共通)

上記に加え、Photon Unity Networkingもありますが、これについては後述します。

無料枠に記載されているCCUですが、同時接続数でリアルタイムで接続している人数を示しています。
Photon Cloudではその瞬間で20人までは無料で接続する事が可能です。
なお、21人目以降の場合はCCUの上限を超えている内容のエラーが返されます。

Photon Cloud

クラウド型であるPhoton Cloudの基本サービスはPhoton Realtimeです。
Photon Realtimeのメッセージ数の上限を100msg/sとし、値段が安いプランがPhoton Turnbasedです。
更に、Chatに特化したプランとしてPhoton Chatがあります。
サーバインストール型はPhoton Serverのみです。

1ルームあたりのメッセージ数の上限とは、例えば4人のルームの場合1人が外の3人に何らかのメッセージを送信した際に
送信1メッセージ、受信3メッセージの合計4メッセージが必要となるという計算です。

なおメッセージ数の上限を超えた場合は、接続が出来なくなるといった制限は今のところ無いようです。

Photon Server

サーバインストール型はPhoton Serverのみです。
Photon Cloudにカスタマイズを行いたい場合や、社内ポリシーの都合等で自社で運用したい場合はこちらを選択してください。
例えばルームに入室した際にサーバ側でビジネスロジックを実装したい等の場合はPhoton Serverを選択すると良いでしょう。

導入環境ですがPhoton Serverは現状Windows Serverのみの対応となっていますのでご注意ください。
Photon Serverは4コアCPU/4GBメモリの環境で約2,000CCU程度捌くことが可能だそうです。
もちろんゲームバランスに依るところがあるので、必ず負荷試験を行ったほうが良いでしょう。
当然ですが、Photon Serverにはメッセージ数の上限はありません。

Photon Serverの導入やカスタマイズ方法といった詳細な内容は次回以降に掲載予定です。

Photonのクライアントサイドの対応SDKについて

Photonのクライアントサイドは様々なプラットフォームに対応しています。
特にUnityの利用が多いイメージですが、下記のような環境でも利用可能です。

  • iOS(Obejective-C)
  • Android(Java/NDK)
  • Windows(C++/.NET)
  • HTML(TypeScript)
  • Flash
  • Unity
  • Marmalade SDK
  • Corona SDK
  • PS3/PS4/PS Vita

Unreal Engineでも利用することは可能だそうですが、情報を持ち合わせていないため割愛させてください(情報求む!!)。
Android-iOS間PS Vita-Android間といった、プラットフォームを跨いでも利用することが可能です。
Photonなら、モバイル向けに作ったコンテンツのコンシューマ移植も容易にできるかと思います。

UnityでPhotonを使いたい場合はAsset StoreからダウンロードできるPhoton Unity Networkingというものがあります。
これはPhoton SDKの上位ラッパーという位置づけで、Unity Networkigと互換性をもっています。
Photonのほぼ全ての機能を備えている上に、直感的に利用することが可能なので、Unityの場合はこちらを利用することをお勧めします。
なお、サービス運営元のサイトで配布しているPhoton SDKと呼ばれ、従来の機能として利用することが可能です。

PhotonではCloudとServerの繋ぎ替えが容易にできます。
クライアント側でPhoton CloudのIPからPhoton ServerのIPに変更するだけで、接続先を変更可能です。
はじめはPhoton Cloudを使っていたが、Photon Serverに移行するような場合も手間がかかりません。

疲れたから今日はこれくらいで。
次回はPhoton Serverの導入とカスタマイズについて書きたいと思います。


Posted in Photon.