เราจะนำ SDK เวอร์ชัน 1 ของเกมออกในปี 2026 ตามการเลิกใช้งาน Google Sign-In API หลังจากเดือนกุมภาพันธ์ 2025 คุณจะไม่สามารถเผยแพร่เกมที่ผสานรวมกับ SDK เวอร์ชัน 1 ของเกมใหม่ใน Google Play เราขอแนะนําให้ใช้ SDK ของ Google Play Games v2 แทน
แม้ว่าเกมที่มีอยู่ซึ่งผสานรวมกับเกมเวอร์ชัน 1 ก่อนหน้านี้จะยังคงใช้งานได้อีก 2-3 ปี แต่เราขอแนะนำให้คุณย้ายข้อมูลไปยัง v2 ตั้งแต่วันที่ 1 มิถุนายน 2025 เป็นต้นไป
คู่มือนี้มีไว้สำหรับการใช้ SDK บริการเกมของ Play เวอร์ชัน 1 SDK สำหรับ C++ ของบริการเกมของ Play เวอร์ชัน 2 ยังไม่พร้อมใช้งาน
คู่มือนี้จะแสดงวิธีใช้บริการเหตุการณ์ในแอปพลิเคชัน 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);