Cómo agregar eventos a tu juego

En esta guía, se muestra cómo usar el servicio de Eventos en una aplicación de C++.

Antes de comenzar

Si aún no lo hiciste, puede resultarte útil consultar los conceptos de juegos de eventos.

A fin de configurar tu entorno de desarrollo de C++ para usar el servicio de Eventos, sigue las instrucciones de la guía de introducción a C++. Puedes descargar el SDK de C++ de los Servicios de juego de Play desde la página de descargas del SDK.

Antes de que tu juego pueda acceder a los eventos, primero debes definirlos en Google Play Console.

Cómo enviar un evento

Puedes agregar código a tu juego para notificar al servicio de Eventos cada vez que ocurra un evento de interés para tu juego. Algunos ejemplos de eventos que puedes capturar en tu juego son matar enemigos, explorar o regresar a varias regiones del juego o adquirir elementos del juego. Por lo general, se llama al método Increment en el administrador de eventos para aumentar el recuento de eventos de a 1 cada vez que el jugador realice una acción asociada con el evento (por ejemplo, "Asesina a un monstruo").

En el siguiente ejemplo, se muestra cómo enviar el recuento de eventos actualizado al servicio de Eventos.

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

Recupera eventos

A fin de recuperar el valor de recuento actual almacenado en los servidores de Google para un evento específico, llama a uno de los métodos Fetch*. Puedes hacerlo, por ejemplo, si quieres mostrar las estadísticas del juego de un jugador o el progreso desde una IU personalizada en tu juego.

En el siguiente ejemplo, se muestra cómo recuperar y registrar los datos del evento en el juego.

  // 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);