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
40
QAエンジニアになる必要な知識とスキル
gremito
0
490
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
560
福岡のUnity界隈を盛り上げるイベント『Unity Fukuoka』 #edayfuk
gremito
0
2.8k
Featured
See All Featured
A designer walks into a library…
pauljervisheath
204
24k
RailsConf 2023
tenderlove
29
900
Raft: Consensus for Rubyists
vanstee
136
6.6k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
28
2k
How to train your dragon (web standard)
notwaldorf
88
5.7k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
What's in a price? How to price your products and services
michaelherold
243
12k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
506
140k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
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!!