Google Play Games Services Erstellen von Ereignissen und Quests

Ein hoher Wiederspielwert ist eines der bestimmenden Merkmale eines großartigen Spiels. Selbst Spiele mit sehr einfachen Plots können auf Google Play erfolgreich sein, sofern sie einen hohen Wiederholungswert haben. Wenn Sie ein begeisterter Spieler sind, wissen Sie wahrscheinlich bereits, was der Wiedergabewert ist. Wenn Sie dies nicht tun, können Sie es als die Wahrscheinlichkeit betrachten, dass ein Benutzer ein Spiel erneut spielt, selbst wenn sein Hauptziel erreicht ist.

Durch die Verwendung der Ereignis- und Quest-APIs, die eine Teilmenge der Google Play-Spieledienst-APIs sind, können Sie die Wiedergabewerte Ihrer Spiele drastisch erhöhen, ganz zu schweigen davon, dass sie anspruchsvoller und unterhaltsamer sind. In diesem Tutorial zeige ich Ihnen, wie Sie beide APIs optimal nutzen können.

Bevor Sie fortfahren, schlage ich vor, dass Sie meine Einführung zu den Google Play-Spielediensten lesen. Dort erfahren Sie, wie Sie die Dienste in einem Android Studio-Projekt verwenden.

1. Ereignisse und Quests verstehen

Alles, was in einem Spiel passiert, kann als Ereignis betrachtet werden. Durch die Protokollierung ausreichender Ereignisse mithilfe der Ereignis-API können Sie das Verhalten Ihrer Benutzer genau analysieren. Sie können auf Details schließen, z. B. wie weit die Benutzer in Ihrem Spiel gehen können, wie viele Feinde sie töten und wie viele Ressourcen Sie im Spiel sammeln. Mit solchen Details können Sie Ihr Spiel ganz einfach verfeinern, um es noch angenehmer zu machen.

Die Ereignis-API wird jedoch selten alleine verwendet. Die meisten Entwickler verwenden es zusammen mit der Quest-API, um Quests zu erstellen. Eine Quest ist, wie der Name schon sagt, ein sekundäres Ziel, das die Benutzer erreichen können, um eine Belohnung zu erhalten. Wenn Sie beispielsweise ein Spiel erstellen, in dem der Benutzer versucht, eine Prinzessin zu retten, können Sie eine Quest hinzufügen, in der der Benutzer mindestens 100 Klingelzeichen für sie finden muss.

Wenn Sie es noch nicht erraten haben, werden Ereignisse verwendet, um die Abschlusskriterien für Quests zu definieren. Im obigen Beispiel wäre das Finden eines Rings ein Ereignis, das 100-mal auftreten muss, damit die Quest als abgeschlossen markiert wird.

Obwohl Quests einige Ähnlichkeiten mit Erfolgen aufweisen, gibt es einige wichtige Unterschiede zwischen den beiden:

  • Sie müssen keinen Code schreiben, um eine neue Quest zu Ihrem Spiel hinzuzufügen, vorausgesetzt, die Ereignisse, von denen es abhängt, sind bereits Teil des Spiels.
  • Quests sind zeitgebunden. Sie können beispielsweise eine neue Quest so planen, dass sie eine Woche vor Weihnachten beginnt, und Benutzer dazu auffordern, sie vor Heiligabend abzuschließen.
  • Ein Benutzer kann eine Quest nur abschließen, nachdem er sich dafür entschieden hat, daran teilzunehmen.

Mit vielen interessanten Quests, von denen einige jede Woche oder jeden Monat wiederholt werden, können Sie die Benutzer mühelos dazu bringen, Ihr Spiel mehrmals zu spielen.

2. Ereignis erstellen

Melden Sie sich an der Play-Entwicklerkonsole an und öffnen Sie die Spiel Services Klicken Sie auf das Gamepad-Symbol.

