1. Ringkasan
Dalam codelab ini, Anda akan mempelajari cara mengintegrasikan C++ Firebase Games SDK dalam contoh game Android menggunakan Google Analytics sebagai contoh. Anda dapat menambahkan fitur yang diperlukan, mengintegrasikan beberapa logika analisis dasar untuk mengukur progres pemain, dan membagikan game kepada penguji untuk mendapatkan masukan awal.
Panduan
Jika Anda ingin mempelajari codelab ini bersama penulis, tonton video ini:
Yang akan Anda pelajari
- Cara menambahkan Firebase ke game berbasis CMake Android Anda.
- Cara mengetahui dependensi C++ dan Gradle yang Anda butuhkan.
- Cara mencatat peristiwa Analytics.
- Cara men-debug peristiwa Analytics.
- Cara membagikan game Anda dengan App Distribution.
Yang Anda butuhkan
- Android Studio
- Kode contoh
- Perangkat uji atau emulator dengan Layanan Google Play
2. Mendapatkan kode contoh
Checkout atau Download dari GitHub:
git clone https://github.com/FirebaseExtended/cmake-way-for-firebase.git
Download Firebase SDK
MacOS/Linux:
sh download.sh
Windows (dari PowerShell):
./download.ps1
Anda juga dapat mendownload SDK secara manual. Jika Anda melakukannya, Firebase C++ SDK harus diekstrak ke /third_party sehingga folder bernama firebase_cpp_sdk memiliki root CMakeLists.txt dari Firebase SDK di dalamnya.
3. Menjalankan game contoh
Pertama, mainkan game contoh dan pastikan semuanya berfungsi. Game ini adalah game infinite runner sederhana dengan level yang dibuat secara prosedural dan satu tombol untuk melompat.
- Pilih File > New > Import Project (atau pilih Import Project dari layar pembuka)
- Buka folder
proj.android/yang disertakan dalam repositori
- [Opsional] Buka
proj.android/gradle.propertiesdan temukanPROP_APP_ABI. Anda dapat menghapus semua arsitektur kecuali target untuk mengurangi waktu build.PROP_APP_ABI=x86akan dibuat hanya untuk emulatorPROP_APP_ABI=armeabi-v7aakan dibuat untuk sebagian besar ponsel - Klik tombol Debug
untuk mem-build dan menjalankan game. Proses ini akan memerlukan waktu untuk membangun mesin game Cocos2dx.
4. Penyiapan Firebase Console
- Buat project baru di Firebase Console.

- Beri nama seperti "Popsicle Runner"
- Mengaktifkan Analytics

- Menambahkan atau membuat akun Analytics

- Menambahkan aplikasi Android baru ke project Anda

- Tambahkan
com.firebase.popsiclerunnersebagai nama paket Anda.

