หลังจากเลิกใช้งาน API ของ Google Sign-In แล้ว เราจะนำ SDK v1 ของเกมออกในปี 2026 หลังจากเดือนกุมภาพันธ์ 2025 คุณจะเผยแพร่
เกมที่เพิ่งผสานรวมกับ SDK v1 ของ Games ใน Google Play ไม่ได้ เราขอแนะนำให้ใช้ SDK v2 ของ Games แทน
แม้ว่าเกมที่มีอยู่ซึ่งผสานรวมกับเกมเวอร์ชัน 1 ก่อนหน้าจะยังคงทำงานได้อีก 2-3 ปี
แต่เราขอแนะนำให้คุณย้ายข้อมูลไปยัง v2
ตั้งแต่เดือนมิถุนายน 2025 เป็นต้นไป
คู่มือนี้มีไว้สำหรับการใช้ SDK บริการเกมของ Play เวอร์ชัน 1 SDK สำหรับ C++ สำหรับ
บริการเกมของ Play v2 ยังไม่พร้อมใช้งาน
คู่มือนี้แสดงวิธีใช้บริการเหตุการณ์ในแอปพลิเคชัน C++
ก่อนเริ่มต้น
หากยังไม่ได้ทำ คุณอาจต้องตรวจสอบแนวคิดเกมกิจกรรม
หากต้องการตั้งค่าสภาพแวดล้อมการพัฒนา C++ เพื่อใช้บริการเหตุการณ์ ให้ทำตามวิธีการในคู่มือการเริ่มต้นใช้งานสำหรับ C++ คุณดาวน์โหลด SDK สำหรับ C++ ของบริการเกมของ Play ได้จากหน้าดาวน์โหลด SDK
ก่อนที่เกมจะเข้าถึงกิจกรรมได้ คุณต้องกำหนดกิจกรรมใน Google Play Console ก่อน
ส่งกิจกรรม
คุณเพิ่มโค้ดในเกมเพื่อแจ้งเตือนบริการเหตุการณ์ทุกครั้งที่เกิดเหตุการณ์ที่เกมของคุณสนใจได้
ตัวอย่างเหตุการณ์ที่คุณบันทึกได้ในเกม ได้แก่ การฆ่าศัตรู การสำรวจหรือกลับไปยังภูมิภาคต่างๆ ของเกม หรือการรับไอเทมในเกม โดยปกติแล้ว คุณจะเรียกใช้เมธอด Increment
ในเครื่องมือจัดการเหตุการณ์เพื่อเพิ่มจํานวนเหตุการณ์ทีละ 1 ทุกครั้งที่ผู้เล่น
ทําการกระทําที่เชื่อมโยงกับเหตุการณ์
(เช่น "ฆ่ามอนสเตอร์ 1 ตัว")
ตัวอย่างต่อไปนี้แสดงวิธีส่งจํานวนเหตุการณ์ที่อัปเดตแล้วไปยัง บริการเหตุการณ์
// Increment the event count when player performs the 'Attack blue
// monster' action.
game_services_->Events().Increment(BLUE_MONSTER_EVENT_ID);
ดึงข้อมูลกิจกรรม
หากต้องการดึงค่าการนับปัจจุบันที่จัดเก็บไว้ในเซิร์ฟเวอร์ของ Google สำหรับเหตุการณ์หนึ่งๆ ให้เรียกใช้เมธอดใดเมธอดหนึ่งของ Fetch*
คุณอาจทำเช่นนี้หากต้องการแสดงสถิติในเกมหรือความคืบหน้าของผู้เล่นจาก UI ที่กำหนดเองในเกม
ตัวอย่างต่อไปนี้แสดงวิธีดึงและบันทึกข้อมูลเหตุการณ์ในเกม
// 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);