Wählen Sie als Nächstes das Spiel aus, zu dem Sie Ereignisse hinzufügen möchten, und öffnen Sie das Veranstaltungen Sektion.

Drücken Sie die Ereignis hinzufügen Schaltfläche, um ein Ereignis zu erstellen. Geben Sie dem Ereignis in dem erscheinenden Formular einen aussagekräftigen Namen. Um mit dem Beispiel des vorherigen Schrittes fortzufahren, werde ich das Ereignis anrufen Ring sammeln.

Sobald Sie die Taste drücken sparen Mit der Schaltfläche können Sie die ID des Ereignisses sehen. Um das Ereignis in Ihrem Android Studio-Projekt verwenden zu können, müssen Sie die ID als neue hinzufügen tag in der games-ids.xml Datei.

ABCDEFabcdef123

3. Eine Quest erstellen

Das Erstellen einer Quest ist etwas komplizierter. Beginnen Sie mit dem Besuch der Quests Abschnitt und drücken Sie die Quest hinzufügen Taste. Geben Sie der Suche einen attraktiven Namen und eine leicht verständliche Beschreibung. Beide sind sehr wichtig, da sie von den Benutzern gelesen werden. Eine Suche, die nicht interessant aussieht, wird wahrscheinlich nicht viele Teilnehmer sehen.

Scrollen Sie als nächstes nach unten Abschlusskriterien Sektion. In dem Eine Veranstaltung finden Geben Sie in das Feld die ID des Ereignisses ein, das Sie zuvor erstellt haben. Im nächsten Eingabefeld müssen Sie angeben, wie oft das Ereignis stattfinden muss, damit die Quest abgeschlossen werden kann.

In dem Zeitplan Abschnitt, geben Sie die Startdatum und Uhrzeit der Suche. Um sofort mit der Suche beginnen zu können, können Sie das heutige Datum auswählen.

Sie müssen auch die Dauer der Quest angeben, indem Sie einen Wert in das Feld eingeben Anzahl der Tage Feld. Optional können Sie die Questteilnehmer benachrichtigen, wenn sie fast keine Zeit mehr haben.

Eine Quest muss eine Belohnung haben. Warum sollte sich ein Benutzer sonst für eine Teilnahme entscheiden? Sie können die Belohnung angeben, indem Sie eine Belohnungsdatei hochladen, bei der es sich um eine Datei mit beliebigem Format handeln kann. Die meisten Entwickler verwenden das JSON-Format. Hier ist ein Beispiel für eine Belohnungsdatei:

Punkte: 3000, max_lives: 15

Es ist erwähnenswert, dass der Inhalt der Belohnungsdatei für die APIs von Play games services nicht wichtig ist. Es liegt in Ihrer Verantwortung, sie in Ihrem Spiel zu analysieren und zu verwenden.

In dem Belohnungsdaten Abschnitt, drücken Sie die Durchsuche und laden Sie die von Ihnen erstellte Belohnungsdatei hoch.

Zum Schluss drücken Sie sparen eine ID für die Quest generieren. Optional können Sie die ID kopieren und zu Ihrem Android Studio-Projekt hinzufügen games-ids.xml Datei als eine andere Etikett.

BCDEABCD123

4. Anzeigen der Quests-Benutzeroberfläche

Die Quest-API bietet eine Aktivität, die alle in Ihrem Spiel verfügbaren Quests anzeigen kann. Die Aktivität ermöglicht es Benutzern außerdem, an Quests teilzunehmen.

Um die Quest-Aktivität zu öffnen, müssen Sie eine Absicht dafür mit der. Erstellen getQuestsIntent () Methode der Spiele.Fragen Klasse. Als seine Argumente erwartet sie a GoogleApiClient Objekt und ein int Array, das die Arten von Quests angibt, die Sie anzeigen möchten. Hier sind einige beliebte Werte für die Arten von Quests:

  • Quests.SELECT_OPEN, eine Quest, an der ein Benutzer sofort teilnehmen kann.
  • Quests.SELECT_UPCOMING, eine Quest, die noch beginnen muss.
  • Quests.SELECT_COMPLETED, eine Quest, die der Benutzer bereits abgeschlossen hat.
  • Quests.SELECT_ACCEPTED, eine Quest, an der der Benutzer gerade teilnimmt.

