Passer au contenu principal

Conception > Ludification > Niveaux d'XP

Niveaux des joueurs et montées de niveau

Jason Liang avatar
Écrit par Jason Liang
Mis à jour il y a plus d’une semaine

Conception

Les fonctionnalités de gamification de brainCloud prennent en charge les points d'expérience (XP) et les niveaux côté serveur. Ces fonctionnalités s'appuient sur les API de statistiques et le concept de récompenses pour les joueurs.

  1. Exprimer la progression vers le niveau supérieur sous forme de pourcentage est efficace pour motiver les joueurs et réduit la longueur des nombres que votre interface utilisateur doit afficher.

  2. Si votre jeu dispose d'un didacticiel ou d'un processus d'intégration, c'est une bonne idée de payer des montants d'XP entièrement fixes (non aléatoires) pour accomplir des tâches dans le didacticiel afin que la conception puisse déclencher des célébrations de montée de niveau à des moments spécifiques pour que le joueur se sente bien dans son apprentissage du jeu.

  3. Étant donné que le plus petit montant d'XP pouvant être payé est de 1, une bonne échelle de conception pour les incréments d'XP pour monter de niveau est de 100, à 1000, à 10000.

Mise en œuvre

Sur le portail brainCloud, vous pouvez gérer les points d'expérience (XP) et les niveaux, et récompenser les joueurs pour leurs gains de niveau. L'XP d'un joueur est de 0 et augmente grâce aux méthodes du service Statistiques des joueurs. La liste des niveaux d'XP des joueurs est consultable depuis le client grâce à ReadXPLevelsMetaData().

Configurer vos niveaux d'XP

  • Cliquez sur le bouton [+ Ajouter un niveau XP...] avec l'icône plus.

  • Pointage minimum : le minimum d'expérience requis pour atteindre le niveau actuel. Votre classement sera automatiquement trié selon cette valeur.

  • Titre du statut : le nom visible du niveau. Laissez ce champ vide si vos niveaux ne sont pas nommés.

  • Récompenses : brainCloud vous permet de récompenser vos joueurs sur l'application de niveau. Indiquez les récompenses qui s'appliquent à votre jeu.

    • Points d'expérience - XP supplémentaires que les joueurs peuvent obtenir à partir du niveau.

    • Succès - Toutes les réalisations récompensées par le niveau.

    • Monnaies - Monnaies que le joueur reçoit à mesure qu'il monte de niveau.

    • Statistiques de l'usager et globales - Et ajoutez toutes les statistiques qui changent en fonction de ce niveau.

  • Cliquez sur [Sauvegarder]

Choisir votre comportement du plafond de niveau

  • Il existe trois options de plafond de niveau :

    • Illimité : l'XP est gagnée sans limite. Non recommandé. Le risque de cette option est que, si des niveaux supplémentaires sont truqués ultérieurement, les utilisateurs ayant accumulé une quantité importante d'XP au-delà de leur niveau truqué le plus élevé pourraient recevoir plusieurs messages de mise à niveau, le temps que le système rattrape leur valeur d'XP.

    • Limiter automatiquement le niveau - Recommandée : Permet de gagner de l'XP jusqu'au niveau maximum truqué, sans toutefois le dépasser. Lorsque vous truquez des niveaux supplémentaires, les utilisateurs recommenceront à gagner de l'XP jusqu'au nouveau niveau maximum.

    • Niveau maximum spécifié : l'XP est gagnée jusqu'au niveau spécifié, inférieur au niveau maximum truqué. Utilisez cette option si vous souhaitez truquer les niveaux excédentaires que vous prévoyez d'utiliser, puis "débloquer d'autres niveaux" lors d'une mise à jour.

Écrire le code

Une fois vos niveaux définis, vous pouvez désormais écrire le code nécessaire pour offrir une expérience de jeu à votre joueur.

Dans votre code client

  • Ajoutez le client brainCloud à votre application.

  • Associez le client au tableau de bord.

  • Authentifiez votre usager dans brainCloud et vérifiez son niveau actuel.

  • Écrivez une logique de jeu personnalisée qui récompenserait l'XP.

  • Appelez IncrementExperiencePoints pour accorder cet XP au joueur.

  • Gérez toutes les actions de jeu supplémentaires qui doivent se produire au niveau.

void Start() {
// Unity
GameObject go = new GameObject();
_bc = go.AddComponent<BrainCloudWrapper>();
_bc.WrapperName = _wrapperName; // définir éventuellement un nom de wrapper
_bc.Init(); // des données supplémentaires, telles que : _appId, _secret et _appVersion, sont extraites du plugin brainCloud Unity.
DontDestroyOnLoad(go); // conserver l'objet de jeu brainCloud pendant les changements de scène

_bc.AuthenticateAnonymous((response, cbObject) =>
{
var jsonMessage =
(Dictionary<string, object>) BrainCloud.JsonFx.Json.JsonReader.Deserialize(response);
var jsonData = (Dictionary<string, object>) jsonMessage["data"];
var playerLevel = int.Parse(jsonData["experienceLevel"].ToString());

// TODO gérer toutes les informations de configuration dont votre jeu a besoin autour du niveau du joueur

SetGameDifficulty(playerLevel);

CustomGameLogic(playerLevel);
});
}

void CustomGameLogic(int playerLevel)
{
// TODO écrire votre logique de jeu personnalisée
// c'est-à-dire PlayerWinsGameMatch();

_bc.PlayerStatisticsService.IncrementExperiencePoints(250, (response, cbObject) =>
{
var jsonMessage =
(Dictionary<string, object>) BrainCloud.JsonFx.Json.JsonReader.Deserialize(response);
var jsonData = (Dictionary<string, object>) jsonMessage["data"];
var rewardDetails = (Dictionary<string, object>) jsonData["rewardDetails"];
var newLevel = int.Parse(rewardDetails["experienceLevel"].ToString());

if (playerLevel != newLevel)
{
Debug.Log("Your now at level " + newLevel + "!");
SetGameDifficulty(playerLevel);
}
});
}
Avez-vous trouvé la réponse à votre question ?