נתונים סטטיסטיים מהמשחק

במאמר הזה מוסבר איך להשתמש בנתונים סטטיסטיים של משחקים ב-Google Play Games Services במשחקי C++‎. במסמך הזה מניחים שהגדרתם את הפרויקט כמו שמתואר במאמר הגדרה של Google Play Games Services. אפשר למצוא את Game Stats API ב-PgsGameStatsClient.

לפני שמתחילים

אם עדיין לא עשיתם זאת, אנחנו ממליצים לכם להכיר את המושגים שקשורים לנתונים סטטיסטיים של משחקים.

לפני שמתחילים לכתוב קוד שמשתמשים בו בממשק ה-API של נתוני המשחק:

קבלת לקוח נתונים סטטיסטיים של המשחק

כדי להתחיל להשתמש בממשק ה-API של ההישגים, המשחק שלכם צריך קודם לקבל אובייקט PgsGameStatsClient. כדי לעשות את זה, קוראים לשיטה PgsPlayerGameEvent_create ומעבירים את הפעילות.

שילוב בצד הלקוח

השילוב בצד הלקוח של PlayerGameEvent יכלול בנייה של אובייקט האירוע ב-C++ SDK בנקודות ההפעלה ושליחה שלו באמצעות פונקציות ההעלאה שסופקו על ידי ה-SDK.

באופן דומה, לגבי האירוע progressUpdate, מתעדים את ההתקדמות המעודכנת באמצעות המאפיין currentProgress עם מאפיינים מוגדרים נוספים ושולחים אותם באמצעות פונקציות ההעלאה שסופקו על ידי ה-SDK.

אירועים

השילובים בצד הלקוח של PlayerGameEvent הם:

יצירת אירוע משחק של שחקן

C++‎


// Build the PlayerGameEvent
PgsPlayerGameEvent* player_event = PgsPlayerGameEvent_create("matchCompleted");
if (player_event != nullptr) {
   PgsPlayerGameEvent_putString(player_event, "matchId", "Match_A");
   PgsPlayerGameEvent_putString(player_event, "gameMode", "Battle_B");
   PgsPlayerGameEvent_putString(player_event, "mapId", "Location_XYZ");
   PgsPlayerGameEvent_putBoolean(player_event, "isWinner", true);
   PgsPlayerGameEvent_putLong(player_event, "playerElimination", 2);
}
יצירת progressUpdate אירוע שחקן במשחק

C++‎


PgsPlayerGameEvent* progress_event = PgsPlayerGameEvent_create("progressUpdate");
if (progress_event != nullptr) {
   PgsPlayerGameEvent_putLong(progress_event, "currentProgress", 52);
}
הקלטת אירוע והעלאה

C++‎


// Record the event
PgsGameStatsClient_recordEvent(client, player_event);

// This submits the events to PGS
PgsGameStatsClient_requestEventsUpload(client);

// Clean up handle to avoid leaks
PgsPlayerGameEvent_destroy(player_event);

// Clean up client handle when PGS operations are finished
PgsGameStatsClient_destroy(client);