Ereignisse zum Spiel hinzufügen

Nach der Einstellung der Google Sign-In API wird 2026 das games v1 SDK entfernt. Ab Februar 2025 können Sie bei Google Play keine Titel mehr veröffentlichen, die neu in games v1 SDK integriert wurden. Wir empfehlen, stattdessen das games v2 SDK zu verwenden.
Bestehende Titel mit den vorherigen games v1-Integrationen funktionieren zwar noch einige Jahre, aber wir empfehlen Ihnen, ab Juni 2025 zu v2 zu migrieren.
Dieser Leitfaden bezieht sich auf die Verwendung des Play Games-Dienste v1 SDK. Das C++ SDK für Play Games-Dienste v2 ist noch nicht verfügbar.

In diesem Leitfaden erfahren Sie, wie Sie den Ereignisdienst in einer C++-Anwendung verwenden.

Vorbereitung

Wir empfehlen Ihnen, sich vorab mit den Konzepten von Ereignissen in Spielen vertraut zu machen.

Wenn Sie Ihre C++-Entwicklungsumgebung für die Verwendung des Ereignisdienstes einrichten möchten, folgen Sie der Anleitung im Leitfaden Erste Schritte mit C++. Sie können das C++ SDK für Play Games-Dienste von der SDK-Downloadseite herunterladen.

Bevor Ihr Spiel auf Ereignisse zugreifen kann, müssen Sie sie zuerst in der Google Play Console definieren.

Ereignis melden

Sie können Code in Ihr Spiel einfügen, um den Ereignisdienst zu benachrichtigen, wenn ein für Ihr Spiel relevantes Ereignis eintritt. Beispiele für Ereignisse, die Sie in Ihrem Spiel erfassen können, sind: Gegner wurden getötet, Spielbereiche wurden erkundet bzw. gewechselt oder In-Game-Artikel wurden gekauft. Im Normalfall rufen Sie die Methode Increment des Ereignismanagers auf, um den Zähler eines Ereignisses jedes Mal um 1 zu erhöhen, wenn der Spieler eine mit dem Ereignis verknüpfte Aktion ausführt (z. B. „Ein Monster getötet“).

Das folgende Beispiel zeigt, wie Sie den neuen Zählerstand für das Ereignis an den Ereignisdienst senden können.

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

Ereignisse abrufen

Um den aktuellen Zählerstand abzurufen, der auf den Servern von Google für ein bestimmtes Ereignis gespeichert ist, rufen Sie eine der Fetch*-Methoden auf. Das kann beispielsweise sinnvoll sein, wenn Sie die In-Game-Statistiken oder den Fortschritt eines Spielers in einer benutzerdefinierten UI in Ihrem Spiel anzeigen möchten.

Das folgende Beispiel zeigt, wie Sie die Ereignisdaten in Ihrem Spiel abrufen und ausgeben können.

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