VR/ARで使いたいUnity対応マルチプレイゲーム用BaaSを比較する
はじめに
VRアプリを開発していて、マルチプレイゲーム用BaaSのざっくりとした一覧がほしいなと思ったので作成した。
Photon
主にインゲームで使用されるリアルタイムなデータのやり取りや、音声のやり取り(Photon Voice)が可能。また、Unity SDKも充実している。Extenjectとの共存に最初は苦労したが、慣れれば問題ない。
価格は以下。
基本的には、Photon Cloudというクラウドサービスを利用する形になるが、Photon Serverというオンプレミス用のサービスもあり、カスタムも可能。VRChatはPhotonをカスタムして使っているらしい。
ちなみに最大接続数は8人位までは普通にできるよとのことだ。
What Is The Maximum Number Of Players Supported By Photon Rooms?
GameSparks
AWSが提供する統合的なゲームBaaS。Photonのようなリアルタイム通信も用意されている。
しかし、それよりもアウトゲーム、つまりユーザー認証やアイテム管理などが充実しているし、それ用に使うことが多いだろう。
UnitySDKはあるが、2018年から更新されておらず、中身を少し書き換えないと現在のUnityバージョンでは使用できない。ただ、動作にはそれほど問題は感じなかった。
価格は以下。
Amazon GameLift
同じくAmazonが提供するサービス。上記のサービスと違って、基本的にはホスティングサービスとなる。つまり、サーバーサイド開発の上、このサービス上に載せれば、スケーリングなどを問題なく行ってくれる。モニタリングなども充実しているのも嬉しい。
詳しい特徴は以下。
ゲームマッチングについてのみ、他のサービスのようにプリセットで利用できるものをFlexMatchという形で用意している。
元々別会社サービスであったGameSparksよりも、他のAWSサービスとよくインテグレートされている印象だ。
価格は以下。
Microsoft Azure PlayFab
主にはアウトゲーム用で、リアルタイムの通信はUniyt用にはサポートしていない。PubSubやPlayFab Partyがあるが、前者は2018年よりプライベートプレビューのままで、後者はC++などでUnity用のSDKがない。
ただ、頻繁に更新があり、機能も幅広い。例えば、Photonのアドオンを組み込むとユーザー認証などを行った上で、ネットワークに参加できたり、ルームイベントのフックができたりする。また、GameLiftのように自作したサーバーアプリのホスティングをすることもできる。
価格は以下。
Steamworks
Steam Store出品用ではあるが、インゲームアウトゲームどちらも揃える幅広い機能を使える。ゲームで必要なバックエンドはほぼこれを使用すれば揃うように思う。さらに無料で使用できる。
機能の全体像は以下。
Oculus Platform SDK
今まで、Oculusのアプリを開発してきて、一度もなぜか俎上に上がらなかったSDK。ただ、インゲームアウトゲームどちらの機能も一通り揃えていて、無料である。
ボイスなどは個別のユーザーIDで直接繋ぐなど、なかなか実装すると難儀そうだなと感じる部分もある。そこはこのSDKではなく、他のソリューションを使ってくれということだろう。
機能の全体像は以下。
Vivox
Unityに買収されたテキストチャットとボイスチャットを提供するサービス。PUBGでも使用されているのだから、かなりの安定度なのだろう。
少し実装した感じは、あまり問題を感じなかった。Photon Voiceと比べると空間音響にするのが若干手間がかかった。
また、SDKをダウンロードするには、デベロッパー登録が必要で、即時の返答ではないので、作業開始まで少し時間がかかる。
価格は問い合わせが必要。
モノビット
国産のBaaS。Photonと同種で、データのリアルタイム通信が可能である。国産のVRサービスに使用されている事例も聞いた。UDPもサポートしていて、低遅延。
Photonとの比較などを特に行っていないが、次のサービスでは少し触ってみようかなと思っている。
価格は以下。
Agora.io
ビデオチャットのバックエンドサービスなので、これはゲーム用ではないが、ゲームも用途の一例として紹介されているので、記載する。他のソリューションとの違いは、なんといってもリアルタイムなビデオチャット機能だろう。
WebRTCを使用しているので、低遅延で音声、動画のやり取りができる。UnitySDKも公開されているので、導入も問題なく行えるだろう。
価格は以下。
まとめ
以上が、主なBaaSである。もっとこれ以外もあるよということがあれば、教えてほしい。また、自分でサーバーサイドの実装やホスティングを行うならば、以下のフレームワークやアセットが役立つと思うので、雑多になるが記載しておく。(インターネットが使用できないケースにも使える)
Unityリアルタイム通信アセット
MirrorはUnityのデータ通信アセットとして使用できる。
Dissonance は上記のMirrorで音声のやり取りをする際のアセット。
MagicOnionはデータのやり取りや音声のやりとりに便利。
最後に(採用のお願い)
私の所属するカディンチェ株式会社では、積極的にUnityエンジニア、画像処理系エンジニア等の採用を行っております。募集については、コーポレートサイトのリクルートからご確認いただけます。
また、VRメタバースアプリを始めとするVR/ARアプリの開発を行っていますので、お問い合わせはお気軽にどうぞ。