- Download google-services.json dan salin ke
proj.android/app
- Abaikan petunjuk yang diberikan untuk menambahkan Firebase SDK dan klik berikutnya
- Anda dapat mengklik "Lewati langkah ini" saat diminta untuk memverifikasi penginstalan Anda
5. Menambahkan Firebase ke game Anda
Tambahkan Firebase SDK ke CMakeLists.txt
Buka CMakeLists.txt tingkat root. Kode berikut harus ada di dekat bagian atas
CMakeLists.txt
cmake_minimum_required(VERSION 3.6)
set(APP_NAME popsiclerunner)
project(${APP_NAME})
dan tambahkan baris berikut ke bagian akhir file CMakeLists.txt tersebut
CMakeLists.txt
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/third_party/firebase_cpp_sdk)
target_link_libraries(${APP_NAME} firebase_analytics firebase_app)
add_subdirectory menyertakan Firebase C++ SDK dan menyediakannya untuk game ini
target_link_libraries Menghubungkan game dengan library C++ Firebase yang dibuat untuk Android.
Menambahkan plugin Layanan Google
Untuk menghubungkan Firebase SDK, Anda harus menambahkan plugin Layanan Google ke skrip build gradle Anda. Untuk melakukannya, buka file build.gradle level project (berada di folder proj.android). Lalu, tambahkan classpath 'com.google.gms:google-services:4.3.3' sebagai dependensi buildscript.
build.gradle
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.0.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath 'com.google.gms:google-services:4.3.3' // Google Services plugin
}
}
Kemudian, tambahkan plugin ke file build.gradle tingkat modul (berada di folder proj.android/app). Tambahkan apply plugin: 'com.google.gms.google-services' di bawah apply plugin: 'com.android.application':
build.gradle
apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services' // Google Services plugin
Menemukan C++ SDK di Gradle
Untuk memberi tahu Gradle tempat menemukan Firebase C++ SDK, tambahkan baris berikut ke bagian bawah file settings.gradle.
settings.gradle
gradle.ext.firebase_cpp_sdk_dir = "$settingsDir/../third_party/firebase_cpp_sdk/"
includeBuild "$gradle.ext.firebase_cpp_sdk_dir"
Menambahkan dependensi Android
Untuk menghubungkan dependensi Android untuk Firebase, buka file gradle level modul untuk popsicle_runner (di proj.android/app/build.gradle) dan tambahkan kode berikut tepat sebelum bagian dependences { yang biasa di akhir:
build.gradle
apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle"
firebaseCpp.dependencies {
analytics
}
AndroidX dan Jetifier
Tambahkan dukungan AndroidX dan Jetifier dengan membuka gradle.properties dan menambahkan ini di bagian akhir:
gradle.properties
android.useAndroidX = true
android.enableJetifier = true
Melakukan inisialisasi Firebase di game Anda
Lakukan inisialisasi Firebase di game dengan membuka Classes/AppDelegate.cpp. Tambahkan direktif #include berikut ke bagian atas:
AppDelegate.cpp
#include <firebase/app.h>
#include <firebase/analytics.h>
Kemudian, tambahkan App::Create dan inisialisasi fitur Firebase yang Anda butuhkan. Untuk melakukannya, temukan AppDelegate::applicationDidFinishLaunching dan tambahkan kode ini sebelum auto scene = MainMenuScene::createScene():
AppDelegate.cpp
{
using namespace firebase;
auto app = App::Create(JniHelper::getEnv(), JniHelper::getActivity());
analytics::Initialize(*app);
}
Jika Anda men-debug game dan memuat ulang dasbor Firebase, Anda akan melihat satu pengguna baru muncul setelah sekitar satu menit.
6. Menambahkan Analytics
Bahkan di awal pengembangan, analisis adalah alat yang berguna untuk mengukur cara penguji beta berinteraksi dengan game. Ada beberapa analisis yang dikumpulkan secara otomatis – seperti laporan retensi – tetapi sebaiknya tambahkan peristiwa kustom yang disesuaikan untuk game spesifik Anda.
Titik awal yang baik adalah mencatat peristiwa analisis saat pemain memulai level. Kita dapat menggunakan jumlah peristiwa mulai level untuk melihat seberapa sering pemain mungkin memutar ulang game dalam satu sesi.

Kami juga akan mencatat peristiwa saat pemain mati dan seberapa jauh mereka telah bermain. Dengan begitu, kita dapat melihat bagaimana perubahan yang kita lakukan mengubah durasi satu sesi dan akan membantu kita menentukan apakah pemain menginginkan game yang lebih singkat/sulit atau lebih panjang/mudah.
Menambahkan Header Analytics
Buka Classes/PopsicleScene.cpp dan tambahkan header Firebase di bagian atas agar kita dapat melakukan panggilan analytics.
PopsicleScene.cpp
#include <firebase/analytics.h>
#include <firebase/analytics/event_names.h>
Mencatat peristiwa Mulai Level
Untuk mencatat peristiwa saat Scene ini dipentaskan oleh Cocos2dx Director, temukan fungsi stub PopsicleScene::onEnter(). Masukkan kode berikut untuk mencatat peristiwa Mulai Level di sini:
PopsicleScene.cpp
using namespace firebase;
analytics::LogEvent(analytics::kEventLevelStart);
Mencatat peristiwa Akhir Level
Untuk melihat seberapa baik performa pemain, mari catat peristiwa Akhir Level dengan seberapa jauh pemain mencapai level saat akhirnya mati. Untuk melakukannya, temukan PopsicleScene::gameOver(), dan tambahkan ini ke akhir blok if(!_gameOver) { sebelum menyetel _gameOver = true;:
PopsicleScene.cpp
{
using namespace firebase;
analytics::LogEvent(analytics::kEventLevelEnd, "distance", _lastDistance);
}
kEventLevelEnd adalah peristiwa akhir level. Sedangkan "distance" adalah "parameter peristiwa". Kita menambahkan jarak terakhir yang tercatat di sini, yang merupakan perkiraan yang baik untuk seberapa jauh pemain berjalan sebelum mati.
7. Menguji Peristiwa
Anda dapat mengklik Debug
sekarang, tetapi perlu waktu agar peristiwa dilaporkan di dasbor Analytics. Ada dua alasan untuk hal ini: 1) peristiwa dikelompokkan dan diupload sekitar sekali per jam untuk menghemat baterai dan 2) laporan dibuat setiap 24 jam.
Mengaktifkan Mode Debug
Anda tetap dapat men-debug peristiwa Analytics dengan mengaktifkan mode debug di perangkat Anda.
Pertama, pastikan Anda telah menginstal dan menyiapkan Android Debug Bridge (ADB). Mengetik adb devices akan menampilkan perangkat yang akan Anda uji:
$ adb devices List of devices attached emulator-5554 device
Kemudian, jalankan perintah adb shell berikut:
adb shell setprop debug.firebase.analytics.app com.firebase.popsiclerunner
Hal ini memberi tahu Firebase Analytics untuk mencatat peristiwa secara langsung, dan akan otomatis mengecualikannya dari laporan normal Anda untuk menghindari pencemaran peristiwa aktif saat pengujian. Jika Anda ingin mengurungkan tindakan ini nanti, cukup tulis:
adb shell setprop debug.firebase.analytics.app .none.
Melihat Peristiwa
Buka "DebugView" di Firebase Console Anda 
Klik Debug
dan mainkan game. Anda akan melihat peristiwa baru muncul hampir segera setelah terjadi dalam game. 
Jika meluaskan peristiwa level_end, Anda juga akan melihat parameter "jarak" kustom yang telah Anda catat. 
8. Menemukan penguji
Selanjutnya, Anda perlu melihat game Anda, baik dari dalam studio, di antara teman dekat, atau dari komunitas Anda. Firebase App Distribution memberi Anda cara yang efektif untuk mengundang pemain bermain game Anda.
Membangun Biner Mandiri
Pertama-tama, bangun APK mandiri untuk dibagikan dari Build > Build Bundles(s) / APK(s) > Build APK(s) 
Android Studio akan menampilkan kotak dialog yang memungkinkan Anda menemukan file yang dibuat. Jika Anda melewatkannya, Anda dapat mengklik "Log Peristiwa" untuk mendapatkan link lagi. 
Mengupload ke Firebase App Distribution
- Buka App Distribution, lalu klik "Mulai"

