إضافة أحداث إلى لعبتك

بعد إيقاف واجهة برمجة التطبيقات تسجيل الدخول باستخدام Google نهائيًا، سنزيل الإصدار v1 من حزمة تطوير البرامج (SDK) للألعاب في عام 2026. بعد فبراير 2025، لن يكون بإمكانك نشر الألعاب التي تم دمجها حديثًا مع الإصدار v1 من حزمة SDK للألعاب على Google Play. ننصحك باستخدام الإصدار v2 من حزمة SDK للألعاب بدلاً من ذلك.
مع أنّ التطبيقات الحالية التي تتضمّن عمليات الدمج السابقة للإصدار 1 من "خدمات ألعاب Google Play" ستستمر في العمل لعدّة سنوات، ننصحك بنقل البيانات إلى الإصدار 2 بدءًا من يونيو 2025.
هذا الدليل مخصّص لاستخدام الإصدار 1 من حزمة تطوير البرامج (SDK) الخاصة بـ "خدمات ألعاب Play". حزمة تطوير البرامج (SDK) للغة C++ الخاصة بالإصدار 2 من "خدمات ألعاب Play" غير متاحة بعد.

يوضِّح لك هذا الدليل كيفية استخدام خدمة "الأحداث" في تطبيق C++.

قبل البدء

إذا لم يسبق لك إجراء ذلك، قد يكون من المفيد مراجعة مفاهيم لعبة الأحداث.

لإعداد بيئة تطوير C++ لاستخدام خدمة "الأحداث"، اتّبِع التعليمات الواردة في دليل بدء استخدام C++. يمكنك تنزيل حزمة تطوير البرامج الخاصة بألعاب Play التي تستخدم لغة C++‎ من صفحة تنزيل حِزم تطوير البرامج.

قبل أن تتمكّن لعبتك من الوصول إلى الأحداث، عليك تحديدها أولاً في Google Play Console.

إرسال حدث

يمكنك إضافة رمز برمجي إلى لعبتك لإرسال إشعار إلى خدمة "الأحداث" كلما وقع حدث يهم لعبتك. تشمل أمثلة الأحداث التي يمكنك تسجيلها في لعبتك ما يلي: قتل الأعداء أو استكشاف مناطق مختلفة في اللعبة أو العودة إليها أو الحصول على عناصر داخل اللعبة. عادةً، يتم استدعاء الطريقة Increment في أداة إدارة الأحداث لزيادة عدد الأحداث بمقدار 1 في كل مرة ينفّذ فيها اللاعب إجراءً مرتبطًا بالحدث (على سبيل المثال، "قتل وحشًا واحدًا").

يوضِّح المثال التالي كيفية إرسال عدد الأحداث المعدَّل إلى خدمة "الأحداث".

  // Increment the event count when player performs the 'Attack blue
  // monster' action.
  game_services_->Events().Increment(BLUE_MONSTER_EVENT_ID);

استرداد الأحداث

لاسترداد قيمة العدد الحالي المخزَّنة في خوادم Google لحدث معيّن، استدعِ إحدى طرق Fetch*. يمكنك إجراء ذلك، مثلاً، إذا أردت عرض إحصاءات اللاعب داخل اللعبة أو مستوى تقدّمه من واجهة مستخدم مخصّصة في لعبتك.

يوضّح المثال التالي كيف يمكنك استرداد بيانات الحدث وتسجيلها في لعبتك.

  // Log Events details.
  LogI("---- Showing Event Counts -----");
  gpg::EventManager::FetchAllCallback callback =
      [](gpg::EventManager::FetchAllResponse const &response) {
    for (auto i : response.data) {
      gpg::Event const &event = i.second;
      LogI("Event name: %s  count: %d", event.Name().c_str(),
           event.Count());
    }
  };
  game_services_->Events().FetchAll(callback);