Игровая статистика для игр Android

В этом руководстве рассказывается, как использовать Game Stats API в приложении для Android, чтобы разблокировать и показывать игровую статистику в игре. API можно найти в пакетах com.google.android.gms.games и com.google.android.gms.games.playergameevent.

Подготовка

Если вы ещё не знакомы с этой функцией, рекомендуем прочитать основные сведения об игровой статистике.

Прежде чем начать писать код с использованием Game Stats API:

Как получить клиент игровой статистики

Чтобы начать работу с API игровой статистики, игра должна сначала получить объект GameStatsClient. Для этого вызовите метод Games.getGameStatsClient() и передайте ему объект activity.

Интеграция на стороне клиента

Интеграция на стороне клиента для PlayerGameEvent предполагает, что вы создадите объект события в Java SDK в точках активации и отправите его с помощью функций загрузки, предоставляемых SDK.

Аналогично для события progressUpdate записывайте обновленные данные о прогрессе с помощью свойства currentProgress с дополнительными определенными свойствами и отправляйте их с помощью функций загрузки, предоставляемых SDK.

События

Интеграция на стороне клиента для PlayerGameEvent:

Как создать событие игрока

Java


// Build the PlayerGameEvent
PlayerGameEvent event = new PlayerGameEvent.Builder("matchCompleted")
  .addProperty("matchId", "Match_A")
  .addProperty("gameMode", "Battle_B")
  .addProperty("mapId", "Location_XYZ")
  .addProperty("isWinner", true)
  .addProperty("playerElimination", 2)
  .build();

List events = new ArrayList<>();
// ... populate list ...

Создание события игры игрока progressUpdate

Java


// Build the PlayerGameEvent
PlayerGameEvent event = new PlayerGameEvent.Builder("progressUpdate")
  .addProperty("currentProgress", 52)
  // Add other properties if needed
  .build();

List events = new ArrayList<>();
// ... populate list ...

Запись события и загрузка

Java


// Buffers the event locally.
client.recordEvent(event);

// Buffers the events locally, (List version)
client.recordEvents(events);

// This submits the events to PGS
client.requestEventsUpload();