- Tarik lalu lepas file .apk Anda ke dalam kotak yang bertuliskan "Tarik .apk ke sini untuk membuat rilis baru".

- Masukkan alamat email Anda sebagai penguji pertama.

- Klik Berikutnya.
- Tambahkan deskripsi, lalu Klik Distribusikan
Mengundang Penguji
Daripada harus memasukkan setiap alamat email secara manual, Anda dapat membuat link undangan. Saat merekam pengguna dengan link undangan ini, Anda juga dapat menambahkannya ke grup penguji. Dengan begitu, Anda dapat memisahkan penguji internal dari penguji eksternal.
- Klik "Penguji & Grup"

- Buat grup baru
, lalu beri nama seperti "Penguji Android". - Klik "Link undangan"

- Klik "Link undangan baru"
- Tetapkan grup di sini dari dropdown.

- Klik "Buat Link"
- Klik "Salin link" dan bagikan link tersebut sesuai keinginan Anda
9. Selamat
Anda telah berhasil menambahkan analisis ke game berbasis C++, mengundang beberapa teman untuk bermain, dan Anda tahu cara menemukan serta menautkan library Firebase dalam sistem build berbasis CMake dan Gradle yang umum dalam pengembangan Android.
Yang Telah Kita Bahas
- Cara menambahkan Firebase ke game berbasis CMake Android Anda.
- Cara mengetahui dependensi C++ dan Gradle yang Anda butuhkan.
- Cara mencatat peristiwa Analytics.
- Cara men-debug peristiwa Analytics.
- Cara membagikan game Anda dengan App Distribution.
Langkah Berikutnya
- Coba buat pengguna login secara anonim dan simpan skor tingginya di Realtime Database.
- Mencatat peristiwa Analytics di game Anda sendiri.
- Coba tambahkan analisis ke game iOS.
Pelajari Lebih Lanjut
- Lihat daftar peristiwa khusus game dan pertimbangkan bagaimana peristiwa tersebut dapat sesuai dengan game Anda sendiri.