Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Firebaseを使ってゲーム開発をやってみた_GDG DevFest Tokyo 2018
Search
gremito
September 01, 2018
2
3.7k
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
Share
More Decks by gremito
See All by gremito
クラウドE2Eテスト環境を構築してQA業務の効率化アップ
gremito
0
120
Unity Fukuoka 17 - (非公式)Unityプログラミング・バイブルR6 発売記念イベント
gremito
0
63
QAエンジニアになる必要な知識とスキル
gremito
0
550
JaSST'20 Tokyo RejectCon for Session
gremito
0
1.6k
3Dゲーム開発で気をつけるべきこと
gremito
1
420
できることが多いUnityの落とし穴について - Unity Fukuoka 15
gremito
0
260
運用と開発が同時並行で進んでいるRailsアプリケーションをDocker対応した事例について
gremito
1
1.4k
令和で脱サラ 転職LT#5 #jobchanger
gremito
1
450
Unityのインストラクターはじめました - Gotanda.unity #13 #gotandaunity
gremito
1
640
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
42
2.7k
Adopting Sorbet at Scale
ufuk
77
9.4k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Visualization
eitanlees
146
16k
GitHub's CSS Performance
jonrohan
1031
460k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
Making the Leap to Tech Lead
cromwellryan
134
9.4k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.4k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
Transcript
Firebaseを使ってゲーム開発をやってみた Game Development for Firebase Unity SDK GDG DevFest Tokyo
2018 2018/09/01(土)@grem_ito
自己紹介 • 岩本 拓也 ◦ gremito(@grem_ito) • ドリコム ゲーム基盤技術部
所属 ◦ 自称QAエンジニアやり始めました。 • UNIBOOK(日本Androidの会 Unity部) ◦ Unityの逆引きTIPS集 ◦ UNIBOOK 7・8・9・10で執筆 • 八耐: 八時間耐久制作会(仮) ◦ 8時間でモノ作りをやって発表して交流する会で す。 ◦ 約7年ほど参加・運営やってます。 ※Firebaseを扱ったサービス開発は未経験です。
http://www.unity-bu.com/ 日本Androidの会 Unity部 • 技術書典5 10/8(月祝)【か60】 • 11作目のUNIBOOK11を頒布予定!
https://firebase.asia/
https://firebase.asia/
今回のセッションについて • ゲームアプリ開発に興味がある人 • Unityに関わっている人 • これからFirebaseとUnityで何か作ろう・作りたいと考えている人
demo
なぜ作ったのか https://cloudplatform.googleblog.com/2018/06/new-gitHub-repo-using-firebase-to-add-cloud-based-features-to-games-built-on-unity.html
なぜ作ったのか https://cloudplatform.googleblog.com/2018/06/new-gitHub-repo-using-firebase-to-add-cloud-based-features-to-games-built-on-unity.html
なぜ作ったのか 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が マジで酷い作りだった...ʚ
なぜ作ったのか https://cloudplatform.googleblog.com/2018/06/new-gitHub-repo-using-firebase-to-add-cloud-based-features-to-games-built-on-unity.html
なぜ作ったのか https://cloudplatform.googleblog.com/2018/06/new-gitHub-repo-using-firebase-to-add-cloud-based-features-to-games-built-on-unity.html Updateにめっちゃ書いてる...
なぜ作ったのか • FirebaseExtended/unity-solutionsを反面教師にゲームとFirebaseをシンプルに連携させ たUnityとFirebaseのベースプロジェクトを作りたいと思った • ゲーム開発でどこまでFirebaseが使えるのか知りたかった • Firebaseでオモロイことやりたかった
設計について
Game System Development iOS/Android Development Unity Build ゲームアプリ開発 - ユーザー情報
- サーバーサイド - ファイルDL - ...etc - ネイティブプ ラグイン OR - SDK 16
設計 ゲーム サーバ サイド
何を使いたかったのか ユーザー認証 サーバーサイド ファイル サーバー データベース データベース 設定情報
何を使ったのか ユーザー認証 サーバーサイド データベース データベース
設計 記録更新 最新のランキング 参照用 ユーザー情報 更新 更新をトリガーに ランキングを更新
設計 記録更新 最新のランキング 参照用 ユーザー情報 更新 更新をトリガーに ランキングを更新 これをやりたかったです...ʚ
開発について
開発 ゲームシステム ő
開発 Standard Assets for Unity 4.6 https://assetstore.unity.com/packages/essentials/asset-packs/standard-assets-for-unity-4-6-21064
開発 Easy FPS https://assetstore.unity.com/packages/3d/characters/humanoids/easy-fps-73776
開発 Easy FPS Standard Assets FPSシステム ゲームパッド
開発 http://tsubakit1.hateblo.jp/entry/2014/10/09/035003
開発 Firebase(サーバ)
開発 https://unity-bu.booth.pm/items/831502 https://unity-bu.booth.pm/items/971623 第2章 Firebaseを用いたゲームアプリ開発 第4章 FirebaseとUnity
開発
TIPS
TIPS:Firebase関連 【Functions】 • ログがリアルタイムで詳細に表示してくれて良い • デプロイめんどくさい • ちゃんと設計しないとすぐ動かなくなる ◦
Functions: index.jsに全て書いてしまう ◦ UnitySDK: ゲームに密結合しないように疎結合で組み込まないと後々ヤバくなる • イベント・トリガーが作れなかった ◦ FunctionsはWebAPIとして作っていた ◦ ユーザーのデータが増えた際の {user_id}という指定がシンプルにできない ◦ 状態を保ち{user_id}などができるように設計する必要あり • admin.とfirebase.が混在してしまう • req.query.{数値が入ってる変数}で受け取るとき整数ではなく文字列になっている
TIPS:Unity関連 • ゲームシステムとFirebase関連の開発が今のところ同じくらいの工数だった • Authの実装をメールアドレスで一旦実装すると楽 ◦ 作業が落ち着いたら電話番号認証を実装したいと考えていた ▪ 10,000/月までの認証なら無料で
SMS(電話番号)認証を簡単に構築できる ▪ アプリになるとAuthの実装はダルイ ▪ Google Play認証は意外とダルかった
まとめ
まとめ • まだ完成できていません • 課題がいっぱい増えた(笑) • 気をつけて開発する諸々の知見を得た ◦ Firebaseの1日MAX制限を知れた(意外とあっさり
MAX制限超える ◦ Functionsの開発がキモになる( {WebAPI:クライアント連携}・{トリガー:他サービス連携} • 辛かった場面は多かったけど出来たときは超楽しい!! • やってみて分かったこと・知れたことが多かったためやってみて良かったƴ
やってわかったこと • Firebaseを使いこなすなら無料で使いやすいため小さいシステムをどんどん作っていく ◦ Firebaseのサービス1~2つで便利なツールを作る • 規模が大きくなるとFirebaseが辛くなる... ◦ 公式の「使用例」やドキュメントの「Cloud
Functions で可能な処理」を見ると1~3つのサービスを 連携させて ◦ ゲーム開発はどうしても大きなシステムになりがち
課題 • やってないことが多い ◦ クエリ、分散カウンタ、スケーリング ◦ セッション、Cookie ◦ GCPとの連携
◦ ...etc • Cloud StorageとAssetBundle • テスト・CI • DevOps • ...etc
課題 • やってないことが多い ◦ クエリ、分散カウンタ、スケーリング ◦ セッション、Cookie ◦ GCPとの連携
◦ ...etc • Cloud StorageとAssetBundle • テスト・CI • DevOps • ...etc やることいっぱいやんw ʚ
https://github.com/gremito/firebase-game-app 現時点のソース コードをGitHubに 公開しています。
thank you!!