Servicii de jocuri Google Play crearea de evenimente și căutări

Valoarea mare a repetării este una dintre caracteristicile definitorii ale unui joc minunat. Chiar și jocurile cu parcele foarte simple pot deveni de succes pe Google Play, atâta timp cât au o valoare de replay mare. Dacă sunteți un jucător avid, probabil că deja știți ce este valoarea reluării. Dacă nu, puteți să vă gândiți la aceasta ca la probabilitatea ca un utilizator să redea un joc din nou chiar și după atingerea obiectivului său principal.

Prin utilizarea API-urilor pentru evenimente și quest-uri, care reprezintă un subgrup al API-urilor pentru serviciile de jocuri Google Play, puteți crește dramatic valorile replay ale jocurilor dvs., fără a mai fi dificilă și distractivă. În acest tutorial, vă voi arăta cum să profitați la maximum de ambele API-uri.

Înainte de a continua, vă sugerăm să citiți tutorialul introductiv despre serviciile de jocuri Google Play, care vă arată cum să utilizați serviciile într-un proiect Android Studio.

1. Înțelegerea evenimentelor și a căutărilor

Orice lucru care se întâmplă într-un joc poate fi considerat un eveniment. Prin logarea a suficiente evenimente folosind API-ul de evenimente, puteți analiza îndeaproape comportamentele utilizatorilor dvs. Puteți deduce detalii cum ar fi cât de departe pot fi utilizatorii în joc, câți dușmani ucid și câte resurse pe care le colectează în joc. Cu astfel de detalii la îndemână, veți putea să vă perfecționați cu ușurință jocul pentru a vă face mai plăcut.

Evenimentul API, cu toate acestea, este folosit rareori singur. Majoritatea dezvoltatorilor o folosesc împreună cu API-urile quest-uri pentru a crea quest-uri. O căutare, așa cum sugerează și numele, este un obiectiv secundar pe care utilizatorii îl pot atinge pentru a obține o recompensă. De exemplu, dacă creați un joc în care utilizatorul încearcă să salveze o prințesă, puteți adăuga o căutare în locul în care utilizatorul trebuie să găsească cel puțin 100 de apeluri pentru ea.

Dacă nu ați ghicit deja, evenimentele sunt folosite pentru a defini criteriile de completare a questurilor. În exemplul de mai sus, găsirea unui inel ar fi un eveniment care trebuie să apară de 100 de ori pentru căutarea să fie marcată ca fiind completă.

Deși questurile partajează unele asemănări cu realizările, există câteva diferențe importante între cele două:

  • Nu trebuie să scrieți niciun cod pentru a adăuga o nouă căutare la jocul dvs., cu condiția ca evenimentele de care depinde să fie deja parte a jocului.
  • Căutările sunt legate de timp. De exemplu, puteți programa o nouă căutare pentru a începe cu o săptămână înainte de Crăciun și provocați utilizatorii să o completeze înainte de Ajunul Crăciunului.
  • Un utilizator poate efectua o căutare numai după ce a ales să participe la aceasta.

Cu multe căutări interesante, dintre care unele sunt programate să se repete în fiecare săptămână sau lună, puteți obține fără efort utilizatorii să vă joace jocul de mai multe ori.

2. Crearea unui eveniment

Conectați-vă la consola dezvoltatorului Play și deschideți-o Servicii de jocuri ecran făcând clic pe pictograma gamepadului.

Apoi, alegeți jocul în care doriți să adăugați evenimente și deschideți-l Evenimente secțiune.

apasă pe Adăugați eveniment pentru a începe crearea unui eveniment. În forma care apare, dă un nume semnificativ evenimentului. Continuând cu exemplul pasului anterior, voi apela evenimentul Strângeți inelul.

Odată ce apăsați butonul Salvați , veți putea vedea ID-ul evenimentului. Pentru a putea utiliza evenimentul în proiectul Android Studio, trebuie să adăugați ID-ul ca fiind nou etichetă în Jocuri-ids.xml fişier.

ABCDEFabcdef123

3. Crearea unei căutări

Crearea unei căutări este puțin mai implicată. Începeți prin a merge la Misiuni și apăsați pe Adaugă căutarea buton. Oferiți căutării un nume atractiv și o descriere ușor de înțeles. Ambele sunt foarte importante deoarece vor fi citite de către utilizatori. O călătorie care nu pare interesantă este puțin probabil să vadă mulți participanți.

