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.
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ă:
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.
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
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
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ă.
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:
PendingResultRezultate = 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"); );
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ă:
Î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!