mBaaSお役立ちブログ

  • トップ>
  • ブログ>
  • Unity>
  • Unity + mBaaS を使ってリアルタイム協力ゲームを爆速開発してみた

Unity + mBaaS を使ってリアルタイム協力ゲームを爆速開発してみた

はじめに

同僚の結婚式の余興で mBaaS + Unity を使って、リアルタイム協力ゲームを作ってみました。
参加者各自のスマートフォンからメッセージと写真を送ると、会場スクリーン上に表示され、
一定数表示されるとゲームクリアという非常にシンプルかつ簡単ゲームです。

シンプルなゲームであれば、mBaaSの機能をフルに使う事によって、
高速にゲームを作る事ができますので、是非ご活用頂ければと思います。

このゲームの特徴は下記の通りですが、これらは全てmBaaSを使って実現しています。

  1. mBaaSのデータストア+ファイルストアを利用することで、メッセージや画像をクラウド上に保存できます。
  2. メッセージの書き込み順序を保障するためにスクリプトも利用、スクリプト経由でデータストアに書き込みを行っています。

急遽、ゲームに対してバックエンド機能が必要がとなれば、mBaaSを利用すると高速で開発することが可能です。

ゲーム概要

ゲーム概要についてはこちらの記事をご参考ください。
http://blog.mb.cloud.nifty.com/?p=12162

構成イメージ

当ゲームの構成イメージと流れとしては下記の通りです。
非常にシンプルに仕上がっていると思います。

  1. 来場者が手持ちのスマートフォンで、スマホ側のwebアプリからメッセージと写真をアップします。
  2. アップしたメッセージと写真はそれぞれデータストアとファイルストアに保存されます。
  3. スクリーン側のアプリからデータストアの更新を検知し、更新があればメッセージと写真を取得します。
  4. 最後にスクリーン側のアプリにメッセージと画像を表示します。

この記事ではスクリーン側のアプリ(Unityアプリ)について解説したいと思います。
スマホ側のWebアプリについては下記の記事を参考してみてください。
http://blog.mb.cloud.nifty.com/?p=12182

ダウンロード

ソースコードは下記からCloneして利用可能です。
詳細についてはリポジトリのREADMEをご覧ください。
https://github.com/NIFTYCloud-mbaas/WeddingProjectUnityApp

Unityアプリについて

GitHubからCloneすると、Unityパッケージとなっていますので、Unityフォルダーをインポートするだけで
そのままプロジェクトとして利用できます。

このプロジェクトで利用したコードの一部を解説したいと思います。

データストアの更新をUnity側から検知する方法について

データストアに保存しているデータを取得します。

query.AddAscendingOrder(“createDate”);

でデータストアの作成日時の降順で取得するよう設定します。

query.Limit = 1000;

でクエリを取得する件数を1000件とします(デフォルトは100件)。

query.FindAsync 関数を使ってデータストアからデータを取得します。

データの取得に成功すると

if (dataCount == 0 || dataCount != objList.Count)

でデータに追加があるかどうかを判別し、データがない場合は処理を行いません。

さらに、追加のレコードがあった場合にそれぞれ _name, _message, _photonName の変数にセットし、
レコード毎にパネルをめくる処理を行っています。



その他のコードについてはGitHubのプロジェクトをご覧ください。
https://github.com/NIFTYCloud-mbaas/WeddingProjectUnityApp

このようにシンプルなゲームであれば、mBaaSの機能をフルに使う事によって、
高速にゲームを作る事ができますので、是非ご活用頂ければと思います。

おまけ

mBaaSにはタカノ君という非公式マスコットキャラクターがいます。
このゲームではスピナー(インジケーター)用にgifを製作したので、是非ご活用ください。