Apoi, derulați în jos până la Criterii de completare secțiune. În Găsiți un eveniment câmp, introduceți ID-ul evenimentului pe care l-ați creat mai devreme. În următorul câmp de introducere, trebuie să specificați de câte ori trebuie să apară evenimentul pentru cautarea care trebuie finalizată.

În Programa secțiune, specificați Data și ora de începere de căutare. Pentru a putea începe să lucrați imediat cu căutarea, puteți alege data de astăzi.

De asemenea, trebuie să specificați durata căutării introducând o valoare în Număr de zile camp. Opțional, puteți alege să notificați participanții la căutare atunci când sunt aproape în afara timpului.

O călătorie trebuie să aibă o recompensă - de ce altfel ar alege un utilizator să participe la ea? Puteți specifica care este recompensa prin încărcarea unui fișier de recompense, care poate fi un fișier de orice format. Majoritatea dezvoltatorilor aleg să utilizeze formatul JSON. Iată un fișier de recompensă eșantion:

puncte: 3000, max_lives: 15

Merită menționat faptul că conținutul fișierului de recompense nu este important pentru API-urile pentru serviciile de jocuri pentru jocuri. Este responsabilitatea dvs. să le analizați și să le folosiți în joc.

În Răsfoiți datele , apăsați pe Naviga și încărcați fișierul de recompense pe care l-ați creat.

În cele din urmă, apăsați Salvați pentru a genera un ID pentru căutare. Opțional, puteți să copiați ID-ul și să îl adăugați la proiectul dvs. Android Studio Jocuri-ids.xml fișier ca pe altul etichetă.

BCDEABCD123

4. Afișarea interfaței utilizator Quest-uri

Quest-urile API oferă o activitate care poate afișa toate questurile disponibile în joc. De asemenea, activitatea permite utilizatorilor să se alăture questurilor.

Pentru a deschide activitatea questurilor, trebuie să creați o intenție pentru utilizarea acesteia getQuestsIntent () metodă a Games.Quests clasă. Ca argumente, se așteaptă ca a GoogleApiClient obiect și an int array specificând tipurile de quest-uri pe care doriți să le afișați. Iată câteva valori populare pentru tipurile de quest-uri:

  • Quests.SELECT_OPEN, o căutare pe care un utilizator o poate participa imediat.
  • Quests.SELECT_UPCOMING, o căutare care încă nu începe.
  • Quests.SELECT_COMPLETED, o căutare pe care utilizatorul a finalizat-o deja.
  • Quests.SELECT_ACCEPTED, o căutare în care participă în prezent utilizatorul.

După crearea fișierului scop obiect, îl puteți transfera la startActivityForResult () pentru a afișa activitatea questurilor.

Următorul cod vă arată cum să deschideți activitatea quest-urilor și să afișați patru tipuri de quest-uri:

Intenția intenției = Games.Quests.getQuestsIntent (apiClient, noul int [] Quests.SELECT_OPEN, Quests.SELECT_UPCOMING, Quests.SELECT_ACCEPTED, Quests.SELECT_COMPLETED); startActivityForResult (intenție, 0);

Iată cum arată activitatea questurilor:

Utilizatorul devine participant al căutării prin apăsarea butonului Accept buton. În timpul unei căutări, utilizatorii se pot întoarce la quest-urile UI pentru a vedea cât de mult din căutare este completă.

5. Folosind API-ul Evenimente

API-ul pentru evenimente vă permite să gestionați cu ușurință evenimentele din joc. Pentru a modifica valoarea unui eveniment, puteți utiliza funcția creştere() metodă a Games.Events clasă. Ca argumente, se așteaptă ca a GoogleApiClient obiect, numele evenimentului și un număr care specifică cât de mult ar trebui să crească valoarea evenimentului.

Următorul cod mărește valoarea event_collect_ring eveniment de 1:

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

Pentru a prelua valorile actuale ale evenimentelor, trebuie să utilizați sarcină() metodă. Deoarece valoarea este extrasă din serverele Google în mod asincron, valoarea de retur a metodei este a PendingResult obiect. Prin adăugarea a ResultCallback obiecte, puteți fi anunțat atunci când rezultatul este disponibil.

În interiorul onResult () metodă a ResultCallback interfață, trebuie să apelați getEvents () metodă a Events.LoadEventsResult obiect, care returnează un EventBuffer. Odată ce ați găsit dorit Eveniment în memoria tampon, îi puteți apela getvalue () pentru a obține valoarea sa actuală.

