Memulai Firebase di C++

1. Ringkasan

Dalam codelab ini, Anda akan mempelajari cara mengintegrasikan C++ Firebase Games SDK dalam contoh game Android menggunakan Google Analytics sebagai contoh. Anda akan dapat menambahkan fitur yang diperlukan, mengintegrasikan beberapa logika analisis dasar untuk mengukur progres pemain, dan berbagi game dengan penguji untuk mendapatkan masukan awal.

Panduan

Jika Anda ingin mengikuti codelab ini bersama penulis, tonton video ini:

Yang akan Anda pelajari

  • Cara menambahkan Firebase ke game berbasis CMake Android.
  • Cara mengetahui dependensi C++ dan Gradle mana yang Anda perlukan.
  • Cara mencatat peristiwa Analytics ke dalam log.
  • Cara men-debug peristiwa analisis.
  • Cara berbagi game dengan App Distribution.

Yang Anda butuhkan

  • Android Studio
  • Kode contoh
  • Perangkat pengujian 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

Mendownload 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 dalam /third_party sehingga folder bernama firebase_cpp_sdk memiliki root CMakeLists.txt dari Firebase SDK di dalamnya.

3. Menjalankan contoh game

Pertama, mainkan game contoh dan pastikan semuanya berfungsi. Ini adalah game berlari tanpa batas sederhana dengan level yang dibuat sesuai prosedur dan satu tombol untuk melompat.

  1. Pilih File > Baru > Impor Project (atau pilih Impor Project dari layar pembuka)
  2. Buka folder proj.android/ yang disertakan dalam repositori
  1. [Opsional] Buka proj.android/gradle.properties dan cukup PROP_APP_ABI. Anda dapat menghapus semua kecuali arsitektur target untuk mengurangi waktu build. PROP_APP_ABI=x86 akan dibangun hanya untuk emulator PROP_APP_ABI=armeabi-v7a yang akan dibuat untuk sebagian besar ponsel
  2. Klik tombol Debug fa7d6449514b13c3.png untuk membangun dan menjalankan game. Perlu waktu untuk membangun game engine Cocos2dx.

4. Penyiapan Firebase Console

  1. Buat project baru di Firebase Console. 5d2552e8450338d3.pngS
  2. Beri nama seperti "Popsicle Runner"
  3. Mengaktifkan Analytics 255468f27832bb18.pngS
  4. Tambahkan atau buat akun analisis c7fa1b1004135be3.png
  5. Tambahkan aplikasi Android baru ke project 984b9f20cd590597.pngS Anda
  6. Tambahkan com.firebase.popsiclerunner sebagai nama paket Anda.

fda079aab5b185d4.png

  1. Download google-services.json lalu salin ke proj.android/app 95aae8dd12033335.pngS
  1. Abaikan petunjuk yang diberikan untuk menambahkan Firebase SDK dan klik berikutnya
  2. Anda dapat mengklik "Lewati langkah ini" ketika diminta untuk memverifikasi instalasi Anda

5. Menambahkan Firebase ke game

Menambahkan Firebase SDK ke CMakeLists.txt

Buka CMakeLists.txt tingkat root. Kolom ini menampilkan kode berikut di dekat bagian atas

CMakeLists.txt

cmake_minimum_required(VERSION 3.6)

set(APP_NAME popsiclerunner)

project(${APP_NAME})

dan tambahkan baris berikut ke 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 Hubungkan game dengan library C++ Firebase yang dibangun untuk Android.

Menambahkan plugin Layanan Google

