Une valeur de lecture élevée est l’une des caractéristiques déterminantes d’un grand jeu. Même les jeux avec des intrigues très simples peuvent réussir sur Google Play tant qu'ils ont une valeur de relecture élevée. Si vous êtes un joueur passionné, vous savez probablement déjà quelle est la valeur de rejeu. Si vous ne le faites pas, vous pouvez penser à cela comme à la probabilité qu'un utilisateur rejoue un jeu même après avoir atteint son objectif principal.
En utilisant les API d'événements et de quêtes, qui sont un sous-ensemble des API de services de jeux Google Play, vous pouvez augmenter considérablement les valeurs de rejeu de vos jeux, sans parler de les rendre plus stimulants et plus amusants. Dans ce tutoriel, je vais vous montrer comment tirer le meilleur parti des deux API..
Avant de poursuivre, je vous suggère de lire mon didacticiel d'introduction aux services de jeux Google Play, qui vous explique comment utiliser les services dans un projet Android Studio..
Tout ce qui se passe dans un jeu peut être considéré comme un événement. En enregistrant suffisamment d'événements à l'aide de l'API d'événements, vous pouvez analyser de près les comportements de vos utilisateurs. Vous pouvez en déduire des détails tels que la distance parcourue par les utilisateurs dans votre jeu, le nombre d'ennemis qu'ils tuent et le nombre de ressources qu'ils collectent dans le jeu. Avec de tels détails à portée de main, vous pourrez facilement affiner votre jeu pour le rendre plus agréable..
L'API d'événements, cependant, est rarement utilisé seul. La plupart des développeurs l'utilisent avec l'API de quêtes pour créer des quêtes. Comme son nom l'indique, une quête est un objectif secondaire que les utilisateurs peuvent atteindre pour obtenir une récompense. Par exemple, si vous créez un jeu dans lequel l'utilisateur tente de sauver une princesse, vous pouvez lui ajouter une quête dans laquelle il doit trouver au moins 100 anneaux pour elle..
Si vous ne l’avez pas déjà deviné, les événements permettent de définir les critères d’achèvement des quêtes. Dans l'exemple ci-dessus, la recherche d'une bague est un événement qui doit se produire 100 fois pour que la quête soit marquée comme terminée..
Bien que les quêtes partagent certaines similitudes avec les réalisations, il existe quelques différences importantes entre les deux:
Avec de nombreuses quêtes intéressantes, dont certaines doivent se répéter chaque semaine ou chaque mois, vous pouvez facilement amener les utilisateurs à jouer à votre jeu plusieurs fois..
Connectez-vous à la console de développeur Play et ouvrez le Services de jeux l'écran en cliquant sur l'icône de la manette de jeu.
Ensuite, choisissez le jeu auquel vous souhaitez ajouter des événements et ouvrez le Événements section.
appuyez sur la Ajouter un évènement bouton pour commencer à créer un événement. Dans le formulaire qui s’affiche, attribuez un nom significatif à l’événement. Continuant avec l'exemple de l'étape précédente, je vais appeler l'événement Collecter la bague.
Une fois que vous appuyez sur le sauvegarder bouton, vous pourrez voir l'ID de l'événement. Pour pouvoir utiliser l'événement dans votre projet Android Studio, vous devez ajouter l'ID en tant que nouveau
tag dans le jeux-ids.xml fichier.
ABCDEFabcdef123
Créer une quête est légèrement plus compliqué. Commencez par aller au Les quêtes section et en appuyant sur la Ajouter une quête bouton. Donnez à la quête un nom attrayant et une description facile à comprendre. Les deux sont très importants car ils seront lus par les utilisateurs. Une quête qui n'a pas l'air intéressante a peu de chances de voir beaucoup de participants.
Ensuite, faites défiler jusqu'à la Critères d'achèvement section. dans le Trouver un événement Dans le champ, tapez l’ID de l’événement que vous avez créé précédemment. Dans le champ de saisie suivant, vous devez spécifier le nombre de fois que l'événement doit se produire pour que la quête soit terminée..
dans le Programme section, spécifiez le Date et heure de début de la quête. Pour pouvoir commencer à travailler avec la quête immédiatement, vous pouvez choisir la date du jour..
Vous devez également spécifier la durée de la quête en saisissant une valeur dans le champ Nombre de jours champ. Facultativement, vous pouvez choisir d'informer les participants à la quête lorsqu'ils sont presque écoulés.
Une quête doit avoir une récompense - sinon pourquoi un utilisateur choisirait-il d'y participer? Vous pouvez spécifier le type de récompense en téléchargeant un fichier de récompense, qui peut être un fichier de tout format. La plupart des développeurs choisissent d'utiliser le format JSON. Voici un exemple de fichier de récompense:
points: 3000, max_lives: 15
Il est à noter que le contenu du fichier de récompense n'est pas important pour les API de services de jeux de jeux. Il est de votre responsabilité de les analyser et de les utiliser dans votre jeu..
dans le Données de récompense section, appuyez sur la Feuilleter bouton et télécharger le fichier de récompense que vous avez créé.
Enfin, appuyez sur sauvegarder générer un identifiant pour la quête. Vous pouvez éventuellement copier l’ID et l’ajouter à votre projet Android Studio. jeux-ids.xml déposer comme un autre
étiquette.
BCDEABCD123
L'API de quêtes propose une activité permettant d'afficher toutes les quêtes disponibles dans votre jeu. L'activité permet également aux utilisateurs de rejoindre des quêtes.
Pour ouvrir l'activité de quête, vous devez créer une intention à l'aide de la getQuestsIntent ()
méthode du Jeux.Quests
classe. Comme arguments, il attend un GoogleApiClient
objet et un int
tableau spécifiant les types de quêtes que vous souhaitez afficher. Voici quelques valeurs populaires pour les types de quêtes:
Quests.SELECT_OPEN
, une quête à laquelle un utilisateur peut participer immédiatement.Quests.SELECT_UPCOMING
, une quête qui n'a pas encore commencé.Quests.SELECT_COMPLETED
, une quête déjà complétée par l'utilisateur.Quests.SELECT_ACCEPTED
, une quête à laquelle l'utilisateur participe actuellement.Après avoir créé le Intention
objet, vous pouvez le transmettre au startActivityForResult ()
méthode pour afficher l'activité des quêtes.
Le code suivant vous montre comment ouvrir l'activité de quête et afficher quatre types de quête:
Intention Intention = Games.Quests.getQuestsIntent (apiClient, new int [] Quests.SELECT_OPEN, Quests.SELECT_UPCOMING, Quests.SELECT_ACCEPTED, Quests.SELECT_COMPLETED); startActivityForResult (intent, 0);
Voici à quoi ressemble l'activité de quête:
L’utilisateur devient un participant de la quête en appuyant sur la touche Acceptez bouton. Au cours d'une quête, les utilisateurs peuvent revenir à l'interface utilisateur des quêtes pour voir le nombre de parties terminées..
L'API d'événements vous permet de gérer facilement les événements de votre jeu. Pour changer la valeur d'un événement, vous pouvez utiliser le incrément()
méthode du Jeux.Events
classe. Comme arguments, il attend un GoogleApiClient
objet, le nom de l'événement et un nombre spécifiant de combien la valeur de l'événement doit être augmentée.
Le code suivant incrémente la valeur du event_collect_ring
événement par 1:
Games.Events.increment (apiClient, getString (R.string.event_collect_ring), 1);
Pour récupérer les valeurs actuelles des événements, vous devez utiliser le charge()
méthode. La valeur étant extraite des serveurs de Google de manière asynchrone, la valeur renvoyée par la méthode est un En attente de résultat
objet. En ajoutant un ResultCallback
vous y objectez, vous pouvez être averti lorsque le résultat est disponible.
À l'intérieur de onResult ()
méthode du ResultCallback
interface, vous devez appeler le getEvents ()
méthode du Events.LoadEventsResult
objet, qui retourne un EventBuffer
. Une fois que vous trouvez le désiré un événement
dans le tampon, vous pouvez appeler son getValue ()
méthode pour obtenir sa valeur actuelle.
Le code suivant vous montre comment récupérer la valeur du event_collect_ring
un événement:
En attente de résultatresults = Games.Events.load (apiClient, true); results.setResultCallback (nouveau ResultCallback () @Override public void onResult (@NonNull Events.LoadEventsResult loadEventsResult) // Récupère tous les événements du jeu EventBuffer events = loadEventsResult.getEvents (); // Boucle à travers tous les événements pour (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"); );
Lorsqu'un utilisateur termine une quête à l'heure, votre jeu doit pouvoir le récompenser à l'aide du fichier de récompenses que vous avez chargé dans la console de développeur de Play. Pour détecter l’achèvement de la quête, vous devez créer un QuestUpdateListener
objet et enregistrez-le avec l'API de quêtes à l'aide du registerQuestUpdateListener ()
méthode du Jeux.Quests
classe.
À l'intérieur de onQuestCompleted ()
méthode du QuestUpdateListener
interface, vous devez appeler le prétendre()
méthode pour réclamer la récompense de la quête. Vous devez passer un GoogleApiClient
l'objet, l'ID de quête et l'ID du jalon actuel à la méthode.
Après la demande, vous pouvez récupérer le fichier de récompense en tant que octet
tableau en appelant le getCompletionRewardData ()
méthode. Comme nos données de récompense ne sont qu'un fichier JSON, vous pouvez transmettre le octet
tableau au constructeur du Chaîne
classe pour le convertir en chaîne.
Games.Quests.registerQuestUpdateListener (apiClient, nouvelle QuestUpdateListener () @Override public void onQuestCompleted (Quest quest) Games.Quests.claim (apiClient, quest.getQuestId (), quest.geturrentMilestone (),) ] récompenseData = quest.getCurrentMilestone () .getCompletionRewardData (); String récompense = new String (récompenseData););
À ce stade, vous pouvez convertir la chaîne en un JSONObject
exemple, et lisez les valeurs des clés qu’il contient. Le code suivant vous montre comment récupérer les valeurs de deux clés appelées points et max_lives:
essayez JSONObject récompenseObject = nouveau JSONObject (récompense); int points = récompenseObjet.getInt ("points"); int maxLives = récompenseObjet.getInt ("max_lives"); Log.d (TAG, "Vous avez maintenant gagné" + points + "points et" + maxLives + "vies"); catch (Exception e) Log.e (TAG, "Impossible d'analyser JSON");
Notez que l'activité de quête se met automatiquement à jour lorsqu'une quête est terminée. Voici à quoi ressemble une quête terminée:
Dans ce didacticiel, vous avez appris à utiliser les API de quêtes et d'événements pour persuader les utilisateurs de jouer encore et encore à votre jeu. Notez toutefois que ces API ayant des limites de taux, vous devez éviter de les utiliser trop souvent dans votre application. Vous pouvez vous référer à la page de la liste de contrôle de la qualité des services Play games pour en savoir plus sur les restrictions et les meilleures pratiques..
Pour en savoir plus sur les quêtes et les événements, vous pouvez vous reporter à leur documentation officielle. Et en attendant, consultez certains de nos autres articles sur Firebase et Google Play Services.!