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
98
Unity Fukuoka 17 - (非公式)Unityプログラミング・バイブルR6 発売記念イベント
gremito
0
53
QAエンジニアになる必要な知識とスキル
gremito
0
520
JaSST'20 Tokyo RejectCon for Session
gremito
0
1.5k
3Dゲーム開発で気をつけるべきこと
gremito
1
400
できることが多いUnityの落とし穴について - Unity Fukuoka 15
gremito
0
250
運用と開発が同時並行で進んでいるRailsアプリケーションをDocker対応した事例について
gremito
1
1.4k
令和で脱サラ 転職LT#5 #jobchanger
gremito
1
430
Unityのインストラクターはじめました - Gotanda.unity #13 #gotandaunity
gremito
1
590
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
94
13k
Rebuilding a faster, lazier Slack
samanthasiow
80
8.8k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
For a Future-Friendly Web
brad_frost
176
9.5k
Adopting Sorbet at Scale
ufuk
74
9.2k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
100
18k
Six Lessons from altMBA
skipperchong
27
3.6k
Raft: Consensus for Rubyists
vanstee
137
6.8k
We Have a Design System, Now What?
morganepeng
51
7.4k
Bootstrapping a Software Product
garrettdimon
PRO
306
110k
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!!