VR/ARで使いたいUnity対応マルチプレイゲーム用BaaSを比較する

Takashi Miwa
Kadinche Engineering
8 min readApr 7, 2020

はじめに

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アプリの開発を行っていますので、お問い合わせはお気軽にどうぞ。

--

--