vendredi 12 septembre 2014

Système de clés beta

Hello,

Vu que j'ai été obligé de développer un petit module lors de l'organisation de la beta fermée de mon jeu, je fais un petit billet rapide sur le fonctionnement des sacro-saintes clé beta. J'ai eu quelques questions sur le sujet alors autant présenter ça rapidement ici au cas où ça servirait à d'autres.

Concept

Si vous jouez un peu en ligne vous devez être habitué à cette idée de "clé beta" (beta key), sinon voici une brève explication du concept.

Lorsqu'un jeu est assez stable pour être présenté aux joueurs, on peut réunir une équipe de "beta testeurs" qui va jouer au jeu avant sa sortie et remonter pendant un certain nombre de semaines (ou mois) les bugs rencontrés. En général cette phase de beta est une succession d'itérations "remontée de bugs par les testeurs" <->"correction de bugs par l'équipe de développement". 

Le but étant évidemment d'arriver à une situation où on aucun bug n'est remonté et que le jeu est donc apte à sortir de manière publique.




En général la beta commence par une phase dite "fermée" ou "closed" (en Anglais), c'est à dire que l'on ne peut participer sans avoir reçu une invitation sous la forme d'une clé qui est indispensable pour créer un compte. Par "clé" on entend une succession de chiffres et de lettres comme par exemple "abcd-efgh-1234-5678". Cette clé est utilisée sur le site du jeu en question pour créer un compte et donc pouvoir y jouer.

Par la suite la beta passe en statuts "ouverte" ou "open" (toujours en Anglais) où il n'est plus nécessaire d'avoir de clé pour participer. On attend en général d'attendre que les bugs soient résolus pour ouvrir les inscriptions ce qui permettra par exemple de faire des tests de montée en charge (car il y a plus de joueurs en beta ouverte) sur les serveurs etc.

Intérêts

Pourquoi utiliser un système de clés pour organiser une beta fermée ?
  • Possibilité d'automatisation de la distribution des clés en utilisant par exemple une liste d'attente
  • Possibilité de réguler le nombre de testeurs via le nombre de clés distribuées.
  • Paie ton buzz : lorsque l'on ne peut pas jouer à un jeu, on veut y jouer (forcément) et donc obtenir une de ces fameuses clés. Blizzard l'a bien compris et sait très bien utiliser ses phases de closed beta pour créer un engouement sur internet (Hearthstone, Heroes of the storm,..). "Yes j'ai enfin eu ma clé !".
  • Promotion & communauté : on pourra distribuer des clés à différents sites partenaires qui les fera gagner à leurs lecteurs via des concours, etc.



Mise en place

Bon je ne vais pas donner de code (car c'est relativement basique) mais voici comment mettre rapidement un système de clés en place de manière assez simple.

Etape 1 : préparer une petite table dans sa base de données


On va créer une table dans sa base de données préférée (MySQL probablement) avec les informations de base suivantes :
  1. cle : la clé, tout simplement
  2. a_ete_distribuee  : booléen pour savoir si la clé a déjà été distribuée
  3. a_ete_utilisee : booléen pour savoir si la clé a déjà été utilisée (création de compte)
Vous l'aurez compris cette table va contenir nos clés valides. On peut envisager de stocker également l'e-mail du destinataire de la clé, les dates d'envoi et d'utilisation, etc selon la complexité du système que l'on souhaite mettre en place)

Etape 2 : générer les clés aléatoires


Personnellement je ne me suis pas pris la tête, j'ai tout simplement utilisé un logiciel de génération de clés aléatoires. Cela permet d'obtenir très rapidement ses clés avec le format de son choix dans un fichier txt.

J'ai utilisé ce logiciel (vraiment simple d'utilisation). Il suffit de choisir un filtre de clé, le nombre de clés souhaitées et d'exporter le tout dans un fichier texte.

Etape 3 : importer les clés dans sa base de données


Pour importer les clés dans sa db, écrire un petit parser en php qui lit ligne par ligne le fichier txt contenant les clés avec une requête sql Insert afin de l'ajouter dans la table préparée à l'étape 1 (il faut également initialiser les différents paramètres booléens, dates, etc). Si vous galérez, il y a un petit exemple de script ici.

On a enfin dans sa table toutes les clés avec un statut "non distribuée" et "non utilisée".

Etape 4 : modifier son formulaire d'inscription


Ajouter un champs "clé" au formulaire de création de compte du jeu. A la validation du formulaire, vérifier que la clé saisie existe en base et qu'elle n'a pas encore été utilisée. Si c'est le cas, on passe le booléen "a été utilisée" à vrai et on valide la création du compte, tout simplement.

Etape 5 : communication des clés aux joueurs


Il ne reste qu'à fournir les clés aux futurs joueurs/beta-testeurs. Il ne sert à rien d'en balancer 1000 dans la nature dès le début ! Commencez par un petit nombre afin de relever les plus gros bugs, puis augmentez progressivement le nombre de testeurs afin de vous rapproche de la population cible (celle que vous estimez avoir lorsque votre jeu sera publiquement ouvert) afin de vérifier que votre serveur/hébergement tient le coup.

On peut par exemple extraire un groupe de clés et les fournir à un site partenaire afin de les faire gagner via un concours (cela fera de la promotion pour votre jeu). Ou bien mettre en place une liste d'attente et diffuser automatiquement quelques clés tous les jours aux premiers de la fil d'attente, etc.

C'est également un bon moment de construire votre communauté en distribuant des clés sur Facebook, Twitter, votre forum, etc.





C'est tout !

Aucun commentaire:

Commenter l'article !