Nach dem Erstellen der Absicht Objekt, können Sie es an das übergeben startActivityForResult () Methode zur Anzeige der Questaktivität.

Der folgende Code zeigt, wie Sie die Questaktivität öffnen und vier Arten von Quests anzeigen:

Intent Intent = Games.Quests.getQuestsIntent (apiClient, new int [] Quests.SELECT_OPEN, Quests.SELECT_UPCOMING, Quests.SELECT_ACCEPTED, Quests.SELECT_COMPLETED); startActivityForResult (intent, 0);

So sieht die Quest-Aktivität aus:

Durch Drücken der Taste wird der Benutzer zum Teilnehmer der Quest Akzeptieren Taste. Während einer Quest können die Benutzer zur Quest-Benutzeroberfläche zurückkehren und sehen, wie viel von der Quest abgeschlossen ist.

5. Verwenden der Ereignis-API

Die Ereignis-API ermöglicht Ihnen die einfache Verwaltung von Ereignissen in Ihrem Spiel. Um den Wert eines Ereignisses zu ändern, können Sie das verwenden Zuwachs() Methode der Spiele.Veranstaltungen Klasse. Als seine Argumente erwartet sie a GoogleApiClient Objekt, der Name des Ereignisses und eine Zahl, die angibt, wie stark der Wert des Ereignisses erhöht werden soll.

Der folgende Code erhöht den Wert von event_collect_ring Veranstaltung von 1:

Games.Events.increment (apiClient, getString (R.string.event_collect_ring), 1);

Um die aktuellen Werte von Ereignissen abzurufen, müssen Sie das verwenden Belastung() Methode. Da der Wert asynchron von den Google-Servern abgerufen wird, lautet der Rückgabewert der Methode a PendingResult Objekt. Durch Hinzufügen von a ResultCallback Wenn Sie dagegen protestieren, können Sie benachrichtigt werden, wenn das Ergebnis verfügbar ist.

In der onResult () Methode der ResultCallback Schnittstelle müssen Sie die aufrufen getEvents () Methode der Events.LoadEventsResult Objekt, das ein zurückgibt EventBuffer. Sobald Sie das gewünschte gefunden haben Veranstaltung im Puffer können Sie seine aufrufen Wert erhalten() Methode, um den aktuellen Wert zu erhalten.

Der folgende Code zeigt, wie Sie den Wert von erhalten event_collect_ring Veranstaltung:

PendingResult results = Games.Events.load (apiClient, true); results.setResultCallback (neuer ResultCallback() @Override public void onResult (@NonNull Events.LoadEventsResult loadEventsResult) // Alle Ereignisse des Spiels abrufen EventBuffer events = loadEventsResult.getEvents (); // Durchlaufe alle Ereignisse für (int i = 0; i < events.getCount(); i++)  Event currentEvent = events.get(i); // Check if current event is the desired event // and print its value if(currentEvent.getEventId().equals(getString( R.string.event_collect_ring))) Log.d(TAG, "You have now collected " + currentEvent.getValue() + " rings");    );

6. Questabschluß erkennen

Wenn ein Benutzer eine Quest rechtzeitig abschließt, muss Ihr Spiel den Benutzer mit der Belohnungsdatei belohnen können, die Sie in der Play-Entwicklerkonsole hochgeladen haben. Um den Abschluss der Quest zu erkennen, müssen Sie ein erstellen QuestUpdateListener Objekt und registrieren Sie es mit der Quest-API mit der registerQuestUpdateListener () Methode der Spiele.Fragen Klasse.

In der onQuestCompleted () Methode der QuestUpdateListener Schnittstelle müssen Sie die aufrufen Anspruch() Methode, um die Belohnung der Quest zu erhalten. Sie müssen ein GoogleApiClient Objekt, die Quest-ID und die ID des aktuellen Meilensteins für die Methode.

Nach dem Antrag können Sie die Belohnungsdatei als Byte Array durch Aufrufen der getCompletionRewardData () Methode. Da es sich bei unseren Belohnungsdaten nur um eine JSON-Datei handelt, können Sie die Byte Array an den Konstruktor der String Klasse, um es in einen String zu konvertieren.

Games.Quests.registerQuestUpdateListener (apiClient, neuer QuestUpdateListener () @Override public void onQuestCompleted (Quest Quest) Games.Quests.claim (apiClient, quest.getQuestId (), quest.getCurrentMilestoneId ()); ] belohnungData = quest.getCurrentMilestone () .getCompletionRewardData (); Zeichenfolge Belohnung = neue Zeichenfolge (BelohnungDaten););

