Quantcast
Channel: Google Developers Japan
Viewing all articles
Browse latest Browse all 2207

AppShip3000: Firebase を利用したゲーム

$
0
0
この記事は デベロッパー プログラム エンジニア、Abe Haskins による The Firebase Blog の記事 "AppShip3000: A Firebase Game" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。 
 
すばらしいゲームを作るのは難しいことです。ゲームは始めやすいものであると同時にやりがいがあって、少し中毒性があり、そしてもちろん楽しいものでなければなければなりません。また、当然ながら、技術的な作業の一環として、そのすばらしいゲームを支えるインフラストラクチャの設計も必要になります。Firebase の目的は、皆さんが手がけるゲームの独自の要素に集中できるように、インフラストラクチャという最後のピースを引き受けることにあります。  
 
今年の Google I/O では、Firebase でゲームを作ることを通して、このプラットフォームのテストを行いました。そして生まれたのが AppShip3000 です。その結果には、とても満足しています。 
 
懸命に作業する AppShip3000 開発チーム。はんだ付けも楽しい作業です!

動作の仕組み
AppShip3000 は、3 人で協力してロケットを飛ばすという簡単なゲームです。上に向かって飛ぶロケットは、すぐに燃料切れになってしまいます。プレーヤーは、そのロケットを協力して操作します。画面の上からは、隕石が次々と落ちてきます。その中でロケットを上昇させるには、Firebase や Google Cloud に関するクイズに答えなければなりません。

難しいのは、プレーヤーには問題か一部の選択肢しか見えないことです。プレーヤーは、時間切れになる前に、話し合って(叫び合って)正解を見つけなければなりません。同じように、他のプレーヤーよりも早く隕石が見えるプレーヤーがいるので、どこに隕石が落ちてくるかを叫び、チーム全員でロケットを操作しなければなりません。燃料を失わずに隕石との衝突を避けるには、プレーヤー全員が同じ方向にジョイスティックを動かす必要があります。

Firebase を使った開発
では、Firebase がどのように AppShip3000 を支えているのかを見てみましょう。まず、ログインには Firebase Authenticationが利用されています。プレーヤーはスマートフォンでプログレッシブ ウェブアプリ(PWA)を開き、自分の Google アカウントでログインします。すると、Cloud Function の Authentication トリガーによってアカウントが作成され、カスタムのボタン操作(起動コード)が生成されます。この起動コードによって、ゲームのプレイ中、アカウントとコントローラが関連付けられ、ゲームの終了時には、すべての状態が自動的にアカウントに関連付けられます。
Google I/O 2017 で公開された完成品

ゲームが終わると、Realtime Databaseを使って PWA のスコアボードを即座に更新します。I/O では、スコアボードが大画面で表示されていました。Realtime Database は、ゲーム中のクイズの管理にも利用されています。そのため、クイズはその場で更新でき、あるゲームが終わったあとに追加されたクイズは、次のゲームで本番環境に反映されます。

さらに、ゲームが終わるごとにロケットの飛行経路のイメージを生成し、Cloud Storage for Firebaseに格納しています。この操作で別の Cloud Function が呼び出され、Firebase Cloud Messagingでプレーヤーに通知されます。この通知によって、プレーヤーは記念になるイメージを友だちと共有できます。


スタートガイド
AppShip3000 の開発はとても楽しい経験でした。ほとんどのインフラストラクチャに Firebase を使ったので、他にはない(と思われる)ゲームの開発に集中でき、皆さんに楽しんでいただくことができました。Firebase を使ってゲームを作ってみたい方は、C++ および Unity のドキュメントをご覧ください。AppShip3000 のデータ パイプラインの管理にどのように Firebase や Google Cloud が使われていたかを詳しく知りたい方は、I/O のセッションをご覧ください。皆さんのゲームのリリースを楽しみにしています。



Reviewed by Khanh LeViet - Developer Relations Team

Viewing all articles
Browse latest Browse all 2207

Trending Articles