vendredi 10 février 2012

Multicompte : triche, flicage et fessée

Une des tâches les plus ingrates de l'administrateur est la lutte contre le multicompte. C'est long, compliqué et cela revient souvent à jouer au père Fouettard ce qui n'est pas forcément très amusant...

Au programme : traquer les tricheurs, discuter avec des personnes souvent de mauvaise foi et analyser des tonnes de logs techniques ...

Multicompte ?

On appellera multicompte le fait (pour un joueur) de posséder plusieurs comptes actifs (par exemple plusieurs personnages) sur un même jeu.


Interdiction ou tolérance ?

Selon les jeux le multicompte est autorisé ou interdit, c'est à vous de fixer les règles de votre propre jeu via votre charte.

La question que vous devez vous poser c'est "quel impact aurait le multicompte sur mon jeu et sur son gameplay ?".

Si beaucoup de jeux interdisent et traquent le multicompte ce n'est pas par plaisir, c'est que cela nuit profondément au jeu et aux joueurs. Cela dépend du type de jeu et des mécanismes mis en place.

Par exemple dans un jeu d'élevage, le fait de posséder deux ou trois vaches laitières ne change pas forcément la donne si il n'y a pas d'interactions directes entre les joueurs. Un joueur ne peut pas tirer profit du fait d'avoir plusieurs comptes car ils sont indépendants les uns des autres. Dans ce cas le multicompte n'a pas forcément besoin d'être interdit.

A l'inverse dans un MMORPG (comme mon jeu), le multicompte nuit fortement à l'expérience de jeu car il permet notamment :
  • le don d'objets ou d'argent entre personnages : entraide
  • l'assistance entre personnages : deux personnages qui se soignent, deux personnages qui attaquent le même joueur, deux personnages qui attaquent le même monstre (ou un qui attaque, l'autre qui soigne etc)
Si j'ai deux personnages (donc si je pratique le multicompte), je peux attaquer successivement la même cible avec mes deux (ou plus) comptes et donc tuer plus facilement un autre joueur. Ce dernier se retrouve désavantagé et désabusé.

Le choix d'autoriser ou d'interdire cette pratique se fera donc en fonction de son impact sur le jeu. Si un joueur tire profit de cette pratique et si cela handicape d'autres joueurs, il faut l'interdire. J'ai déjà croisé des joueurs ayant plus de vingt comptes, une vraie petite armée ! Que pensera un autre joueur qui se fait attaquer par ces vingts personnages sans n'avoir aucune chance ? Il en aura ras-le-bol et abandonnera peut-être même le jeu.

Si un personnage gagne 50 PA par jour, en posséder dix revient à 500 PA soit l'équivalent de dix jours d'actions pour un joueur qui ne triche pas. En général les tricheurs ont un compte principal qui bénéficie des actions des autres multicomptes.

Certains créateurs se foutent totalement des multicomptes, même si cela handicape le gameplay car :
  • cela augmente leur compteur "nombre de joueurs" sur leur page d'accueil et "ça fait bien" ...
  • cela augmente l'affichage des publicités etc.
  • lutter contre la pratique demande trop de temps (flemme)
  • si le jeu est payant, plusieurs comptes = plus de revenus
Je vous invite fortement à ne pas faire comme eux et à privilégier le gameplay de votre jeu en luttant contre cette pratique ...
  

Pourquoi est-ce que les gens font du multicompte ?

Par expérience je dirais qu'il y a plusieurs raisons qui poussent les gens à créer plusieurs comptes :

Cas 1 : les joueurs chevronnés

Certains joueurs passionnés sont frustrés par le fait d'être limités en nombre d'actions par jour (système de PA). Pour eux 50 PA n'est pas assez, ils ne veulent pas jouer quelques minutes, ils en veulent plus ! Ils veulent explorer d'autres classes pour mieux comprendre leurs adversaires, etc. Ces joueurs vont donc créer d'autres personnages pour jouer plus, et mieux comprendre le jeu. Ce sont en général de vrais amoureux du jeu et ne cherchent pas forcément à tirer profit de leurs plusieurs personnages.

Cas 2 : les pseudo espions

Le multicompte est assez souvent lié à de l'espionnage. Un joueur va créer un second personnage et entrer dans un clan (ou une guilde) ennemi. Il va ainsi profiter d'infos stratégiques dont il va faire profiter son propre groupe (guerres, etc.). Ce n'est pas un multicompte "méchant", mais cela reste de la triche...

Cas 3 : les tricheurs sans scrupule

Ce sont les pires, ceux qui vont attaquer une cible avec leurs dix personnages, qui vont chercher à abuser du système pour en tirer profit. Ceux-là sont souvent de mauvaise foi une fois découverts... Ils nuisent fortement au jeu car ils dégoutent les autres joueurs qui finissent souvent par dénoncer, se plaindre ou abandonner le jeu.

  

Traquer les tricheurs

Débusquer le multicompte est compliqué et fastidieux (voir parfois impossible).

