Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Firebaseを使ってゲーム開発をやってみた_GDG DevFest Tokyo 2018

gremito
September 01, 2018
3.3k

Firebaseを使ってゲーム開発をやってみた_GDG DevFest Tokyo 2018

Game Development for Firebase Unity SDK

GDG DevFest Tokyo 2018
2018/09/01(土)@grem_ito

gremito

September 01, 2018
Tweet

More Decks by gremito

Transcript

  1. Firebaseを使ってゲーム開発をやってみた Game Development for Firebase Unity SDK GDG DevFest Tokyo

    2018 2018/09/01(土)@grem_ito
  2.   自己紹介 • 岩本 拓也 ◦ gremito(@grem_ito) • ドリコム ゲーム基盤技術部

    所属 ◦ 自称QAエンジニアやり始めました。 • UNIBOOK(日本Androidの会 Unity部) ◦ Unityの逆引きTIPS集 ◦ UNIBOOK 7・8・9・10で執筆 • 八耐: 八時間耐久制作会(仮) ◦ 8時間でモノ作りをやって発表して交流する会で す。 ◦ 約7年ほど参加・運営やってます。 ※Firebaseを扱ったサービス開発は未経験です。
  3. http://www.unity-bu.com/ 日本Androidの会 Unity部 • 技術書典5 10/8(月祝)【か60】 • 11作目のUNIBOOK11を頒布予定!

  4. https://firebase.asia/

  5. https://firebase.asia/

  6.  今回のセッションについて • ゲームアプリ開発に興味がある人 • Unityに関わっている人 • これからFirebaseとUnityで何か作ろう・作りたいと考えている人

  7. demo

  8.   なぜ作ったのか https://cloudplatform.googleblog.com/2018/06/new-gitHub-repo-using-firebase-to-add-cloud-based-features-to-games-built-on-unity.html

  9.   なぜ作ったのか https://cloudplatform.googleblog.com/2018/06/new-gitHub-repo-using-firebase-to-add-cloud-based-features-to-games-built-on-unity.html

  10.   なぜ作ったのか https://cloudplatform.googleblog.com/2018/06/new-gitHub-repo-using-firebase-to-add-cloud-based-features-to-games-built-on-unity.html FirebaseExtended/unity-solutionsが マジで酷い作りだった...ʚ

  11.   なぜ作ったのか https://cloudplatform.googleblog.com/2018/06/new-gitHub-repo-using-firebase-to-add-cloud-based-features-to-games-built-on-unity.html

  12.   なぜ作ったのか https://cloudplatform.googleblog.com/2018/06/new-gitHub-repo-using-firebase-to-add-cloud-based-features-to-games-built-on-unity.html Updateにめっちゃ書いてる...

  13.   なぜ作ったのか • FirebaseExtended/unity-solutionsを反面教師にゲームとFirebaseをシンプルに連携させ たUnityとFirebaseのベースプロジェクトを作りたいと思った • ゲーム開発でどこまでFirebaseが使えるのか知りたかった • Firebaseでオモロイことやりたかった

  14. 設計について

  15. Game System Development iOS/Android Development Unity Build ゲームアプリ開発 - ユーザー情報

    - サーバーサイド - ファイルDL - ...etc - ネイティブプ ラグイン   OR - SDK 16
  16.   設計 ゲーム サーバ サイド

  17.   何を使いたかったのか ユーザー認証 サーバーサイド ファイル サーバー データベース データベース 設定情報

  18.   何を使ったのか ユーザー認証 サーバーサイド データベース データベース

  19.   設計 記録更新 最新のランキング 参照用 ユーザー情報 更新 更新をトリガーに ランキングを更新

  20.   設計 記録更新 最新のランキング 参照用 ユーザー情報 更新 更新をトリガーに ランキングを更新 これをやりたかったです...ʚ

  21. 開発について

  22.   開発 ゲームシステム ő

  23.   開発 Standard Assets for Unity 4.6 https://assetstore.unity.com/packages/essentials/asset-packs/standard-assets-for-unity-4-6-21064

  24.   開発 Easy FPS https://assetstore.unity.com/packages/3d/characters/humanoids/easy-fps-73776

  25.   開発 Easy FPS Standard Assets FPSシステム ゲームパッド

  26.   開発 http://tsubakit1.hateblo.jp/entry/2014/10/09/035003

  27.   開発 Firebase(サーバ) 

  28.   開発 https://unity-bu.booth.pm/items/831502 https://unity-bu.booth.pm/items/971623 第2章 Firebaseを用いたゲームアプリ開発 第4章 FirebaseとUnity

  29.   開発

  30. TIPS

  31.   TIPS:Firebase関連 【Functions】 • ログがリアルタイムで詳細に表示してくれて良い • デプロイめんどくさい • ちゃんと設計しないとすぐ動かなくなる ◦

    Functions: index.jsに全て書いてしまう ◦ UnitySDK: ゲームに密結合しないように疎結合で組み込まないと後々ヤバくなる • イベント・トリガーが作れなかった ◦ FunctionsはWebAPIとして作っていた ◦ ユーザーのデータが増えた際の {user_id}という指定がシンプルにできない ◦ 状態を保ち{user_id}などができるように設計する必要あり • admin.とfirebase.が混在してしまう • req.query.{数値が入ってる変数}で受け取るとき整数ではなく文字列になっている
  32.   TIPS:Unity関連 • ゲームシステムとFirebase関連の開発が今のところ同じくらいの工数だった • Authの実装をメールアドレスで一旦実装すると楽 ◦ 作業が落ち着いたら電話番号認証を実装したいと考えていた ▪ 10,000/月までの認証なら無料で

    SMS(電話番号)認証を簡単に構築できる ▪ アプリになるとAuthの実装はダルイ ▪ Google Play認証は意外とダルかった
  33. まとめ

  34.   まとめ • まだ完成できていません • 課題がいっぱい増えた(笑) • 気をつけて開発する諸々の知見を得た ◦ Firebaseの1日MAX制限を知れた(意外とあっさり

    MAX制限超える ◦ Functionsの開発がキモになる( {WebAPI:クライアント連携}・{トリガー:他サービス連携} • 辛かった場面は多かったけど出来たときは超楽しい!! • やってみて分かったこと・知れたことが多かったためやってみて良かったƴ
  35.   やってわかったこと • Firebaseを使いこなすなら無料で使いやすいため小さいシステムをどんどん作っていく ◦ Firebaseのサービス1~2つで便利なツールを作る • 規模が大きくなるとFirebaseが辛くなる... ◦ 公式の「使用例」やドキュメントの「Cloud

    Functions で可能な処理」を見ると1~3つのサービスを 連携させて ◦ ゲーム開発はどうしても大きなシステムになりがち
  36.   課題 • やってないことが多い ◦ クエリ、分散カウンタ、スケーリング ◦ セッション、Cookie ◦ GCPとの連携

    ◦ ...etc • Cloud StorageとAssetBundle • テスト・CI • DevOps • ...etc
  37.   課題 • やってないことが多い ◦ クエリ、分散カウンタ、スケーリング ◦ セッション、Cookie ◦ GCPとの連携

    ◦ ...etc • Cloud StorageとAssetBundle • テスト・CI • DevOps • ...etc やることいっぱいやんw ʚ
  38. https://github.com/gremito/firebase-game-app 現時点のソース コードをGitHubに 公開しています。

  39. thank you!!