An dieser Stelle können Sie die Zeichenfolge in eine konvertieren JSONObject Instanz und lesen Sie die Werte der Schlüssel darin. Der folgende Code zeigt, wie Sie die Werte von zwei aufgerufenen Schlüsseln abrufen Punkte und max_lives:

try JSONObject belohnungObjekt = neues JSONObject (Belohnung); int points = belohnungObjekt.getInt ("Punkte"); int maxLives = honorObject.getInt ("max_lives"); Log.d (TAG, "Sie haben jetzt + Punkte +" Punkte gewonnen und "+ maxLives +" Leben ");  catch (Ausnahme e) Log.e (TAG, "JSON konnte nicht analysiert werden"); 

Beachten Sie, dass die Questaktivität automatisch aktualisiert wird, wenn eine Quest abgeschlossen ist. So sieht eine abgeschlossene Quest aus:

Fazit

In diesem Lernprogramm haben Sie gelernt, wie Sie die Quest- und Ereignis-APIs verwenden, um Benutzer dazu zu bringen, Ihr Spiel immer wieder zu spielen. Beachten Sie jedoch, dass Sie, da diese APIs Ratenlimits haben, versuchen sollten, sie zu oft in Ihrer App zu verwenden. Weitere Informationen zu Einschränkungen und bewährten Vorgehensweisen finden Sie auf der Seite mit der Checkliste für die Qualität der Spiele-Spiele.

Um mehr über Quests und Ereignisse zu erfahren, können Sie deren offizielle Dokumentation nachlesen. In der Zwischenzeit können Sie auch einige unserer anderen Beiträge zu Firebase und Google Play Services lesen!

  • Erste Schritte mit den Google Play Games Services

    Wenn Sie ein Spiel für die Android-Plattform entwickeln, können Sie die APIs der Google Play-Spieledienste verwenden, um schnell allgemeine Spielefunktionen hinzuzufügen. In diesem…
    Ashraff Hathibelagal
    Android SDK
  • Google Play-Dienste: Awareness-API

    Google hat kürzlich die Awareness-API veröffentlicht, mit der Entwickler Apps erstellen können, die intelligent auf die reale Situation des Benutzers reagieren. In diesem…
    Paul Trebilcox-Ruiz
    Android SDK
  • Erste Schritte mit Firebase für Android

    Zum Erstellen eines Back-End-Servers sind Fähigkeiten erforderlich, die den meisten unabhängigen App-Entwicklern fehlen. Zum Glück gibt es Firebase, eine Cloud-basierte Plattform, die…
    Ashraff Hathibelagal
    Android SDK
  • Was ist neu in Firebase? Updates vom Firebase Dev Summit

    Das Firebase-Team hat auf dem Firebase Dev-Gipfel im November in Berlin einige neue Funktionen angekündigt. In diesem Artikel werde ich Sie durch einige der…
    Chike Mgbemena
    Android SDK