1. بررسی اجمالی
در این کد لبه، نحوه ادغام C++ Firebase Games SDK را در یک بازی اندروید نمونه با استفاده از Google Analytics به عنوان مثال خواهید آموخت. میتوانید ویژگیهای مورد نیاز خود را اضافه کنید، برخی از منطق اصلی تجزیه و تحلیل را برای اندازهگیری پیشرفت بازیکن خود ادغام کنید، و بازی را با آزمایشکنندگان به اشتراک بگذارید تا بازخورد اولیه را دریافت کنید.
قدم زدن
اگر میخواهید با نویسندگان از طریق این نرمافزار عبور کنید، این ویدیو را تماشا کنید:
چیزی که یاد خواهید گرفت
- چگونه Firebase را به بازی مبتنی بر Android CMake خود اضافه کنید.
- چگونه بفهمیم به کدام وابستگی های C++ و Gradle نیاز دارید.
- نحوه ثبت رویدادهای Analytics
- نحوه اشکال زدایی رویدادهای تجزیه و تحلیل
- چگونه بازی خود را با App Distribution به اشتراک بگذارید.
آنچه شما نیاز دارید
- اندروید استودیو
- کد نمونه
- یک دستگاه آزمایشی یا شبیه ساز با خدمات Google Play
2. کد نمونه را دریافت کنید
پرداخت یا دانلود از GitHub :
git clone https://github.com/FirebaseExtended/cmake-way-for-firebase.git
Firebase SDK را دانلود کنید
MacOS/Linux:
sh download.sh
ویندوز (از PowerShell):
./download.ps1
همچنین می توانید SDK را به صورت دستی دانلود کنید . اگر این کار را انجام دهید، Firebase C++ SDK باید در /third_party
استخراج شود تا پوشه ای به نام firebase_cpp_sdk
دارای ریشه CMakeLists.txt
از Firebase SDK در آن باشد.
3. نمونه بازی را اجرا کنید
ابتدا نمونه بازی را انجام دهید و مطمئن شوید که همه چیز کار می کند. این یک دونده بی نهایت ساده با یک سطح تولید شده رویه و یک دکمه برای پرش است.
- File > New > Import Project را انتخاب کنید (یا Import Project را از صفحه اسپلش انتخاب کنید)
- پوشه
proj.android/
موجود در مخزن را باز کنید
- [اختیاری]
proj.android/gradle.properties
وPROP_APP_ABI
را باز کنید. برای کاهش زمان ساخت، ممکن است تمام معماری هدف خود را حذف کنید.PROP_APP_ABI=x86
فقط برای شبیه ساز ساخته می شودPROP_APP_ABI=armeabi-v7a
برای اکثر گوشی ها ساخته می شود - روی دکمه Debug کلیک کنید برای ساخت و اجرای بازی ساخت موتور بازی Cocos2dx به زمان نیاز دارد.
4. راه اندازی کنسول Firebase
- یک پروژه جدید در کنسول Firebase ایجاد کنید.
- اسمی مثل «دونده ی قیچی» بگذار
- Analytics را فعال کنید
- یک حساب تجزیه و تحلیل اضافه یا ایجاد کنید
- یک برنامه اندروید جدید به پروژه خود اضافه کنید
-
com.firebase.popsiclerunner
را به عنوان نام بسته خود اضافه کنید.
- google-services.json را دانلود کرده و در
proj.android/app
کپی کنید
- دستورالعمل های داده شده برای افزودن Firebase SDK را نادیده بگیرید و روی next کلیک کنید
- هنگامی که از شما خواسته می شود نصب خود را تأیید کنید، می توانید روی "پرش از این مرحله" کلیک کنید
5. Firebase را به بازی خود اضافه کنید
Firebase SDK را به CMakeLists.txt اضافه کنید
سطح ریشه CMakeLists.txt
را باز کنید. این باید کد زیر را در نزدیکی بالا داشته باشد
CMakeLists.txt
cmake_minimum_required(VERSION 3.6)
set(APP_NAME popsiclerunner)
project(${APP_NAME})
و خطوط زیر را به انتهای آن فایل CMakeLists.txt
اضافه کنید
CMakeLists.txt
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/third_party/firebase_cpp_sdk)
target_link_libraries(${APP_NAME} firebase_analytics firebase_app)
add_subdirectory
شامل Firebase C++ SDK است و آن را در اختیار این بازی قرار می دهد
target_link_libraries
بازی را با کتابخانه های C++ Firebase که برای اندروید ساخته شده است، متصل می کند.
افزونه خدمات گوگل را اضافه کنید
برای اتصال Firebase SDK، باید افزونه Google Services را به اسکریپت ساخت gradle خود اضافه کنید. برای این کار فایل build.gradle
سطح پروژه را باز کنید (این در پوشه proj.android
است). و classpath 'com.google.gms:google-services:4.3.3'
را به عنوان وابستگی 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
}
}
سپس افزونه را به فایل build.gradle
سطح ماژول خود اضافه کنید (این در پوشه proj.android/app
شما است). apply plugin: 'com.google.gms.google-services'
در زیر apply plugin: 'com.android.application'
:
build.gradle
apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services' // Google Services plugin
C++ SDK را در Gradle پیدا کنید
برای اینکه به Gradle بگویید Firebase C++ SDK را کجا پیدا کند، خطوط زیر را به پایین فایل settings.gradle
اضافه کنید.
settings.gradle
gradle.ext.firebase_cpp_sdk_dir = "$settingsDir/../third_party/firebase_cpp_sdk/"
includeBuild "$gradle.ext.firebase_cpp_sdk_dir"
وابستگی های اندروید را اضافه کنید
برای اتصال وابستگیهای اندروید به Firebase، فایل gradle سطح ماژول را برای popsicle_runner
(در proj.android/app/build.gradle
) باز کنید و موارد زیر را درست قبل از بخش dependences {
در پایان اضافه کنید:
build.gradle
apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle"
firebaseCpp.dependencies {
analytics
}
AndroidX و Jetifier
با باز کردن gradle.properties
و افزودن این مورد به انتها، پشتیبانی AndroidX و Jetifier را اضافه کنید:
gradle.properties
android.useAndroidX = true
android.enableJetifier = true
Firebase را در بازی خود راه اندازی کنید
با باز کردن Classes/AppDelegate.cpp
Firebase را در بازی راهاندازی کنید. دستورات #include
زیر را به بالا اضافه کنید:
AppDelegate.cpp
#include <firebase/app.h>
#include <firebase/analytics.h>
سپس App::Create
و مقداردهی اولیه کنید. برای انجام این کار، AppDelegate::applicationDidFinishLaunching
پیدا کنید و این کد را قبل از auto scene = MainMenuScene::createScene()
:
AppDelegate.cpp
{
using namespace firebase;
auto app = App::Create(JniHelper::getEnv(), JniHelper::getActivity());
analytics::Initialize(*app);
}
اگر بازی را اشکال زدایی کنید و داشبورد Firebase را رفرش کنید، باید بعد از یک دقیقه یا بیشتر شاهد ظاهر شدن یک کاربر جدید باشید.
6. Analytics را اضافه کنید
حتی در اوایل توسعه، تجزیه و تحلیل ابزار مفیدی برای سنجش نحوه تعامل آزمایشکنندگان بتا با بازی است. برخی از تجزیه و تحلیل ها وجود دارند که به طور خودکار جمع آوری می شوند - مانند گزارش های حفظ - اما اضافه کردن رویدادهای سفارشی متناسب با بازی خاص شما مفید است.
یک نقطه شروع خوب ثبت یک رویداد تجزیه و تحلیل زمانی است که بازیکن یک سطح را شروع می کند. میتوانیم از تعداد رویدادهای شروع سطح استفاده کنیم تا ببینیم یک بازیکن چقدر ممکن است بازی را در یک جلسه تکرار کند.
همچنین زمانی که بازیکن میمیرد، رویدادی را با توجه به اینکه چقدر پیش رفته است ثبت میکنیم. این به ما اجازه میدهد تا ببینیم که چگونه تغییراتی که ایجاد میکنیم، مدت زمان یک جلسه را تغییر میدهد و به ما کمک میکند تا تعیین کنیم که آیا بازیکنان یک بازی کوتاهتر/سختتر میخواهند یا طولانیتر/آسانتر.
هدرهای تحلیلی را اضافه کنید
Classes/PopsicleScene.cpp
را باز کنید و هدرهای Firebase را به بالا اضافه کنید تا بتوانیم تماس های تحلیلی برقرار کنیم.
PopsicleScene.cpp
#include <firebase/analytics.h>
#include <firebase/analytics/event_names.h>
یک رویداد Level Start را ثبت کنید
برای ثبت یک رویداد زمانی که این صحنه توسط کارگردان Cocos2dx اجرا می شود، تابع stubbed PopsicleScene::onEnter()
پیدا کنید. کد زیر را برای ثبت رویداد Level Start در اینجا وارد کنید:
PopsicleScene.cpp
using namespace firebase;
analytics::LogEvent(analytics::kEventLevelStart);
یک رویداد Level End را ثبت کنید
برای اینکه ببینیم یک بازیکن چقدر خوب کار میکند، اجازه دهید یک رویداد Level End را ثبت کنیم که نشان میدهد بازیکن در نهایت تا چه حد از دنیا رفت. برای انجام این کار، PopsicleScene::gameOver()
را پیدا کنید و این را به انتهای بلوک if(!_gameOver) {
قبل از تنظیم _gameOver = true;
:
PopsicleScene.cpp
{
using namespace firebase;
analytics::LogEvent(analytics::kEventLevelEnd, "distance", _lastDistance);
}
kEventLevelEnd
رویداد پایان سطح است. در حالی که "distance"
یک "پارامتر رویداد" است. ما آخرین مسافت ثبت شده را در اینجا اضافه می کنیم، که تقریب خوبی برای مسافتی است که یک بازیکن قبل از مرگ طی کرده است.
7. رویدادهای تست
می توانید روی Debug کلیک کنید اکنون، اما گزارش هر رویدادی در داشبورد Analytics زمان میبرد. دو دلیل برای این وجود دارد: 1) رویدادها برای حفظ باتری تقریباً هر ساعت یک بار دسته بندی و آپلود می شوند و 2) هر 24 ساعت گزارش تولید می شود.
فعال کردن حالت اشکال زدایی
هنوز هم می توان با قرار دادن دستگاه خود در حالت اشکال زدایی، رویدادهای Analytics را اشکال زدایی کرد.
ابتدا مطمئن شوید که Android Debug Bridge (ADB) را نصب و راه اندازی کرده اید. تایپ کردن adb devices
باید دستگاهی را که قرار است روی آن آزمایش کنید نشان دهد:
$ adb devices List of devices attached emulator-5554 device
سپس دستور adb shell
زیر را اجرا کنید:
adb shell setprop debug.firebase.analytics.app com.firebase.popsiclerunner
این به Firebase Analytics میگوید که رویدادها را فوراً ثبت کند و بهطور خودکار آنها را از گزارشهای عادی شما حذف میکند تا هنگام آزمایش، رویدادهای زنده شما آلوده نشود. اگر می خواهید این عمل را بعداً لغو کنید، به سادگی بنویسید:
adb shell setprop debug.firebase.analytics.app .none.
مشاهده رویدادها
"DebugView" را در کنسول Firebase خود باز کنید
روی Debug کلیک کنید و بازی را انجام دهید. شما باید رویدادهای جدید را تقریباً بلافاصله پس از وقوع در بازی مشاهده کنید.
اگر رویداد level_end
را گسترش دهید، پارامتر "فاصله" سفارشی را که ثبت کرده اید نیز خواهید دید.
8. یافتن آزمایش کننده ها
در مرحله بعد، می خواهید به بازی خود نگاه کنید، چه بازی های داخلی در استودیوی شما، در میان دوستان نزدیک یا از جامعه شما. Firebase App Distribution راهی عالی برای دعوت از بازیکنان به بازی خود در اختیار شما قرار می دهد.
ساخت یک باینری مستقل
ابتدا یک APK مستقل بسازید تا از Build > Build Bundles / APK (ها) > Build APK(ها) به اشتراک بگذارید
Android Studio یک کادر محاوره ای ظاهر می شود که به شما امکان می دهد فایل ساخته شده را پیدا کنید. اگر آن را از دست دادید، می توانید روی "گزارش رویداد" کلیک کنید تا دوباره پیوند را دریافت کنید.
آپلود در Firebase App Distribution
- توزیع برنامه را باز کنید و روی "شروع به کار" کلیک کنید
- فایل apk. خود را بکشید و در کادری که میگوید «هر apk. را برای ایجاد نسخه جدید به اینجا بکشید» رها کنید.
- آدرس ایمیل خود را به عنوان اولین آزمایش کننده وارد کنید.
- روی Next کلیک کنید.
- توضیحات اضافه کنید و روی توزیع کلیک کنید
دعوت از آزمایش کنندگان
به جای نیاز به وارد کردن دستی هر آدرس ایمیل، می توانید یک پیوند دعوت ایجاد کنید. وقتی کاربر را با این پیوند دعوت جذب میکنید، میتوانید او را نیز به گروهی از آزمایشکنندگان اضافه کنید. به عنوان مثال، این به شما امکان می دهد تسترهای داخلی را از آزمایش کننده های خارجی جدا کنید.
- روی «آزمایشکنندگان و گروهها» کلیک کنید
- یک گروه جدید ایجاد کنید و نامی مانند «Android Testers» به آن بدهید.
- روی "دعوت پیوندها" کلیک کنید
- روی "لینک دعوت جدید" کلیک کنید
- گروه را در اینجا از منوی کشویی تنظیم کنید.
- روی "ایجاد لینک" کلیک کنید
- روی "کپی پیوند" کلیک کنید و آن را هر طور که می خواهید به اشتراک بگذارید
9. تبریک می گویم
شما با موفقیت تجزیه و تحلیلها را به بازی مبتنی بر C++ خود اضافه کردهاید، چند دوست را برای بازی دعوت کردهاید، و میدانید چگونه کتابخانههای Firebase را در یک سیستم ساخت مبتنی بر CMake و Gradle که در توسعه اندروید رایج است، پیدا کرده و پیوند دهید.
آنچه ما پوشش داده ایم
- چگونه Firebase را به بازی مبتنی بر Android CMake خود اضافه کنید.
- چگونه بفهمیم به کدام وابستگی های C++ و Gradle نیاز دارید.
- نحوه ثبت رویدادهای Analytics
- نحوه اشکال زدایی رویدادهای تجزیه و تحلیل
- چگونه بازی خود را با App Distribution به اشتراک بگذارید.
مراحل بعدی
- سعی کنید به صورت ناشناس وارد یک کاربر شوید و امتیاز بالای او را در پایگاه داده بیدرنگ ذخیره کنید.
- رویدادهای Analytics را در بازی خود ثبت کنید.
- سعی کنید تجزیه و تحلیل را به یک بازی iOS اضافه کنید.
بیشتر بدانید
- لیستی از رویدادهای خاص بازی را ببینید و در نظر بگیرید که چگونه ممکن است در بازی شما جا بیفتند.