Todd Kerpelman
Developer Advocate

Firebase にはすばらしいアプリを簡単に作成できるたくさんの機能が含まれていることはご存じでしょうか?

そうですね。もうご承知のことでしょう。

しかしお気づきかもしれませんが、これまでは「ゲーム」ではなく「アプリ」について取り上げてきました。というのも、このモバイル ライブラリがすばらしい働きをするのは、アプリを Swift や Java、Objective-C で書いているときだからです。

ここで問題になるのは、ほとんどのゲーム デベロッパーは C++ で独自のゲームエンジンを作成していたり、Cocos2D や Unity などのサードパーティ製のゲーム プラットフォームでモバイルゲームを作成していることです。現在も、Firebase ライブラリにはベータ版として利用できる C++ 版がありますが、Unity デベロッパーはかなり古い Firebase Database プラグインしか使えませんでした。

しかし、それも今日までの話です。懸命に努力を続けてきたエンジニアや皆様の継続的なフィードバックのおかげで、まったく新しい Unity SDK が完成しました。これにはさまざまな Firebase プラットフォームが追加されており、公式にサポートされています。

この SDK によって、Unity デベロッパーは 5 月に発表された多くの新しい Firebase 機能を利用できるようになります。たとえば、次のような機能です。

Firebase Analytics: 無償で制限なく利用できるアナリティクス パッケージで、ゲーム内で発生したイベントを記録できます。ゲームのプレーヤーがどこで行き詰まっているか、時間とともにどのくらい利用者数が増えているか、各国のプレーヤーがどこでプレミアム通貨を使っているかなどを分析しましょう。Firebase Analytics ではそのようなイベントを簡単に記録できます。また、BigQuery と連携できるので、かなり高度なデータ マイニングも可能です。

Firebase Real-time Database: アプリのデータが魔法のようにすべての端末に同期されるデータベースです。通常、同期は数百ミリ秒以内で行われます。ゲーム内チャット、端末間での保存データの同期、ターン制のボードゲーム、カードゲーム、戦略ゲームでの活用など、リアルタイムに近い処理が求められる機能に適しています。ただし、マルチプレーヤー型のシューティングゲームや MOBA には適さない可能性があります。ゲーム デベロッパーにとって「リアルタイム」が実際に何を意味するかは、もう少し明確にしたほうがよいかもしれません。

Dynamic Links: プレーヤーをゲーム内の任意の要素(ゲームがインストールされている場合)、または Play ストア / App Store(インストールされていない場合)に移動させることができるモバイル ディープリンクです。ゲーム デベロッパーにとって最適なユースケースとなるのは、Dynamic Links をアプリ内共有に活用することでしょう。Dynamic Links を使うと、あるレベルのリプレイを共有したり、プレーヤーが作ったすばらしい新キャラクターや要塞、ユーザーが作成したコンテンツにリンクを張ることができます。そのための独自インターフェースを作りたくない場合は、Firebase Invites を使いましょう。きれいに整形されたメールや SMS メッセージの中に Dynamic Link を含めることができます。

Authentication: 「ゲームではなく、認証システムを作るためにすべての時間をつぎ込んでいるよ」などと言うゲーム デベロッパーはいないでしょう。Firebase Auth を使うと、ユーザーが簡単に Facebook、Google、GitHub などのサードパーティの認証プロバイダにログインできるようになります。または、ユーザー名とパスワードを用いたカスタムの認証システムを作ることもできます。

Cloud Messaging: Firebase Cloud Messaging を使うと、単一のエンドポイントから iOS と Android の両方の端末に通知を送ることができます。また、Firebase Notifications パネルから通知を送ることもできるので、技術担当以外のチームメンバーでも通知を送ることができます。カスタムのサーバー用コードを記述したり、curl を呼び出したりする必要はありません。

Remote Config: クラウド経由でゲームの設定値をアップデートします。私自身、ゲームで使えることを最も期待していたのがこの機能です。タワー ディフェンス ゲームを設計したことがある方なら、1 つのユニットが難しすぎるだけでゲーム全体のバランスが台無しになってしまうことがわかるでしょう。Remote Config を使うと、クラウドから値を微調整できます。そして、Firebase Analytics で期待通りの結果が出ているかを確認することもできます。Remote Config では、達人級のプレーヤーなど、特定のグループにカスタムの値を設定することも可能です。

このライブラリは Android 端末と iOS 端末で利用できますが、Windows、OSX、Linux 向けのスタブメソッドも追加されているため、ゲームの対象端末に PC が含まれている場合でも多数の条件分岐コードを追加する必要はありません。ちなみに、SDK の Real-time Database の部分は Unity エディタで直接動作するため、テストやデバッグを比較的スムーズに実行できます。