Untuk menghubungkan Firebase SDK, Anda harus menambahkan plugin Layanan Google ke skrip build gradle. Untuk melakukannya, buka file build.gradle level project (file ini ada di folder proj.android). Dan 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 level modul (ini ada di folder proj.android/app Anda). 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 tingkat modul untuk popsicle_runner (dalam proj.android/app/build.gradle) dan tambahkan kode berikut tepat sebelum bagian dependences { 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 menambahkannya ke bagian akhir:

gradle.properties

android.useAndroidX = true
android.enableJetifier = true

Melakukan inisialisasi Firebase di game

Inisialisasi Firebase dalam game dengan membuka Classes/AppDelegate.cpp. Tambahkan perintah #include berikut ke bagian atas:

AppDelegate.cpp

#include <firebase/app.h>
#include <firebase/analytics.h>

Kemudian, tambahkan App::Create dan lakukan inisialisasi fitur Firebase yang Anda perlukan. 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. Tambahkan Analytics

Bahkan pada tahap 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 akan berguna untuk menambahkan peristiwa kustom yang disesuaikan untuk game Anda.

Titik awal yang baik adalah mencatat peristiwa analisis saat pemain memulai level. Kita dapat menggunakan jumlah peristiwa awal level untuk melihat seberapa sering pemain mungkin memutar ulang game dalam sebuah sesi.

4b5df08c0f6b6938.pngS

Kita juga akan mencatat peristiwa saat pemain meninggal, beserta seberapa jauh jarak yang telah mereka tempuh. Dengan begitu, kita dapat melihat perubahan yang kami lakukan terhadap durasi satu sesi dan akan membantu kami menentukan apakah pemain menginginkan game yang lebih pendek/lebih sulit atau yang lebih panjang/mudah.

Menambahkan Header Analytics

Buka Classes/PopsicleScene.cpp dan tambahkan header Firebase ke bagian atas agar kita dapat melakukan panggilan analisis.

PopsicleScene.cpp

#include <firebase/analytics.h>
#include <firebase/analytics/event_names.h>

Catat peristiwa Start Level

Untuk mencatat peristiwa saat Scene ini dipentaskan oleh Cocos2dx Director, cari fungsi yang diberi stub PopsicleScene::onEnter(). Masukkan kode berikut untuk mencatat log peristiwa Level Start di sini:

PopsicleScene.cpp

using namespace firebase;
analytics::LogEvent(analytics::kEventLevelStart);

Catat peristiwa Level End

Untuk melihat seberapa baik performa pemain, mari kita catat peristiwa Akhir Level dengan seberapa jauh pemain berhasil saat akhirnya meninggal. Untuk melakukannya, temukan PopsicleScene::gameOver(), dan tambahkan ini ke akhir blok if(!_gameOver) { sebelum menetapkan _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 dicatat di sini, yang merupakan perkiraan yang baik untuk seberapa jauh pemain telah menempuh perjalanan sebelum meninggal.

7. Peristiwa Pengujian

Anda dapat mengklik Debug fa7d6449514b13c3.png sekarang, tetapi perlu waktu sampai 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 masih dapat men-debug peristiwa Analytics dengan mengalihkan perangkat ke mode debug.

Pertama-tama, pastikan Anda telah menginstal dan menyiapkan Android Debug Bridge (ADB). Mengetik adb devices akan menampilkan perangkat tempat Anda akan melakukan pengujian:

$ adb devices
List of devices attached
emulator-5554   device

Lalu, jalankan perintah adb shell berikut:

adb shell setprop debug.firebase.analytics.app com.firebase.popsiclerunner

Tindakan ini akan memberi tahu Firebase Analytics untuk segera mencatat peristiwa ke dalam log, dan akan secara otomatis mengecualikannya dari laporan normal untuk menghindari polusi pada peristiwa live Anda saat melakukan pengujian. Jika nanti Anda ingin mengurungkan tindakan ini, cukup tulis:

adb shell setprop debug.firebase.analytics.app .none.

Melihat Acara

Buka "DebugView" di 84472ac3a7ad9aff.pngS Firebase Console Anda

Klik Debug fa7d6449514b13c3.png dan mainkan game. Anda akan melihat acara baru muncul segera setelah terjadi dalam game. 5e81dfa682497414.pngS

Jika meluaskan peristiwa level_end, Anda juga akan melihat "jarak" kustom yang telah Anda catat. 4451be4a6a97399c.pngS

8. Menemukan penguji

Selanjutnya, Anda perlu melihat game Anda, baik mereka internal di studio Anda, di antara teman dekat, atau dari komunitas Anda. Firebase App Distribution memberikan cara yang bagus untuk mengundang pemain memainkan game Anda.

Membangun Biner yang Mandiri

Pertama, build APK mandiri yang akan dibagikan dari Build > Build Bundle/APK > APK build 14c6bd5549cdb57a.pngS

Android Studio akan memunculkan kotak dialog yang memungkinkan Anda menemukan file yang dibangun. Jika Anda melewatkannya, Anda dapat mengklik "Log Peristiwa" untuk mendapatkan tautannya lagi. ac730e3428689c4c.png

Mengupload ke Firebase App Distribution

  1. Buka App Distribution dan klik "Mulai" dcdafea94e4c1c15.png
  2. Seret dan lepas file .apk Anda ke kotak yang bertuliskan "Seret .apk apa pun di sini untuk membuat rilis baru". 4b6f94a05391c63f.pngS
  3. Masukkan alamat email Anda sebagai penguji pertama. ce047d710befa44a.png
  4. Klik Berikutnya.
  5. Tambahkan deskripsi dan Klik Distribusikan

Undang Penguji

Daripada harus memasukkan setiap alamat email secara manual, Anda dapat membuat link undangan. Saat mengambil pengguna dengan link undangan ini, Anda juga dapat menambahkan mereka ke grup penguji. Ini akan memungkinkan Anda memisahkan penguji internal dari penguji eksternal.

  1. Klik "Penguji & Grup" 7e380773faff4eb7.pngS
  2. Buat grup baru 6b046c010b14adaf.pngS, dan beri nama seperti "Android Testers".
  3. Klik "Undang link" a7fc2c8b01b6883e.png
  4. Klik "Link undangan baru"
  5. Tetapkan grup di sini dari dropdown. d1b289e825d93d40.png
  6. Klik "Buat Tautan"
  7. Klik "Salin link" dan bagikan sesuai keinginan Anda

9. Selamat

Anda telah berhasil menambahkan analisis ke game berbasis C++, mengundang beberapa teman untuk bermain, dan mengetahui cara menemukan serta menautkan library Firebase dalam sistem build berbasis CMake dan Gradle yang umum digunakan dalam pengembangan Android.

Yang Telah Kita Bahas

  • Cara menambahkan Firebase ke game berbasis CMake Android.
  • Cara mengetahui dependensi C++ dan Gradle mana yang Anda perlukan.
  • Cara mencatat peristiwa Analytics ke dalam log.
  • Cara men-debug peristiwa analisis.
  • Cara berbagi game dengan App Distribution.

Langkah Berikutnya

  • Coba login pengguna secara anonim dan simpan skor tertinggi mereka di Realtime Database.
  • Mencatat peristiwa Analytics ke dalam game Anda sendiri.
  • Coba tambahkan analisis ke game iOS.

Pelajari Lebih Lanjut

  • Lihat daftar acara khusus game dan pertimbangkan bagaimana acara tersebut bisa cocok dengan game Anda sendiri.