La méthode de base c'est de logger dans la base de données les connexions avec l'IP et un maximum d'information sur le navigateur web ou la machine. Dès que quelqu'un se connecte, on stocke dans la base l'heure de connexion, l'ip et des infos sur la machine.

Si deux personnages ont la même IP, c'est un multicompte, c'est facile !

Hélas non, car grâce aux routeurs (dont les "box" si c'est activé), proxy etc, vous pouvez récupérer la même IP dite "publique" pour deux machines du même réseau. 

Par exemple vous n'arriverez pas à faire de distinction entre 100 joueurs issus de la même société ou de la même fac. Est-ce un joueur avec 100 comptes ? Ou bien 100 joueurs avec chacun un compte ? Pas évident.

Il convient également de logger les actions entre les joueurs. Pas forcément toutes les actions mais toutes celles qui peuvent être assimilées à de l'aide (don d'objets, don d'or, soins, etc.).

Enfin vous pouvez comparer les mots de passe (souvent cryptés en MD5 donc on regarde le hash) pour voir si c'est identique et jeter un oeil aux adresses mail et aux identifiants. Si vous tombez sur deux personnages Toto et Tutu dont les adresses mail sont "alexmailbidon1@hotmail" et "alexmailbidon2@hotmail", y a déjà de forts doutes possibles (et croyez-moi cela arrive souvent).
NB suite à la remarque d'un lecteur: cette méthode ne fonctionnera pas si le cryptage contient un ajout de "salt" car les hash ne sont alors plus comparables un à un.

Il suffit alors de créer un module (l'algo est assez costaud tout de même) qui exploite ces données brut et qui remontent des alertes : proximité de connexion entre des personnages, dons très fréquents, etc.

Sur mon jeu nous avons monté une équipe de joueurs anonymes qui traquent les tricheurs (en utilisant l'outil) et s'occupent des échanges de messages avec les joueurs soupçonnés. Lorsque la triche est mise en évidence, les administrateurs appliquent les sanctions en suivant la charte du jeu.

En croisant les informations de connexion et les actions en jeu, on a déjà pas mal de capacité à détecter certaines choses "louches". Par exemple deux personnes qui se connectent de la même machine à deux minutes d'intervalle pour se donner des objets, et ce tous les jours depuis 2 semaines.

Notre solution a été de demander aux joueurs jouant sur les même machines ou réseaux de se déclarer sur notre forum. Ces personnages sont autorisées à jouer mais doivent réspecter des règles strictes : minimum de 15 minutes entre deux connexions (pour éviter l'abus d'attaques successives par exemple), pas de regroupement des personnages, pas d'aide directe, pas de dons d'objets, etc.

Ainsi on "tue" tout l'intérêt de faire du multicompte. Même si Toto et Titi se déclarent comme étant deux personnes (frère et soeur) et donc jouant sur le même PC familial, ce n'est peut-être qu'un seul joueur en réalité. En forçant le respect de ces règles, on évite au maximum l'impact qu'aurait le multicompte sur le jeu. On limite la casse en somme.

Si l'outil de détection de multicomptes trouve quelque chose d'étrange entre des personnages, on regarde si une fiche de déclaration existe. Si les règles ne sont pas respectées, on fait un rappel.

Si la triche est avérée, on sanctionne selon ce qui est prévu noir sur blanc dans la charte (perte d'expérience, suppression du compte, etc).

Il reste cependant des cas pratiquement impossibles à détecter car certains joueurs un peu geeks utilisent des outils complexes (proxys, TOR, etc). Ce sont les actions ingame et les discussions avec les joueurs qui permettent de les débusquer. Lorsque quelqu'un essaie de se faire passer pour cinq personnes différentes, cela donne souvent lieu à des échanges de messages assez drôles...

Voici néanmoins la technique "de base" :

  1. Regrouper le maximum de logs (exploitables) dans la base de données (heure et ip de connexion, échanges entre joueurs)
  2. Créer un outil analysant ces logs et remontant des alertes sur certains comptes
  3. Analyse manuel du dossier et des logs (comparaison es  logins, mails, password, exploitation des logs techniques sur les connexions etc.)
  4. Prise de contact avec les compte concernés pour demande d'explication
  5. Sanction si triche avérée ou simple rappel aux règles et mise en surveillance
(Bon il est évident que l'on ne va pas donner toutes les méthodes et astuces ici, fournir toutes les spécifications d'un outil cela aide également à le contourner...)


  

Sortir le fouet

Comme vous ne disposez que de données techniques qu'il faut interpréter, il est assez dur d'être certain de son diagnostique :

  • cas flagrant : même mot de passe, même login, même sémantique d'adresse mail, connexions très proches entre les deux comptes de manière systématique et sur la même IP
  • forts doutes : de nombreuses connexions à partir de la même IP. Il faut mener une enquète en contactant directement les joueurs afin de demander des explications et faire un rappel des règles. Si il y a aveux, il faudra le prendre en considération lors de la punition (faute avouée ...).
Je conseille évidemment de ne sanctionner que si vous êtes certain à 100% de votre jugement, sinon vous pouvez laisser le dossier en surveillance après un rappel des règles.

J'ai déjà parlé de la charte et des sanctions dans ce billet mais voici néanmoins un quelques exemples de sanctions que vous pouvez mettre en place :

  • suppression ou blocage du ou des comptes concernés. Cela peut être temporaire (blocage quelques jours, quelques semaines) ou bien définitif (suppression du compte). Personnellement, lorsqu'un joueur s'est bien acharné sur d'autres joueurs avec ses dix comptes, je n'ai aucun scrupule à bloquer définitivement.
  • perte d'expérience, d'objets, etc. Si le dossier s'est bien déroulé et que le joueur a par exemple avoué, on peut lui laisser son compte principal en lui retirant quelques points. Cela lui permettra de continuer à jouer mais on lui fait perdre les avantages qu'il a pu retirer de son multicompte.
Si votre charte est bien écrite vous devriez y préciser la liste des sanctions pour chaque infraction. Ainsi vous pourrez mettre en avant l'objectivité de la sanction.

Moi et mon armée de nains on va s'occuper de ton cas !
Ne vous faites pas duper, certaines personnes sont d'excellents menteurs et sortiront des explications tellement tirées par les cheveux que cela peut finir par faire douter. J'ai déjà banni des joueurs pour tricherie qui ont par la suite lancé un énorme scandale sur le forum en clamant leur innocense ce qui a mis une certaine pagaille au sein de la communauté. Au bout de quelques temps ils ont finalement avoué ...

Bref

Il n'y a pas de méthode miracle et d'ailleurs celle que je présente ci-dessus est assez "old school". Le multicompte peut être un vrai fléau, surtout sur un jeu totalement gratuit (dès que c'est payant il y a forcément moins de tentation). La meilleure façon de l'éviter est surement de l'accepter et donc d'essayer d'adapter le gameplay de son jeu pour qu'il en soit préservé.

Certains créateurs amateurs de CSI aimeront analyser les traces techniques et les petites phases d'investigation ("Yeah je l'ai bien grillé celui-là") mais cela reste chronophage et finalement assez blasant parce que sans fin...

Souvent naïf au début ("Mais non Monsieur l'admin, je ne triche pas, c'est à ma petite soeur de douze ans le perso BloodyAlucard666", "Bon ok je te crois tu as l'air gentil après tout..."), l'administrateur frôlera au bout de quelques temps la paranoïa d'où le besoin d'attendre d'être sûr et certain à 100% avant de sanctionner. Travailler en équipe permet également d'affiner un jugement autour d'un dossier de multicompte.

N'oubliez pas de vous abonner au blog (liens sur la droite : RSS, FB, twitter) pour ne pas rater les prochaines articles. Merci à ceux qui font tourner les liens ;-)

Bonne chasse !


Au passage, voici un peu de lecture complémentaire sur le multicompte :

5 commentaires:

  1. Hello,

    Super article :) même si j'espérais trouver la méthode miracle :)

    Que penses-tu d'un jeu payant comme Eve Online qui te laisse enregistrer autant de comptes que tu le souhaites de façon officielle. J'y a moi-même eu deux comptes et c'était très pratique.

    RépondreSupprimer
    Réponses
    1. Disons que si un compte = un abonnement à payer c'est plutôt intéressant pour eux de l'autoriser... :p

      Par contre dans les MMO en "temps réel" comme Eve ou WoW, le risque de laisser le droit à plusieurs abos c'est le multi boxing à savoir des joueurs qui utilisent plusieurs personnages en même temps (voir http://fr.wikipedia.org/wiki/Multi_boxing).

      Ils utilisent des outils, macros etc pour faciliter la tâche, en général ils dirigent un perso au clavier et les autres sont en /follow avec des casts automatisés (multi-cast sur une target avec le focus, ou auto-heal etc).

      Bref ça peut quand même un peu pourrir le gameplay vu que si un joueur avec 5 persos te tombe dessus, tu n'as pratiquement aucune chance...

      Donc je suis plutôt contre, surtout qu'avec un seul abonnement on a quand même le système de reroll qui permet de jouer pas mal de personnages différents.

      Supprimer
  2. Super article. Ce sont de bons conseils qui mettent les choses à plat sur le concept du multi compte et c'est bien pour les débutants en développement de jeux vidéos. Continuez comme ça!

    Alex.

    RépondreSupprimer
  3. Vraiment bien fait, cependant il y a cette phrase qui est totalement fausse :

    Enfin vous pouvez comparer les mots de passe (souvent cryptés en MD5 donc on regarde le hash) pour voir si c'est identique


    Un Hash est utilisé avec un salt (sinon autant laisser le mot de passe en clair dans la database, c'est pareil). Le salt (unique par personne sinon toujours inutile contre les attaques par dictionnaire) permet justement d'avoir deux fois le même mot de passe avec un hash différent.

    La comparaison sur le mot de passe hashé est donc totalement inutile.

    RépondreSupprimer
    Réponses
    1. Oui, merci pour la précision, si il y a un salt ajouté - pas toujours le cas - on ne peut plus réaliser de comparaison (par définition).

      Supprimer