Următorul cod vă arată cum să preluați valoarea event_collect_ring eveniment:

PendingResult Rezultate = Games.Events.load (apiClient, true); results.setResultCallback (noul ResultCallback() @Override public void onResult (@NonNull Events.LoadEventsResult loadEventsResult) // Retur toate evenimentele jocului EventBuffer events = loadEventsResult.getEvents (); // Faceți buclă prin toate evenimentele pentru (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. Detectarea finalizării quest-ului

Când un utilizator finalizează o căutare la timp, jocul dvs. trebuie să poată recompensa utilizatorul folosind fișierul de recompense pe care l-ați încărcat în consola dezvoltatorului Play. Pentru a detecta finalizarea căutării, trebuie să creați o QuestUpdateListener obiect și înregistrați-l cu API-urile quest-uri folosind registerQuestUpdateListener () metodă a Games.Quests clasă.

În interiorul onQuestCompleted () metodă a QuestUpdateListener interfață, trebuie să apelați Revendicare() metodă pentru a revendica recompensa căutării. Trebuie să treci a GoogleApiClient obiectul, ID-ul quest-ului și ID-ul actual al milestone-ului față de metodă.

După revendicare, puteți prelua fișierul de recompensă ca a octet array prin apelarea getCompletionRewardData () metodă. Deoarece datele noastre de recompensă sunt doar un fișier JSON, puteți trece octet array la constructorul Şir pentru ao converti într-un șir.

Games.Quests.registerQuestUpdateListener (apiClient, nou QuestUpdateListener () @Override public void peQuestCompleted (quest quest) Games.Quests.claim (apiClient, quest.getQuestId (), quest.getCurrentMilestone () .getMilestoneId () ] rewardData = quest.getCurrentMilestone () .getCompletionRewardData (); Recompensa șirului = String nou (rewardData););

În acest moment, puteți converti șirul în a obiect JSON și citiți valorile cheilor din interiorul acestuia. Următorul cod vă arată cum să preluați valorile a două taste chemați puncte și max_lives:

încercați JSONObject rewardObject = nou JSONObject (recompensă); int puncte = rewardObject.getInt ("puncte"); int maxLives = recompensaObject.getInt ("max_lives"); Log.d (TAG, "Ați câștigat acum puncte" + puncte + "și" + maxLives + ");  captură (Excepție e) Log.e (TAG, "Nu s-a putut parsa JSON"); 

Rețineți că activitatea questurilor se actualizează automat când o căutare a fost finalizată. Iată ce arată o căutare finalizată:

Concluzie

În acest tutorial, ați învățat cum să utilizați căutările și evenimentele API-uri pentru a convinge utilizatorii să vă redea din nou jocul. Rețineți, totuși, că aceste interfețe API au limite de rată, trebuie să încercați să le evitați să le folosiți prea des în aplicația dvs. Puteți consulta pagina de verificare a calității serviciilor de jocuri pentru a afla mai multe restricții și cele mai bune practici.

Pentru a afla mai multe despre misiuni și evenimente, vă puteți referi la documentația oficială. Între timp, verificați câteva dintre celelalte postări din Firebase și din serviciile Google Play!

  • Începeți cu serviciile Jocuri Google Play

    Dacă dezvoltați un joc pentru platforma Android, puteți utiliza API-urile serviciilor de jocuri Google Play pentru a adăuga rapid funcții comune de jocuri. In acest…
    Ashraff Hathibelagal
    Android SDK
  • Serviciile Google Play: API de conștientizare

    Google a lansat recent API-ul Conștientizare, care permite dezvoltatorilor să creeze aplicații care reacționează în mod inteligent la situația din lumea reală a utilizatorului. In acest…
    Paul Trebilcox-Ruiz
    Android SDK
  • Începeți cu Firebase pentru Android

    Crearea unui server back-end necesită un set de competențe pe care majoritatea dezvoltatorilor independenți de aplicații le lipsește. Din fericire, există Firebase, o platformă bazată pe cloud care ...
    Ashraff Hathibelagal
    Android SDK
  • Ce este nou în Firebase? Actualizări de la Summit-ul Firebase Dev

    Echipa Firebase a anunțat câteva noi caracteristici la summit-ul Firebase Dev din noiembrie în Berlin. În acest articol, vă duc câteva dintre cele mai ...
    Chike Mgbemena
    Android SDK
Cod