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.6k
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
Unity Fukuoka 17 - (非公式)Unityプログラミング・バイブルR6 発売記念イベント
gremito
0
37
QAエンジニアになる必要な知識とスキル
gremito
0
480
JaSST'20 Tokyo RejectCon for Session
gremito
0
1.5k
3Dゲーム開発で気をつけるべきこと
gremito
1
390
できることが多いUnityの落とし穴について - Unity Fukuoka 15
gremito
0
230
運用と開発が同時並行で進んでいるRailsアプリケーションをDocker対応した事例について
gremito
1
1.3k
令和で脱サラ 転職LT#5 #jobchanger
gremito
1
410
Unityのインストラクターはじめました - Gotanda.unity #13 #gotandaunity
gremito
1
550
福岡のUnity界隈を盛り上げるイベント『Unity Fukuoka』 #edayfuk
gremito
0
2.8k
Featured
See All Featured
Music & Morning Musume
bryan
46
6.1k
Rails Girls Zürich Keynote
gr2m
93
13k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Scaling GitHub
holman
458
140k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
13
1.9k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Six Lessons from altMBA
skipperchong
26
3.5k
Adopting Sorbet at Scale
ufuk
73
9k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
KATA
mclloyd
29
13k
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!!