UnityでFirebaseのRealtime Databaseで位置同期検証してみた
Firebaseでキャラクター同期して遊べるゲームの検証
昨今UnityでもCrashlyticsやAnalyticsも内包しているFirebase使ってみようかなと思ったのがきっかけです。 特にFirebaseのRealtime Databaseを使うとFirebaseで値を保持してすぐにクライアントと同期してくれるというので試してみました。Firebaseはリアルタイムに同期するゲームには向いていないという意見をよくみてなんでだろう?と思ったので検証しました。
自分はサーバー側がわからなければFirebaseも初めて触っているので当たり前のことでもわからないため動かしました。
動かした結果は以下のツイートの動画になります。FirebaseのRealtime Databaseを使えるプロジェクトを用意してEditorで動かしました。位置は毎フレーム同期させています。
Realtimedatabaseでやってみたけど割と…
— あるど (@OrangeGKeeper) 2020年1月6日
接続数とかの問題が出ると大変なのかもだけど pic.twitter.com/xBOAaVnITR
右のEditorのキャラクターの位置がすぐに左に反映されているのがわかると思います。 この結果だけみると「意外といけるのでは?」と思っていました。 しかし、Realtime Databaseには無料枠だと制限があります。
Firebaseから情報をダウンロードするのに月10GBの制限があるのですが、2つのクライアントから数分動かしただけで27.3MBかかっています。これが人数が増える or 情報が多くなるとものの数日や数時間で10GBに到達してしまいます。従量課金制のプランにすれば上限なしでかかった分だけ払えばいいのですが一旦無料でいけるところまでやりたいので今回は検証結果をまとめるだけまとめてスルーしておこうと思います。
次はMirrorでも試してみようかと思っています。 github.com