ぜひ、Firebase SDK for Unity をお試しください。こちらからダウンロードできます。SDK には、すばらしいゲームを簡単に作成できるさまざまな機能が含まれています。

今回は最高の気分で書くことができました!



Posted by Yoshifumi Yamaguchi - Developer Relations Team


Remote Display プラグインを使用したゲーム

すでにいくつかのパートナー企業は Unity 用 Remote Display プラグインを使用した楽しいゲーム アプリを提供しており、近日中にさらに多くのゲーム アプリがリリースされる予定です。

Monopoly Here & Now(国内未発表)は、従来の Monopoly ゲームの最新バージョンです。このゲームでは、世界で最も象徴的な都市や名所を訪れながら世界中を旅して、パスポート スタンプを集めます。パスポートをスタンプで埋めたプレイヤーが勝者となります。これは家族全員で楽しめるひと味違ったゲームです。

また、戦略ゲームの Risk(国内未発表)は、友人に対戦を申し込み、自分の軍隊を編成し、世界を征服する、というゲームです。従来の世界地図に加えて、さらに 2 つのテーマ マップが用意されました。

これらのゲームは、携帯電話やタブレットの機能を利用するゲームの魅力的な世界をテレビに映し出せることを証明しています。

ゲームに Remote Display プラグインを追加する

GitHub または Unity Asset Store から Unity 用 Remote Display プラグインをダウンロードできます。既存の Unity ゲームがある場合は、Remote Display パッケージをインポートし、シーンに CastRemoteDisplayManager プレハブを追加します。次に、ローカル ディスプレイとリモート ディスプレイ用のカメラをセットアップし、CastRemoteDisplayManager で構成します。

ユーザーが Google Cast デバイスを選択できるように UI に [Cast] ボタンを表示するには、シーンに CastDefaultUI プレハブを追加します。

これで、アプリをビルドして実行する準備が完了しました。Cast デバイスに接続すると、テレビにリモート カメラ ビューが表示されます。

マルチスクリーンのユーザー エクスペリエンスをサポートするためのゲームの操作方法を考慮する必要があります。モバイル デバイス センサーを使用して、モーションやタッチによる画面上のアクションを操作する抽象コントロールを作成できます。あるいは、プレイヤーがデバイス上の何かをタッチして画面上の何か他のものを制御する仮想コントロールを作成することもできます。

視覚的なデザインについては、プレイヤーの視点を常に移動させないようにして、疲労感を与えないことが重要です。Google Cast UX チームは、Cast 対応のゲームで一貫性のある予測可能なユーザー エクスペリエンスを実現する方法について説明する Google Cast ゲームの UX ガイドラインを作成しています。

デベロッパー向けリソース

Google の Unity 公式プラグインの詳細については、ここを参照してください。Unity 用 Remote Display プラグインの使用方法の詳細については、デベロッパー向けドキュメントと コードラボを参照してください。また、Unity Asset Store と GitHub に UX 対応の Unity サンプル ゲームを公開しています。G+ コミュニティに参加して、Google Cast に関するデペロッパーとしての経験を共有してください。

Posted by Yoshifumi Yamaguchi - Developer Relations Team

ビルドに適したツール

デベロッパーからのリクエストの「トップ 2」であるドリフト補正と Unity パフォーマンスに対応するため、Android と Unity 用の Cardboard SDK ã‚’アップデートしました。今回のアップデートでは、ジャイロスコープとアクセレロメーターからのシグナルを連携するセンサー フュージョン アルゴリズムを徹底的に見直しました。特に、品質の低いセンサーが搭載された携帯端末では、今回の改善によりドリフトを大きく減少することができます。Cardboard SDK for Unity は、Unity ネイティブでの歪みに対応します。主要なプラグインのオーバーヘッドすべてを回避することにより、パフォーマンスが改善され、Carboard アプリが iOS 上の Metal レンダリングと、Android 上のマルチスレッド レンダリングに対応できるようになります。これらはすべて、ユーザーの VR エクスペリエンスの改善につながります。

もっといろいろな所へ

また、Cardboard で Google ストリートビュー が探索できるようになりました。これでさらに多くの場所へ行くことができるようになります。AndroidiOS 向けの Google ストリートビュー アプリの最新版をダウンロードし、Cardboard を使って世界中の行きたい場所に行ってみてください。
Cardboard をたくさんの場所で入手できるようにすることで、世界の人々の距離が少しでも縮まればと願っています。ぜひ活用してみてください。

Posted by Eiji Kitamura - Developer Relations Team